# Structure and Interpretation of Computer Programs

- Institution: Massachusetts Institute of Technology
- Department: Electrical Engineering and Computer Science
- Taught by: Prof. Eric Grimson, Prof. Peter Szolovits, Prof. Trevor Darrell
- Term: Spring 2005
- Level: Undergraduate
- Language: English
- Subjects: Mathematics, Computer science, Engineering
- Source: [MIT OpenCourseWare](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/)
- Licence: [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) (Non-commercial use only.)
- Syllabus: [at the source](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/pages/syllabus/)
- Readings: [at the source](https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/pages/readings/)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

This course introduces students to the principles of computation. Upon completion of 6.001, 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. This course is worth 4 Engineering Design Points.

## Lectures

1. [1A: Overview and Introduction to Lisp](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/ac058bc125fa), 1 h 13 min (Video)
2. [1B: Procedures and Processes; Substitution Model](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/6adf2ae392e4), 59 min (Video)
3. [2A: Higher-order Procedures](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/72a48d8b7cc2), 1 h 2 min (Video)
4. [2B: Compound Data](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/5693656bd585), 1 h 17 min (Video)
5. [3A: Henderson Escher Example](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/eb59a8c93dc6), 1 h 16 min (Video)
6. [3B: Symbolic Differentiation; Quotation](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/6faf4f89c425), 45 min (Video)
7. [4A: Pattern Matching and Rule-based Substitution](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/e65a000198f8), 1 h 4 min (Video)
8. [4B: Generic Operators](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/e4a91f1f6b04), 1 h 24 min (Video)
9. [5A: Assignment, State, and Side-effects](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/ff213d8601e0), 1 h 16 min (Video)
10. [5B: Computational Objects](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/cebeda52a2c3), 1 h 5 min (Video)
11. [6A: Streams, Part 1](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/f306dd723df3), 1 h 7 min (Video)
12. [6B: Streams, Part 2](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/5a7b1856ab38), 1 h 4 min (Video)
13. [7A: Metacircular Evaluator, Part 1](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/179dfc752115), 1 h 25 min (Video)
14. [7B: Metacircular Evaluator, Part 2](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/ce59f413f083), 1 h 1 min (Video)
15. [8A: Logic Programming, Part 1](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/867156dfa0e6), 42 min (Video)
16. [8B: Logic Programming, Part 2](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/3d37cdf6aac0), 1 h 9 min (Video)
17. [9A: Register Machines](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/88fb43cfb260), 1 h 12 min (Video)
18. [9B: Explicit-control Evaluator](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/3239ef92e8f2), 1 h 11 min (Video)
19. [10A: Compilation](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/25094c51ed28), 46 min (Video)
20. [10B: Storage Allocation and Garbage Collection](https://invisiblenetwork.ai/learn/mit/6-001-structure-and-interpretation-of-computer-programs-spring-2005/ed7ff98f12ac), 59 min (Video)
