CS61AStructure and Interpretation of Computer Programs, Spring 2013




Announcements

5/11 Congratulations to the winners of the Scheme recursive art contest!
2/11 Congratulations to Colin Lockard and Sherry Xu, winners of the hog contest! Full standings here.

Calendar

Week Date Lecture Topic Reading Lab/Discussion Homework Project
1 Mon Jan 21 ***Academic Holiday***

Lab 0: Intro to Unix/Emacs

Wed Jan 23 Functions (1pp) (1pps) (6pp) (01.py)

Chapter 1.1

Chapter 1.2

Discussion 1: Unix Review, Expressions, and Functions

Solutions

hw0.html hw0.py
Fri Jan 25 Values and Side Effects (1pp) (1pps) (6pp) (02.py)

Chapter 1.3

Chapter 1.4

hw1.html hw1.py
2 Mon Jan 28 Names (1pp) (1pps) (6pp) (03.py)

Chapter 1.5

Lab 1: Control Flow

Hog project (due Feb 11 at 11:59PM)
Wed Jan 30 Control and Higher-Order Functions (1pp) (1pps) (6pp) (04.py)

Chapter 1.6

Discussion 2: Higher-Order Functions

Solutions

hw2.html hw2.py
Fri Feb 01 Higher-Order Functions and ***In-Class Quiz*** (1pp) (1pps) (6pp) (05.py)

Chapter 1.6

3 Mon Feb 04 Environments and Lambda (1pp) (1pps) (6pp) (06.py)

Chapter 1.6

Lab 2: Higher-Order Functions and Lambdas

Wed Feb 06 Lambda and Newton's Method (1pp) (1pps) (6pp) (07.py)

Chapter 1.6

Discussion 3: Environments, Lambdas, and Newton's Method

Solutions

hw3.html hw3.py
Fri Feb 08 Newton's Method and Recursion (1pp) (1pps) (6pp) (08.py)

Chapter 1.7

4 Mon Feb 11 Recursion (1pp) (1pps) (6pp) (09.py)

Chapter 1.7

Lab 3: Recursion and Midterm Review

Wed Feb 13 ***No Lecture; Midterm is Wednesday 02/13 @ 7pm***

Discussion 4: Recursion, Tree Recurson, Mutual Recursion

Solutions

hw4.html hw4.py
Fri Feb 15 Recursion Examples (1pp) (1pps) (6pp) (11.py)

Chapter 1.7

5 Mon Feb 18 ***Academic Holiday***

Lab 4: Recursion and General Debugging

Wed Feb 20 Data Abstraction (1pp) (1pps) (6pp) (13.py)

Chapter 2.2

Discussion 5: Data Abstraction

Solutions

hw5.html hw5.py
Fri Feb 22 Sequences (1pp) (1pps) (6pp) (14.py)

Chapter 2.3

Trends project (due Mar 05 at 11:59PM)
6 Mon Feb 25 Sequences and Iterables (1pp) (1pps) (6pp) (15.py)

Chapter 2.4

Lab 5: Tuples, Recursive Lists, and Strings

Wed Feb 27 Objects, Lists, and Dictionaries (1pp) (1pps) (6pp) (16.py)

Chapter 2.1

Chapter 2.4

Discussion 6: Lists and Dictionaries

Solutions

hw6.html hw6.py
Fri Mar 01 Mutable Data (1pp) (1pps) (6pp) (17.py)

Chapter 2.4

7 Mon Mar 04 Mutable Data Types (1pp) (1pps) (6pp) (18.py)

Chapter 2.4

Lab 6: Lists, Dictionaries, and Nonlocal

Ants project (due Mar 18 at 11:59PM)
Wed Mar 06 Object-Oriented Programming (1pp) (1pps) (6pp) (19.py)

Chapter 2.5

Discussion 7: Object Oriented Programming

Solutions

hw7.html hw7.py
Fri Mar 08 Inheritance (1pp) (1pps) (6pp) (20.py)

Chapter 2.5

8 Mon Mar 11 Generic Functions (1pp) (1pps) (6pp) (21.py)

Chapter 2.7

Lab 7: Object-Oriented Programming

Wed Mar 13 Multiple Representations (1pp) (1pps) (6pp) (22.py)

Chapter 2.7

Discussion 8: Inheritance, Multiple Representations, Generic Functions

Solutions

hw8.html hw8.py
Fri Mar 15 Coercion and Recursive Data (1pp) (1pps) (6pp) (23.py)

Chapter 2.7

Chapter 2.9

9 Mon Mar 18 Recursive Data and Orders of Growth (1pp) (1pps) (6pp) (24.py)

Chapter 2.9

Chapter 2.8

Lab 8: Mutable Recursive Lists and Type Dispatching

Wed Mar 20 Trees, Memoization, and Sets; ***Midterm is Thursday 03/21 @ 7pm*** (1pp) (1pps) (6pp) (25.py)

Chapter 2.9

