"Structure and Interpretation of Computer Programs" のテキストと動画
MIT Press のページ MIT Open Course Ware のページ
テキスト(青)と動画(緑)へのリンク(対応関係は目安です):
1 Building Abstractions with Procedures
1.1 The Elements of Programming
1A: Overview and Introduction to Lisp
1.2 Procedures and the Processes They Generate
1B: Procedures and Processes; Substitution Model
1.3 Formulating Abstractions with Higher-Order Procedures
2A: Higher-order Procedures
2 Building Abstractions with Data
2.1 Introduction to Data Abstraction
2B: Compound Data
2.2 Hierarchical Data and the Closure Property
3A: Henderson Escher Example
2.3 Symbolic Data
3B: Symbolic Differentiation; Quotation
2.4 Multiple Representations for Abstract Data
2.5 Systems with Generic Operations
4B: Generic Operators
3 Modularity, Objects, and State
3.1 Assignment and Local State
5A: Assignment, State, and Side-effects
3.2 The Environment Model of Evaluation
3.3 Modeling with Mutable Data
5B: Computational Objects
3.4 Concurrency: Time Is of the Essence
3.5 Streams
6A: Streams, Part 1
6B: Streams, Part 2
4 Metalinguistic Abstraction
4.1 The Metacircular Evaluator
7A: Metacircular Evaluator, Part 1
7B: Metacircular Evaluator, Part 2
4.2 Variations on a Scheme -- Lazy Evaluation
4.3 Variations on a Scheme -- Nondeterministic Computing
4.4 Logic Programming
8A: Logic Programming, Part 1
8B: Logic Programming, Part 2
4A: Pattern Matching and Rule-based Substitution
5 Computing with Register Machines
5.1 Designing Register Machines
9A: Register Machines
5.2 A Register-Machine Simulator
5.3 Storage Allocation and Garbage Collection
10B: Storage Allocation and Garbage Collection
5.4 The Explicit-Control Evaluator
9B: Explicit-control Evaluator
5.5 Compilation
10A: Compilation