Learn the fundamentals of program design through a comprehensive course covering fixed-size data, arbitrarily large data, abstraction, intertwined data, generative recursion, and accumulators. Explore key concepts such as the Beginning Student Language, quoting and unquoting, scope and abstraction, the nature of numbers, and the cost of computation. Begin with a prologue on how to program and conclude with an epilogue on moving forward in your programming journey.
Overview
Syllabus
- Prologue: How to Program
- I Fixed-Size Data
- Intermezzo 1: Beginning Student Language
- II Arbitrarily Large Data
- Intermezzo 2: Quote, Unquote
- III Abstraction
- Intermezzo 3: Scope and Abstraction
- IV Intertwined Data
- Intermezzo 4: The Nature of Numbers
- V Generative Recursion
- Intermezzo 5: The Cost of Computation
- VI Accumulators
- Epilogue: Moving On
Taught by
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi