How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
Ralph Johnson, Erich Gamma, John Vlissides, Richard Helm
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk. 0201633612B07092001
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.
Expert advice for smarties is offered from the #1 SQL guru. Trees and hierarchies are topics that all SQL users need to know, and this is the first developer's guide that addresses these concepts that are universally difficult for programmers to master. The book is Web-enhanced with downloadable SQL code, ready to use.
Steven S. Skiena
Expanding on the highly successful formula of the first edition, this book now serves as the primary textbook of choice for any algorithm design course while maintaining its status as the premier practical reference guide to algorithms.
Robert Sedgewick, Kevin Daniel Wayne
The standard algorithm guide for working programmers -- now fully updated, broadened, and available again in a popular single-volume format • •The #1 practical resource for everyone seeking to run programs faster or solve larger problems. •Surveys today's most useful algorithms, with copious illustrations and examples. •Contains many new examples, ranging from physics, biology, and engineering to data compression and web search. •Contains real (not psuedocode) implementations, with detailed performance insights. Robert Sedgewick's Algorithm's has long been the definitive practical guide to using algorithms: the book that professionals and students in programming, science, and engineering rely on to solve real-world problems. Now, Sedgewick has thoroughly updated this classic to reflect today's latest, most powerful algorithms - and we've returned to the popular single-volume format our readers have been asking for. Sedgewick brings together an indispensable body of knowledge for improving computer performance and solving larger problems. In this edition, he adds: • •Many powerful new algorithms. •A broader perspective with more science and engineering applications. •New illustrations and examples throughout. •An attractive new two-color design, and more The algorithms Sedgewick presents are crucial in areas ranging from physics simulation to genetic sequencing, architectural modeling to aircraft simulation, database management to Internet search. He covers abstract data types, sorting algorithms, searching algorithms, graph processing, string processing, and geometric algorithms. Algorithms provides all the information readers need to confidently implement, debug, and apply each algorithm in any computational environment. For each, Sedgewick presents real implementations, as well as detailed insights into performance. All examples are written in Java, in a style that can be rapidly and easily translated to other languages.
Brian Wilson Kernighan, Rob. Pike
Designed for first-time and experienced users, this book describes the UNIX® programming environment and philosophy in detail. Readers will gain an understanding not only of how to use the system, its components, and the programs, but also how these fit into the total environment.
Alexander A. Stepanov, Paul McJones
New techniques for building more secure, reliable, high-performance software, from the renowned creator of the C++ STL • • A truly foundational book on the discipline of generic programming: how to write better software by mastering the development of abstract components. • Based on Alexander Stepanov's breakthrough lectures to programmers at Adobe and throughout Silicon Valley. • For serious software developers, architects, and engineers, the perfect complement to Knuth's theory and Stoustrup's practice. Elements of Programming is the next breakthrough book for serious practitioners seeking ways to write better software. In this book, Alexander Stepanov - the legendary architect and creator of the C++ Standard Template Libraries - focuses on the discipline that offers the greatest potential for improving contemporary software: the proper development of abstract components. Drawing on his enormously popular lectures to programmers at Adobe and throughout Silicon Valley, Stepanov illuminates crucial techniques of generic programming, specifically focusing on abstraction as the key to secure, reliable, and high-performance software. Together with co-author and ACM Fellow Paul McJones, Stepanov shows programmers how to use mathematics to compose reliable algorithms from components, and to design effective interfaces between algorithms and data structures. Topics covered in Elements of Programming include: transformations, associative operations, linear orderings, ordered algebraic structures, iterators, coordinates and coordinate structures, copying algorithms, rearrangement, sorting, and much more. This book requires an understanding of mathematics, but is consistently focused on identifying superior solutions to practical programming problems. Stepanov and McJones illuminate their concepts and techniques with C++ code, but the techniques are equally applicable to a wide range of contemporary object-oriented languages.
Nicolai M. Josuttis
A proven best-seller, updated for the new standard: still the most practical C++ Standard Library tutorial and most complete reference * *Thoroughly documents each library component incorporated in the brand-new C++ standard. *Clearly explains complex concepts, and presents the practical detail programmers need to use the Standard Library effectively. *Contains many examples of working code, all available for download at an accompanying website. The C++ Standard Library, 2/e, doesn't just provide comprehensive documentation of every library component associated with the newest C++ standard: it also offers clearly-written explanations of complex concepts, reviews practical programming details needed for effective use, and presents many useful examples of working code - all of them available for download. Fully updated to reflect the newest elements of the C++ Standard Library incorporated into the full ANSI/ISO C++ language standard, this book examines containers, iterators, function objects, STL algorithms, special containers, strings, numerical classes, internationalization, the IOStream library, and much more. Every component is presented in depth: Josuttis explains its purpose and design, presents crystal-clear examples, identifies traps and pitfalls, and offers exact signatures and definitions of its classes and functions. Comprehensive, detailed, readable, and practical, Josuttis' The C++ Standard Library has established itself as the definitive book on the topic: working developers will find this new edition even more useful.
Donald Ervin Knuth
Donald Knuth is Professor Emeritus of the Art of Computer Programming at Stanford University, and is well-known worldwide as the creator of the Tex typesetting language. Here he presents the third volume of his guide to computer programming.
Designed to be easy to read and understand although the topic itself is complicated, this book explains that algorithms are the procedures that software programs use to manipulate data structures. Besides clear and simple example programs, Lafore includes a workshop as a small demonstration program executable on a Web browser.
Robert Sedgewick has thoroughly rewritten and substantially expanded and updated his popular work to provide current and comprehensive coverage of important algorithms and data structures. Christopher Van Wyk and Sedgewick have developed new C++ implementations that both express the methods in a concise and direct manner, and also provide programmers with the practical means to test them on real applications. Many new algorithms are presented, and the explanations of each algorithm are much more detailed than in previous editions. A new text design and detailed, innovative figures, with accompanying commentary, greatly enhance the presentation. The third edition retains the successful blend of theory and practice that has made Sedgewick's work an invaluable resource for more than 250,000 programmers! This particular book, Parts 1n4, represents the essential first half of Sedgewick's complete work. It provides extensive coverage of fundamental data structures and algorithms for sorting, searching, and related applications. Although the substance of the book applies to programming in any language, the implementations by Van Wyk and Sedgewick also exploit the natural match between C++ classes and ADT implementations. Highlights Expanded coverage of arrays, linked lists, strings, trees, and other basic data structures Greater emphasis on abstract data types (ADTs), modular programming, object-oriented programming, and C++ classes than in previous editions Over 100 algorithms for sorting, selection, priority queue ADT implementations, and symbol table ADT (searching) implementations New implementations of binomial queues, multiway radix sorting, randomized BSTs, splay trees, skip lists, multiway tries, B trees, extendible hashing, and much more Increased quantitative information about the algorithms, giving you a basis for comparing them Over 1000 new exercises to help you learn the properties of algorithms Whether you are learning the algorithms for the first time or wish to have up-to-date reference material that incorporates new programming styles with classic and new algorithms, you will find a wealth of useful information in this book.
Michael Abrash explores the inner workings of all Intel-based PCs including the hot new Pentium. This is the only book available that provides practical and innovative "right-brain" approaches to writing fast PC software using C/C++ and assembly language. This book is packed with "from the trenches" programming secrets and features "undocumented" Pentium programming tips. Provides hundreds of optimized coding examples.
Kim N. King
Suitable for students at a variety of levels, C Programming: A Modern Approach covers the C language as no book has before. Even C's most difficult concepts are easy to learn, thanks to the book's lucid explanations, carefully graded examples, and many helpful figures. A "spiral" approach to the language's features makes this book the ideal text for learning C. Clear, accurate, and up-to-date, C Programming: A Modern Approach is destined to become a classic.
Glenford J. Myers, Tom Badgett, Todd M. Thomas, Corey Sandler
This long-awaited revision of a bestseller provides a practical discussion of the nature and aims of software testing. You'll find the latest methodologies for the design of effective test cases, including information on psychological and economic principles, managerial aspects, test tools, high-order testing, code inspections, and debugging. Accessible, comprehensive, and always practical, this edition provides the key information you need to test successfully, whether a novice or a working programmer. Buy your copy today and end up with fewer bugs tomorrow.
Discrete Mathematics and Its Applications is intended for one or two term introductory Discrete Mathematics courses taken by students from a wide variety of majors, including Computer Science, Mathematics, and Engineering. This renowned best-selling text, which has been used at over 500 institutions around the world, gives a focused introduction to the primary themes in a Discrete Mathematics course and demonstrates the relevance and practicality of Discrete Mathematics to a wide variety of real-world applications—from Computer Science to Data Networking, to Psychology, to Chemistry, to Engineering, to Linguistics, to Biology, to Business, and many other important fields. McGraw-Hill Education's Connect, is also available as an optional, add on item. Connect is the only integrated learning system that empowers students by continuously adapting to deliver precisely what they need, when they need it, how they need it, so that class time is more effective. Connect allows the professor to assign homework, quizzes, and tests easily and automatically grades and records the scores of the student's work. Problems are randomized to prevent sharing of answers an may also have a "multi-step solution" which helps move the students' learning along if they experience difficulty.
A Web-Based Introduction to Programming is designed for use in introductory programming, programming logic and design, or Web programming courses, and for anyone seeking a painless way to learn the basics of programming by developing small Web applications. The book is clearly written, using consistent examples in every chapter and step-by-step descriptions of standard programming procedures. Each chapter follows precise learning outcomes that are accurately tested by the end-of-chapter quizzes and exercises. A Web-Based Introduction to Programming keeps the focus on the need for beginning programmers to learn essential syntax and control structures with minimal complexity. Each chapter focuses on a single topic and related material is provided in appendices. Students learn to convert requirements into algorithms, and then develop small Web-based applications using a combination of PHP and HTML. All required software is provided and can be installed quickly and easily in minutes under Windows, Macintosh OS X or Linux. The software can be installed entirely on a USB drive so that students can carry their entire work environment with them (no need for special classroom installation). Significant changes to the second edition include: the latest version of the standalone Web server; even more code examples; additional code exercises for each chapter; flow chart examples to help explain control structures; more in-depth coverage of associative arrays and Web sessions; more extensive discussion of include files; additional references to emerging technologies. The Web site www.mikeokane.com/textbooks/WebTech/ includes all materials found on the CD, and also provides access to Flash tutorials, additional exercises, test banks, slide presentations, quiz solutions, code solutions, and other instructional resources. The textbook blog (http://introtoprogramming.wordpress.com/) allows students to get help with common questions related to the software and the textbook topics.
William H. Press
The example books published as part of the Numerical Recipes second edition series contain source programs that exercise and demonstrate all of the Numerical Recipes subroutines. Each example program contains comments and is prefaced by a short description of what it does. The books contain all of the old material from the original edition as well as new material from the second edition. They will be valuable for readers who wish to incorporate procedures and subroutines into their own source programs. They are available in both FORTRAN and C.
A complete source of information on almost all aspects of parallel computing from introduction, to architectures, to programming paradigms, to algorithms, to programming standards. It covers traditional Computer Science algorithms, scientific computing algorithms and data intensive algorithms.
Masahiro Kasahara, Shinichi Morishita
Efficient computer programs have made it possible to elucidate and analyze large-scale genomic sequences. Fundamental tasks, such as the assembly of numerous whole-genome shotgun fragments, the alignment of complementary DNA sequences with a long genome, and the design of gene-specific primers or oligomers, require efficient algorithms and state-of-the-art implementation techniques. This textbook emphasizes basic software implementation techniques for processing large-scale genome sequences and provides executable sample programs. Book jacket.
Michael Jay Quinn
Mathematics of Computing -- Parallelism.