CS61AStructure and Interpretation of Computer Programs, Fall 2012




Announcements

12/16 Solutions to the final exam are posted.
11/30 Congratulations to the winners of the Scheme Recursive Art Contest!

Calendar

Week Date Lecture Topic Reading Lab/Discussion Homework Project
1 Fri Aug 24 Functions (1pp) (1pps) (6pp) (01.py)

Chapter 1.1

Chapter 1.2

Lab 0: Intro to Unix/Emacs

hw1.html hw1.py
2 Mon Aug 27 Names (1pp) (1pps) (6pp) (02.py)

Chapter 1.3

Chapter 1.4

Lab 1: Functions

Wed Aug 29 Control (1pp) (1pps) (6pp) (03.py)

Chapter 1.5

Lab 2: Control

Hog project (due Sep 12)
Fri Aug 31 Higher-Order Functions (1pp) (1pps) (6pp) (04.py)

Chapter 1.6

hw2.html hw2.py
3 Mon Sep 03 ***Academic Holiday***

Discussion 1: Expressions, Statements, and Functions

Solutions

Wed Sep 05 Environments (1pp) (1pps) (6pp) (05.py)

Chapter 1.6

Lab 3: Higher-Order Functions

Fri Sep 07 Newton's Method (1pp) (1pps) (6pp) (06.py)

Chapter 1.6

4 Mon Sep 10 Objects (1pp) (1pps) (6pp) (07.py)

Chapter 2.1

Discussion 2: Higher-Order Functions

Solutions

Wed Sep 12 Data Abstraction (1pp) (1pps) (6pp) (08.py)

Chapter 2.2

Lab 4: Data Abstraction

Fri Sep 14 Sequences (1pp) (1pps) (6pp) (09.py)

Chapter 2.3

hw3.html hw3.py
5 Mon Sep 17 Strings (1pp) (1pps) (6pp) (10.py)

Chapter 2.3

Discussion 3: Newton's Method and Sequences

Solutions

Wed Sep 19 ***No Lecture; Midterm is Tuesday 09/18 @ 7pm***

Lab 5: Guitar Heroine

Fri Sep 21 Lists and Dictionaries (1pp) (1pps) (6pp) (11.py)

Chapter 2.4

hw4.html hw4.py
6 Mon Sep 24 Midterm Review (1pp) (1pps) (6pp) (12.py)

Discussion 4: Mutable Lists and Dictionaries

Solutions

Trends project (due Oct 03)
Wed Sep 26 Mutable Data (1pp) (1pps) (6pp) (13.py)

Chapter 2.4

Lab 6: Shakespeare

Fri Sep 28 Mutable Data Types (1pp) (1pps) (6pp) (14.py)

Chapter 2.4

hw5.html hw5.py
7 Mon Oct 01 Object-Oriented Programming (1pp) (1pps) (6pp) (15.py)

Chapter 2.5

Discussion 5: Mutation and Nonlocal Statements

Solutions

Wed Oct 03 Inheritance (1pp) (1pps) (6pp) (16.py)

Chapter 2.5

Lab 7: Object-Oriented Programming

Ants project (due Oct 17)
Fri Oct 05 Implementing Objects (1pp) (1pps) (6pp) (17.py)

Chapter 2.6

hw6.html hw6.py
8 Mon Oct 08 Multiple Representations (1pp) (1pps) (6pp) (18.py)

Chapter 2.7

Discussion 6: Object-Oriented Programming

Solutions

Wed Oct 10 Generic Functions (1pp) (1pps) (6pp) (19.py)

Chapter 2.7

Lab 8: OOP Below the Line

Fri Oct 12 Recursion (1pp) (1pps) (6pp) (20.py)

Chapter 3.2

hw7.html hw7.py
9 Mon Oct 15 Tree Recursion (1pp) (1pps) (6pp) (21.py)

Chapter 3.2

Discussion 7: Recursive Functions

Solutions

Wed Oct 17 Recursive Data (1pp) (1pps) (6pp) (22.py)

Chapter 3.3

Lab 9: Recursive Data

Fri Oct 19 Orders of growth (1pp) (1pps) (6pp) (23.py)

Chapter 3.2

hw8.html hw8.py
10 Mon Oct 22 Sets (1pp) (1pps) (6pp) (24.py)

Chapter 3.3

Discussion 8: Rlists, Trees, and Orders of Growth

Solutions

Wed Oct 24 ***No Lecture; Midterm is Tuesday 10/23 @ 7pm***

Lab 10: Sets

Fri Oct 26 Functional Programming (1pp) (1pps) (6pp) (25.scm)

Chapter 3.5

hw9.html hw9.scm
11 Mon Oct 29 Exceptions (1pp) (1pps) (6pp) (26.py)

Chapter 3.4

