This book is a great introduction to the core principles of generic programming for the experienced programmer. The authors work through examples showing how to analyse the requirements of an algorithm and make it as general as possible. The book includes several programming “laws” of particular interest to those building software components. The authors shsw how programmers can become more effective by learning about the idea of abstraction and the math it relies on. In an engaging and accessible fashion, they describe how these mathematical results were first discovered and are surprisingly useful in programming.
The full text downloaded to your computer
With eBooks you can:
- search for key concepts, words and phrases
- make highlights and notes as you study
- share your notes with friends
eBooks are downloaded to your computer and accessible either offline through the Bookshelf (available as a free download), available online and also via the iPad and Android apps.
Upon purchase, you'll gain instant access to this eBook.
Time limit
The eBooks products do not have an expiry date. You will continue to access your digital ebook products whilst you have your Bookshelf installed.
Table of Contents:
- Chapter 1: What This Book Is About
- Chapter 2: The First Algorithm
- Chapter 3: Ancient Greek Number Theory
- Chapter 4: Euclid’s Algorithm
- Chapter 5: The Emergence of Modern Number Theory
- Chapter 6: Abstraction in Mathematics
- Chapter 7: Deriving a Generic Algorithm
- Chapter 8: More Algebraic Structures
- Chapter 9: Organizing Mathematical Knowledge
- Chapter 10: Fundamental Programming Concepts
- Chapter 11: Permutation Algorithms
- Chapter 12: Extensions of GCD
- Chapter 13: A Real-World Application
- Chapter 14: Conclusions
- Further Reading
- Appendix A: Notation
- Appendix B: Common Proof Techniques
- Appendix C: C++ for Non-C++ Programmers
About the Author :
Alexander A. Stepanov studied mathematics at Moscow State University from 1967 to 1972. He has been programming since 1972: first in the Soviet Union and, after emigrating in 1977, in the United States. He has programmed operating systems, programming tools, compilers, and libraries. His work on foundations of programming has been supported by GE, Polytechnic University, Bell Labs, HP, SGI, Adobe, and, since 2009, A9.com, Amazon’s search technology subsidiary. In 1995 he received the Dr. Dobb’s Journal Excellence in Programming Award for the design of the C++ Standard Template Library.
Daniel E. Rose is a research scientist who has held management positions at Apple, AltaVista, Xigo, Yahoo, and A9.com. His research focuses on all aspects of search technology, ranging from low-level algorithms for index compression to human–computer interaction issues in web search. Rose led the team at Apple that created desktop search for the Macintosh. He holds a Ph.D. in cognitive science and computer science from University of California, San Diego, and a B.A. in philosophy from Harvard University.