The calendar below provides information on the course's lecture (L), recitation (R), and quiz (Q) sessions. All lectures, except those labeled as live lectures, are online lectures. Students are expected to read the online lectures in preparation for recitations. All online lectures contain a set of programming exercises that must be completed and submitted online.

ses # Topics Key dates
L1 Introduction to Computation
R1 Introduction to Computation (cont.)
L2 Scheme Basics Lectures 1-2 exercises due
R2 Scheme Basics (cont.) Project 0 due
L3 Procedures, Processes, and Recursion Problem set 1 due
R3 Procedures, Processes, and Recursion (cont.)
L4 Orders of Growth and Kinds of Procedures Lectures 3-4 exercises due
R4 Orders of Growth and Kinds of Procedures (cont.)
L5 Data Abstraction Problem set 2 due
R5 Data Abstraction (cont.)
L6 Higher Order Procedures Lectures 5-6 exercises due
R6 Higher Order Procedures (cont.) Project 1 due
R7 Higher Order Procedures (cont.) Problem set 3 due
L7 Good Programming Practices
R8 Good Programming Practices (cont.)
L8 Using Higher Order Procedures
Q1 Quiz 1
L9 Symbols and Quotation Lectures 7-9 exercises due
R9 Symbols and Quotation (cont.)
L10 Tagged Data Problem set 4 due
R10 Tagged Data (cont.)
L11 Advanced Data Types Lectures 10-11 exercises due
R11 Advanced Data Types (cont.) Project 2 due
L12 Data Mutation Problem set 5 due
R12 Data Mutation (cont.)
L13 Live Lecture: Trees, Graphs and Search Lectures 12-13 exercises due
R13 Trees, Graphs and Search (cont.)
L14 Live Lecture: Graphs and Search Problem set 6 due
R14 Graphs and Search (cont.)
L15 Environment Model Lectures 14-15 exercises due
R15 Environment Model (cont.) Project 3 due
L16 Object Oriented Programming I Problem set 7 due
R16 Object Oriented Programming I (cont.)
L17 Object Oriented Programming II Lectures 16-17 exercises due
R17 Object Oriented Programming II (cont.)
L18 Object Oriented Programming III Problem set 8 due
R18 Object Oriented Programming III (cont.)
L19 Interpretation
R19 Interpretation (cont.) Project 4 due
Q2 Quiz 2
L20 The Meta-circular Evaluator Lectures 18-20 exercises due
R20 The Meta-circular Evaluator (cont.)
L21 Lazy Evaluation Problem set 9 due
R21 Lazy Evaluation (cont.)
L22 Asynchronous Computing Lectures 21-22 exercises due
R22 Asynchronous Computing (cont.)
L23 Universal Machines Problem set 10 due
R23 Universal Machines (cont.)
L24 Live Lecture: Geometric Folding Algorithms: Origami, Linkages, and Polyhedra (Guest lecture by Erik Demaine) Lectures 23-24 exercises due
R24 Geometric Folding Algorithms (cont.) Project 5 due
L25 Live Lecture: Peer-To-Peer Computing Research: A Fad? (Guest lecture by Frans Kaashoek)
R25 Peer-To-Peer Computing Research (cont.)
L26 Computability Lectures 25-26 exercises due