Lecture Schedules are subjected to change.
Day Topics Reading Homework Project Due Dates
6-22 Intro to Scheme, Recursion SICP: Section 1.1 Homework 1 (Soln)
Lab 1a (Soln)
Project 1
(Soln)
6-23 Recursion, Special Forms, Lambda SICP: Section 1.1
6-24 Higher-order Procedure I SICP: Section 1.3 Lab 1b
6-25 Higher-order Procedure II SICP: Section 1.3
6/29 Recursive vs. Iterative Process, Asymptotic Runtime SICP: Section 1.2 Homework 2
(Soln)
Lab 2A (Soln)
hw1 due Mon. 6/29
proj1 due Fri. 7/3
6-30 Data Aggregate, Data Abstraction SICP: Section 2.1
7-1 Lists and deep-lists SICP: Section 2.2.1, 2.2.2, 2.3 Lab 2B
7-2 Trees, Mutual Recursion SICP: Section 2.2.1, 2.2.2, 2.3
7-6 Tree II SICP: Section 2.2.1, 2.2.2, 2.3 Homework 3
(Soln)
Lab 3A (Soln)
Project 2a
(Soln)
hw2 due Mon. 7/6
midterm1 Fri. 7/10
7-7 Tree III, Mutual Recursion Lecture Notes on Tree
7-8 Object-oriented Programming I OOP: Above the Line Notes OOP: Reference Manual Lab 3B
7-9 Object-oriented Programming II OOP: Above the Line Notes
Slides on Inheritance
7-13 Local States, Environment Model I SICP: section 3.1,3.2 Homework 4 (Soln)
Lab 4A (Soln)
hw3 due Mon. 7/13
7-14 Environment II, OOP Below the Line SICP: Section 3.1,3.2
Counter-env Slides
7-15 Mutable Data I SICP: Section 3.3 Lab 4B
7-16 Mutable Data II SICP: Section 3.3
7-20 Vectors, Stream I SICP: Section 3.5 Homework 5
(Soln)
Lab 5A (Soln)
Project 2b hw4 due Mon. 7/20
proj2a due Mon. 7/20
7-21 Stream II SICP: Section 3.5
7-22 Metacircular Evaluator I SICP: Section 4.1.1 to 4.1.6 Lab 5B
7-23 Metacircular Evaluator II SICP: Section 4.1.1 to 4.1.6
7-27 Metacircular Evaluator III, Intro to Logo SICP: Section 4.1.1 to 4.1.6 Homework 6
(Soln)
Lab 6A
Project 3 hw5 due Mon. 7/27
proj2b due Tue. 7/28
midterm2 Fri. 7/31
7-28 Normal Order, Lazy Evaluator SICP: Section 4.2
7-29 Analyzing Evaluator SICP: Section 4.1.7 Lab 6B
7-30 Nondeterministic Evaluator I SICP: Section 4.3
8-3 Nondeterministic Evaluator II, Concurrency I SICP: Section 4.3, 3.4 Homework 7
(Soln)
Lab 7A
hw6 due Mon. 8/3
proj3 due Fri. 8/7
8-4 Concurrency II, Parallel-Programming SICP: Section 3.4
8-5 Mapreduce Lecture Notes Lab 7B
8-6 Social Implications of Computer Science TBA
8-10 Statistical Computing I TBA Project 4 hw7 due Mon. 8/10
final Fri. 8/14
8-11 Statistical Computing II, Logic Programming I SICP: Section 4.4
8-12 Logic Programming II SICP: section 4.4
8-13 Course Review proj4 due Mon. 8/17