How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
Features the best practices in the art and science of constructing software--topics include design, applying good techniques to construction, eliminating errors, planning, managing construction activities, and relating personal character to superior software. Original. (Intermediate)
Thomas H. Cormen
Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. Introduction to Algorithms uniquely combines rigor and comprehensiveness. The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor.The first edition became a widely used text in universities worldwide as well as the standard reference for professionals. The second edition featured new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming. The third edition has been revised and updated throughout. It includes two completely new chapters, on van Emde Boas trees and multithreaded algorithms, substantial additions to the chapter on recurrence (now called "Divide-and-Conquer"), and an appendix on matrices. It features improved treatment of dynamic programming and greedy algorithms and a new notion of edge-based flow in the material on flow networks. Many new exercises and problems have been added for this edition. As of the third edition, this textbook is published exclusively by the MIT Press.
"This is Effective C++ volume three - it's really that good." - Herb Sutter, independent consultant and secretary of the ISO/ANSI C++ standards committee "There are very few books which all C++ programmers must have. Add Effective STL to that list." - Thomas Becker, Senior Software Engineer, Zephyr Associates, Inc., and columnist, C/C++ Users Journal C++'s Standard Template Library is revolutionary, but learning to use it well has always been a challenge. Until now. In this book, best-selling author Scott Meyers ( Effective C++ , and More Effective C++ ) reveals the critical rules of thumb employed by the experts - the things they almost always do or almost always avoid doing - to get the most out of the library. Other books describe what's in the STL. Effective STL shows you how to use it. Each of the book's 50 guidelines is backed by Meyers' legendary analysis and incisive examples, so you'll learn not only what to do, but also when to do it - and why. Highlights of Effective STL include: Advice on choosing among standard STL containers (like vector and list), nonstandard STL containers (like hash_set and hash_map), and non-STL containers (like bitset). Techniques to maximize the efficiency of the STL and the programs that use it. Insights into the behavior of iterators, function objects, and allocators, including things you should not do. Guidance for the proper use of algorithms and member functions whose names are the same (e.g., find), but whose actions differ in subtle (but important) ways. Discussions of potential portability problems, including straightforward ways to avoid them. Like Meyers' previous books, Effective STL is filled with proven wisdom that comes only from experience. Its clear, concise, penetrating style makes it an essential resource for every STL programmer.
In designing large-scale C++ applications, you are entering a dimension barely skimmed by most C++ books, particularly considering experience with small programming projects does not scale up to larger projects. This book unites high-level design concepts with specific C++ programming details to reveal practical methods for planning and implementing high-quality large C++ systems. You will learn the importance of physical design in large systems, how to structure your software as an acyclic hierarchy of components, and techniques for reducing link-time and compile-time dependencies. Then the book turns to logical design issues--architecting a component, designing a function, and implementing an object--all in the context of a large-project environment.
The puzzles and problems in Exceptional C++ not only entertain, they will help you hone your skills to become the sharpest C++ programmer you can be. Many of these problems are culled from the famous Guru of the Week feature of the Internet newsgroup comp.lang.c++, moderated, expanded and updated to conform to the official ISO/ANSI C++ Standard. Try your skills against the C++ masters and come away with the insight and experience to create more efficient, effective, robust, and portable C++ code.
Michael Sipser's emphasis on unifying computer science theory - rather than offering a collection of low-level details - sets the book apart, as do his intuitive explanations. Throughout the book, Sipser builds students' knowledge of conceptual tools used in computer science, the aesthetic sense they need to create elegant systems, and the ability to think through problems on their own.
Stephane Faroult, Pascal L'Hermite
This practical book helps SQL developers dramatically improve database performance through good practices and effective design. It explains methods to change code and deliver maximum performance without altering the application's purpose.
Software "style" is about finding the perfect balance between overhead and functionality... elegance and maintainability... flexibility and excess. In Exceptional C++ Style , legendary C++ guru Herb Sutter presents 40 new programming scenarios designed to analyze not only the what but the why and help you find just the right balance in your software. Organized around practical problems and solutions, this book offers new insight into crucial C++ details and interrelationships, and new strategies for today's key C++ programming techniques--including generic programming, STL, exception safety, and more. You'll find answers to questions like: What can you learn about library design from the STL itself? How do you avoid making templated code needlessly non-generic? Why shouldn't you specialize function templates? What should you do instead? How does exception safety go beyond try and catch statements? Should you use exception specifications, or not? When and how should you "leak" the private parts of a class? How do you make classes safer for versioning? What's the real memory cost of using standard containers? How can using const really optimize your code? How does writing inline affect performance? When does code that looks wrong actually compile and run perfectly, and why should you care? What's wrong with the design of std::string? Exceptional C++ Style will help you design, architect, and code with style--and achieve greater robustness and performance in all your C++ software.
David Money Harris, Sarah L. Harris
Designed for courses that combine digital logic design with computer organization/architecture or that teach these subjects as a two-course sequence, this text covers the fundamentals and then introduces Hardware Description Languages (HDLs).
Paul J. Deitel, Harvey M. Deitel
Created by world-renowned programming instructors Paul and Harvey Deitel, “Visual C# 2008 How to Program, Third Edition” introduces all facets of the C# 2008 language through the Deitels' signature "Live Code™ Approach", that features hundreds of working programs.This book has been thoroughly updated to reflect the major innovations Microsoft has incorporated in Visual C# 2008 and .NET 3.5; The many new platform features covered include: LINQ (Language Integrated Query), Windows Presentation Foundation (WPF), ASP.NET Ajax and the Microsoft Ajax Library, Silverlight-based rich Internet application development, and creating Web services with Windows Communication Foundation (WCF). New language features introduced in this edition: automatic properties, object initializers, partial classes and methods, anonymous methods, Lambda expressions, extension methods, anonymous types, and collection initializers. Extensively updated coverage of delegates.and more sophisticated techniques, including searching, sorting, data structures, generics, and collections. Appendices provide essential programming reference material on topics ranging from number systems to the Visual Studio Debugger, UML 2 to Unicode and ASCII.Appropriate for all basic-to-intermediate level Visual C# 2008 programmers.
Donald E. Thomas, Philip R. Moorby
The standard text for Verilog. Presents the new IEEE 1364-2001 standard of the language with examples that have been updated to illustrate the new features of the language. A valuable resource for engineering students interested in describing, simulating, and synthesizing digital systems.
This text provides a mastery learning approach to C++, including objectives, minimal discussion and examples. It also gives readers the opportunity to test their understanding with multiple exercises. Readers can test their knowledge of individual concepts, and then test their comprehension of the topic in a larger setting.
J. C. Beall, Bas C. Van Fraassen
"The book opens up topics to debate, suitable for an intermediate course in logic. Each chapter contains innovative features that guide us through the subject: exercises to give students hands-on experience, examples to demonstrate the application of concepts, and lists of further reading."--Jacket.
Garrison W. Greenwood, Andy M. Tyrrell
Introduction to Evolvable Hardware: A Practical Guide for Designing Self-Adaptive Systems provides a fundamental introduction for engineers, designers, and managers involved in the development of adaptive, high reliability systems. It also introduces the concepts of evolvable hardware (EHW) to new researchers in a structured way. With this practical book, you’ll be able to quickly apply the techniques presented to existing design problems.
How do you define logic? Logic is about consistency - but not about all types of consistency. For example, if a man supports Aresenal one day and Spurs the next, then he is fickle but not necessarily illogical. If a legal system helps the rich but not the poor then it is unjust but not illogical. The type of consistency which concerns logicians is not loyalty or justice or sincerity it is compatibility of beliefs. Logic, therefore, involves studying the situations in which a particular sentence is true or false, and the rules that determine whether a given argument is valid or invalid. Now fully revised and updated, Wilfrid Hodges' accessible study is the essential text for anyone who wants to learn about elementary logic. Assuming no previous knowledge of the subject, is takes the reader through the whole gamut of logical expressions, symbols and notations of a simple and lively way. This new edition also contains some additional exercises, with updated sections on formalization and semantics.
Scheduling, vehicle routing and timetabling are all examples of constraint problems, and methods to solve them rely on the idea of constraint propagation and search. This book meets the need for a modern, multidisciplinary introduction to the field that covers foundations and applications. Written by Krzysztof Apt, an authority on the subject, it will be welcomed by graduate students and professionals. With the insertion of constraint techniques into programming environments, new developments have accelerated the solution process. Constraint programming combines ideas from artificial intelligence, programming languages, databases, and operational research.
A washing machine that gauges each load to determine how much soap to use An air conditioner that constantly adjusts cooling strength based on room temperature These "smart" products are possible with the advent of "fuzzy logic, " the principle that's revolutionizing science. Now, its chief proponent presents a brilliant, popular account of the field called the "new chaos.".
Advanced ASIC Chip Synthesis: Using Synopsys® Design Compiler® Physical Compiler® and PrimeTime®, Second Edition describes the advanced concepts and techniques used towards ASIC chip synthesis, physical synthesis, formal verification and static timing analysis, using the Synopsys suite of tools. In addition, the entire ASIC design flow methodology targeted for VDSM (Very-Deep-Sub-Micron) technologies is covered in detail. The emphasis of this book is on real-time application of Synopsys tools, used to combat various problems seen at VDSM geometries. Readers will be exposed to an effective design methodology for handling complex, sub-micron ASIC designs. Significance is placed on HDL coding styles, synthesis and optimization, dynamic simulation, formal verification, DFT scan insertion, links to layout, physical synthesis, and static timing analysis. At each step, problems related to each phase of the design flow are identified, with solutions and work-around described in detail. In addition, crucial issues related to layout, which includes clock tree synthesis and back-end integration (links to layout) are also discussed at length. Furthermore, the book contains in-depth discussions on the basis of Synopsys technology libraries and HDL coding styles, targeted towards optimal synthesis solution. Target audiences for this book are practicing ASIC design engineers and masters level students undertaking advanced VLSI courses on ASIC chip design and DFT techniques.
Dexter C. Kozen
This textbook is uniquely written with dual purpose. It cover cores material in the foundations of computing for graduate students in computer science and also provides an introduction to some more advanced topics for those intending further study in the area. This innovative text focuses primarily on computational complexity theory: the classification of computational problems in terms of their inherent complexity. The book contains an invaluable collection of lectures for first-year graduates on the theory of computation. Topics and features include more than 40 lectures for first year graduate students, and a dozen homework sets and exercises.