9.3
Texts
Required Reading
Recommended Reading
How to Design Programs (Second Edition) by Felleisen, Findler, Flatt, and Krishnamurthi. MIT Press, 2018.
A Little Java, A Few Patterns by Felleisen and Friedman. MIT Press, 2000.
How to Design Classes by Felleisen, Findler, Flatt, Gray, Krishnamurthi, and Proulx. Draft, 2012.
Enrichment
Data-Oriented Programming in Java, Version 1.1 by Nicolai Parlog. Read the whole series, linked from the introduction, to see how modern Java’s records, sealed types, and pattern matching support programming with immutable data. Also explore the Inside Java Podcast.