hw9.html hw9.py
Fri Mar 22 Sets and Social Implications of Computing (1pp) (1pps) (6pp) (26.py)
10 Mon Mar 25 ***Academic Holiday***
Wed Mar 27 ***Academic Holiday***
Fri Mar 29 ***Academic Holiday***
11 Mon Apr 01 Functional Programming (1pp) (1pps) (6pp) (30.scm)

Chapter 3.1

Chapter 3.2

Lab 9: Scheme

Hog revisions project (due Apr 08 at 11:59PM)
Wed Apr 03 Scheme (1pp) (1pps) (6pp) (31.scm)

Chapter 3.2

Discussion 9: Scheme and Exceptions

Solutions

hw10.html hw10.scm
Fri Apr 05 Exceptions (1pp) (1pps) (6pp) (32.py)

Chapter 3.3

12 Mon Apr 08 Calculator (1pp) (1pps) (6pp) (33.html)

Chapter 3.4

Lab 10: Exceptions and Calculator

Scheme project (due Apr 29 at 11:59PM)
Wed Apr 10 Interpreters (1pp) (1pps) (6pp) (34.html)

Chapter 3.5

Discussion 10: Calculator

Solutions

hw11.html hw11.py
Fri Apr 12 Tail Calls (1pp) (1pps) (6pp) (35.py) (35.scm)

Chapter 3.5

13 Mon Apr 15 Iterators (1pp) (1pps) (6pp) (36.py)

Chapter 4.1

Chapter 4.2

Lab 11: Tail-Calls, Iterators, Generators

Wed Apr 17 Streams (1pp) (1pps) (6pp) (37.py)

Chapter 4.2

Discussion 11: Iterators, Generators, and Streams

Solutions

hw12.html hw12.py
Fri Apr 19 The Halting Problem (1pp) (1pps) (6pp)
14 Mon Apr 22 Declarative Programming (1pp) (1pps) (6pp) (39.logic)

Chapter 4.4

Lab 12: Logic Programming

Wed Apr 24 Unification (1pp) (1pps) (6pp) (40.logic)

Chapter 4.5

Discussion 12: Logic Programming and Unification

Solutions

hw13.html hw13.logic
Fri Apr 26 MapReduce (1pp) (1pps) (6pp) (41.zip)

Chapter 4.7

15 Mon Apr 29 Parallelism (1pp) (1pps) (6pp) (42.py)

Chapter 4.8

Lab 13: MapReduce

Wed May 01 Parallelism and Conclusion (1pp) (1pps) (6pp) (43.py)

Chapter 4.8

Fri May 03 Special Lecture (1pp) (6pp) hw14.py hw14.html

Weekly Schedule

Monday Tuesday Wednesday Thursday Friday
8:00   Lab 011
271 Soda
Richard Hwang
Lab 026
273 Soda
Keegan Mann
Lab 021
271 Soda
Soumya Basu
Dis 011
6 Evans
Richard Hwang
Dis 026
4 Evans
Keegan Mann
Dis 021
310 Soda
Soumya Basu
8:30  
9:00  
9:30   Lab 012
271 Soda
Richard Hwang
Lab 027
273 Soda
Mark Miyashita
Lab 022
271 Soda
Hamilton Nguyen
Dis 012
6 Evans
Richard Hwang
Dis 027
3105 Etcheverry
Mark Miyashita
Dis 022
310 Soda
Hamilton Nguyen
10:00  
10:30  
11:00   Lab 013
271 Soda
Joy Jeng
Lab 023
271 Soda
Mark Miyashita
Dis 013
75 Evans
Joy Jeng
Dis 023
310 Soda
Mark Miyashita
11:30  
12:00  
12:30   Lab 014
271 Soda
Stephen Martinis
Lab 024
271 Soda
Soumya Basu
Dis 014
6 Evans
Stephen Martinis
Dis 024
310 Soda
Soumya Basu
1:00  
1:30  
2:00 Lecture 001
1 Pimentel
Lab 015
271 Soda
Julia Oh
Lecture 001
1 Pimentel
Lab 025
271 Soda
Albert Wu
Dis 015
4 Evans
Julia Oh
Lecture 001
1 Pimentel
Dis 025
310 Soda
Albert Wu
2:30
3:00      
3:30   Lab 016
271 Soda
Julia Oh
  Dis 016
75 Evans
Julia Oh
 
4:00 Lecture 002
10 Evans
Lecture 002
10 Evans
Lecture 002
10 Evans
4:30
5:00   Lab 017
271 Soda
Robert Huang
  Dis 017
71 Evans
Robert Huang
 
5:30      
6:00      
6:30   Lab 018
271 Soda
Robert Huang
  Dis 018
B56 Hildebrand
Robert Huang
 
7:00      
7:30      
8:00   Lab 019
271 Soda
Sharad Vikram
  Dis 019
310 Soda
Sharad Vikram
 
8:30      
9:00      
9:30   Lab 020
271 Soda
Sharad Vikram
Lab 028
273 Soda
Keegan Mann
  Dis 020
310 Soda
Sharad Vikram
Dis 028
320 Soda
Keegan Mann
 
10:00      
10:30      

Resources