43  References

This bibliography is organized by each work’s direct role in the book’s themes.

43.1 Foundational Texts in Programming and Computation

43.2 Algorithm Design and Analysis

43.3 Software Design and Architecture

43.4 Functional Programming and Type Systems

43.5 Graph Theory and Discrete Mathematics

43.6 Testing and Verification

43.7 Data Modeling

43.8 Influence Note

Works are cited where their influence is most direct. Several shape the book across multiple parts.

43.9 Notes

  • Add chapter-local citations as needed using [@citation_key].
  • Rebuild with make book or make print to refresh bibliography output.
Abelson, Harold, Gerald Jay Sussman, and Julie Sussman. 1996. Structure and Interpretation of Computer Programs. 2nd ed. MIT Press.
Beck, Kent. 2002. Test-Driven Development: By Example. Addison-Wesley.
Cormen, Thomas H., Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. 2022. Introduction to Algorithms. 4th ed. MIT Press.
Date, C. J. 2003. An Introduction to Database Systems. 8th ed. Addison-Wesley.
Diestel, Reinhard. 2017. Graph Theory. 5th ed. Springer.
Dijkstra, Edsger W. 1972. “Notes on Structured Programming.” In Structured Programming, edited by O.-J. Dahl, E. W. Dijkstra, and C. A. R. Hoare. Academic Press.
Evans, Eric. 2003. Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley.
Felleisen, Matthias, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi. 2018. How to Design Programs: An Introduction to Programming and Computing. 2nd ed. MIT Press.
Fowler, Martin. 2002. Patterns of Enterprise Application Architecture. Addison-Wesley.
Hoare, C. A. R. 1969. “An Axiomatic Basis for Computer Programming.” Communications of the ACM 12 (10): 576–80.
Hughes, John. 1989. “Why Functional Programming Matters.” The Computer Journal 32 (2): 98–107.
Kleppmann, Martin. 2017. Designing Data-Intensive Applications. O’Reilly Media.
Knuth, Donald E. 2011. The Art of Computer Programming. Addison-Wesley.
Martin, Robert C. 2017. Clean Architecture: A Craftsman’s Guide to Software Structure and Design. Prentice Hall.
Meyer, Bertrand. 1997. Object-Oriented Software Construction. 2nd ed. Prentice Hall.
Parnas, David L. 1972. “On the Criteria to Be Used in Decomposing Systems into Modules.” Communications of the ACM 15 (12): 1053–58.
Rosen, Kenneth H. 2018. Discrete Mathematics and Its Applications. 8th ed. McGraw-Hill.
Sedgewick, Robert, and Kevin Wayne. 2011. Algorithms. 4th ed. Addison-Wesley.
Skiena, Steven S. 2020. The Algorithm Design Manual. 3rd ed. Springer.
Wadler, Philip. 1989. “Theorems for Free!” Proceedings of the Fourth International Conference on Functional Programming Languages and Computer Architecture.