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 |