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 3.3

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

Chapter 3.2

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 3.3

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.5

Lab 9: Scheme

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

Chapter 3.5

Discussion 9: Scheme and Exceptions

Solutions

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

Chapter 3.4

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

Chapter 3.6

Lab 10: Exceptions and Calculator

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

Chapter 3.7

Discussion 10: Calculator

Solutions

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

Chapter 3.7

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

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.3

Lab 12: Logic Programming

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

Chapter 4.4

Discussion 12: Logic Programming and Unification

Solutions

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

Chapter 4.6

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

Chapter 4.7

Lab 13: MapReduce

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

Chapter 4.7

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