Discussion 9: Scheme

Solutions

Wed Oct 31 Calculator (1pp) (1pps) (6pp)

Chapter 3.6

Lab 11: Scheme

Hog revisions project (due Nov 07)
Fri Nov 02 The Halting Problem (1pp) (4pp) hw10.html hw10.py
12 Mon Nov 05 Interpreters (1pp) (1pps) (6pp)

Chapter 3.7

Discussion 10: Exceptions and Calculator

Solutions

Wed Nov 07 Tail Calls (1pp) (1pps) (6pp) (30.py) (30.scm)

Chapter 3.7

Lab 12: Regular Expressions and Calculator

Scheme project (due Nov 20)
Fri Nov 09 User Interfaces hw11.html hw11.py
13 Mon Nov 12 ***Academic Holiday***

Discussion 11: Tail Recursion and Dynamic Scope

Solutions

Env Solutions

Wed Nov 14 Iterators and Streams (1pp) (1pps) (6pp) (32.py)

Chapter 4.2

Lab 13: User Interfaces

Fri Nov 16 Declarative Programming (1pp) (1pps) (6pp) (33.logic)

Chapter 4.3

14 Mon Nov 19 Unification (1pp) (1pps) (6pp) (34.logic) (34.py)

Chapter 4.4

Discussion 12: Iterators, Generators, and Streams

Solutions

Wed Nov 21 ***No Lecture; Thanksgiving***
Fri Nov 23 ***Academic Holiday*** hw12.html hw12.py
15 Mon Nov 26 Distributed Computing (1pp) (1pps) (6pp)

Chapter 4.5

Discussion 13: Logic Programming

Solutions

Wed Nov 28 MapReduce (1pp) (1pps) (6pp) (36.py)

Chapter 4.6

Lab 14: MapReduce

Fri Nov 30 Conclusion (1pp) (1pps) (6pp) (37.py) (37.zip) hw13.py

Weekly Schedule

Monday Tuesday Wednesday Thursday Friday
8:00 Disc 122
405 Soda
Andrew Nguyen
Disc 113
2 Evans
Keegan Mann
  Lab 013
271 Soda
Keegan Mann
Lab 022
271 Soda
Andrew Nguyen
8:30  
9:00  
9:30 Disc 123
405 Soda
Joy Jeng
Disc 114
71 Evans
Andrew Nguyen
Disc 201
405 Soda
Varun Pai
  Lab 014
271 Soda
Andrew Nguyen
Lab 201
273 Soda
Varun Pai
Lab 023
271 Soda
Joy Jeng
10:00  
10:30  
11:00 Disc 124
405 Soda
Phillip Carpenter
Disc 115
71 Evans
Varun Pai
Disc 202
285 Cory
Stephen Martinis
  Lab 015
271 Soda
Varun Pai
Lab 202
273 Soda
Stephen Martinis
Lab 024
271 Soda
Phillip Carpenter
11:30  
12:00  
12:30 Disc 125
405 Soda
Joy Jeng
Disc 116
87 Evans
Albert Wu
Disc 203
310 Soda
Allen Nguyen
  Lab 016
271 Soda
Albert Wu
Lab 203
273 Soda
Allen Nguyen
Lab 025
271 Soda
Joy Jeng
1:00  
1:30  
2:00 Lecture
1 Pimentel
Disc 117
87 Evans
Julia Oh
Disc 128
310 Soda
Allen Nguyen
Lecture
1 Pimentel
Lab 017
271 Soda
Julia Oh
Lab 028
273 Soda
Allen Nguyen
Lecture
1 Pimentel
2:30
3:00 Disc 111
310 Soda
Julia Oh
Lab 011
271 Soda
Julia Oh
 
3:30 Disc 118
B56 Hildebrand
Hamilton Nguyen
Disc 127
B51 Hildebrand
Phillip Carpenter
Lab 018
271 Soda
Hamilton Nguyen
Lab 027
273 Soda
Phillip Carpenter
 
4:00  
4:30 Disc 112
310 Soda
Hamilton Nguyen
Lab 012
271 Soda
Hamilton Nguyen
 
5:00 Disc 119
B56 Hildebrand
Stephen Martinis
Disc 126
B51 Hildebrand
Shu Zhong
Lab 019
271 Soda
Stephen Martinis
Lab 026
273 Soda
Shu Zhong
 
5:30  
6:00      
6:30   Disc 120
405 Soda
Shu Zhong
Disc 204
3113 Etcheverry
Albert Wu
  Lab 020
271 Soda
Shu Zhong
Lab 204
273 Soda
Albert Wu
 
7:00      
7:30      
8:00   Disc 121
405 Soda
Steven Tang
  Lab 021
271 Soda
Steven Tang
 
8:30      
9:00      

Resources