Course: Structure And Interpretation Of Computer Programs |
|
This course introduces students to the principles of computation. Upon completion of this course, students should be able to explain and apply the basic methods from programming languages to analyze computational systems, and to generate computational solutions to abstract problems. Substantial weekly programming assignments are an integral part of the course. These twenty video lectures by Hal Abelson and Gerald Jay Sussman are a complete presentation of the course, given in July 1986 for Hewlett-Packard employees, and professionally produced by Hewlett-Packard Television. These videos are also available here under a Creative Commons license compatible with commercial use. Books The full text of the course text book is available here. |
|
Topics
- Introduction to LISP
- Procedures and processes
- High order procedures
- Compound data
- Henderson Escher example
- Symbolic differentiation
- Pettern matching and rule based substitution
- Generic operators
- Assignment, state, and side effects
- Computational objects
- Streams part 1
- Streams part 2
- Metacircular evaluator, part - 1
- Metacircular evaluator, part - 2
- Logic programming, part - 1
- Logic programming, part - 2
- Register machines
- Explicit control evaluator
- Compilation
- Storage allocation and garbage collection