Lecture Notes

This section contains the online lectures for the course, which are expected to be read by students in preparation for recitation sessions. Each lecture contains a set of exercises which students must complete by a given date. Please see the calendar for more information on the dates the exercises are due.

Lec # Topics
L1 Introduction to Computation ( PDF - 2.1 MB)
L2

Scheme Basics ( PDF - 1.5 MB)

A Story about using Lisp in a Startup Company ( PDF)

L3 Procedures, Processes, and Recursion ( PDF - 2.1 MB)
L4 Orders of Growth and Kinds of Procedures ( PDF - 1.7 MB)
L5 Data Abstraction ( PDF - 2.1 MB)
L6 Higher Order Procedures ( PDF - 2.1 MB)
L7 Good Programming Practices ( PDF - 1.6 MB)
L8 Using Higher Order Procedures ( PDF - 1.6 MB)
L9 Symbols and Quotation ( PDF - 1.4 MB)
L10 Tagged Data ( PDF - 2.2 MB)
L11 Advanced Data Types ( PDF - 2.2 MB)
L12 Data Mutation ( PDF - 1.7 MB)
L13 Trees, Graphs and Search ( PDF - 2.2 MB)
L14 Graphs and Search
L15 Environment Model ( PDF 1 of 2 - 1.6 MB) ( PDF 2 of 2 - 2.2 MB)
L16 Object Oriented Programming I ( PDF - 2.3 MB)
L17 Object Oriented Programming II ( PDF - 1.7 MB)
L18 Object Oriented Programming III ( PDF - 2.0 MB)
L19

Interpretation ( PDF 1 of 2 - 2.5 MB) ( PDF 2 of 2 - 1.3 MB)

Interpreter Code ( PDF)

L20

The Meta-circular Evaluator ( PDF - 2.6 MB)

Evaluator Code ( PDF)

L21

Lazy Evaluation ( PDF 1 of 2 - 2.0 MB) ( PDF 2 of 2 - 1.2 MB)

Lazy Evaluator Code ( PDF)

L22 Asynchronous Computing ( PDF - 1.2 MB)
L23 Universal Machines ( PDF)
L24 Geometric Folding Algorithms: Origami, Linkages, and Polyhedra
L25 Peer-To-Peer Computing Research: A Fad?
L26 Computability ( PDF)

Course Info

Learning Resource Types

menu_book Online Textbook
grading Exams
notes Lecture Notes
group_work Projects
theaters Lecture Videos