CS61A Structure and Interpretation of Computer Programs




Announcements

12/16

The final exam solutions are posted.


Calendar



Week Date Lecture Topic Reading Lab/Discussion Homework Project
1 Fri Aug 26 Introduction (1pp) (6pp) (code)

Chapter 1.1

hw1.html
2 Mon Aug 29 Functions (1pp) (6pp) (code)

Chapter 1.2

Chapter 1.3

Introduction to Unix/Emacs

Lab 1: Functions

Lab 1 Solutions

Wed Aug 31 Control Flow (1pp) (6pp) (div) (examples)

Chapter 1.4

Chapter 1.5

Lab 2: Control Flow

Lab 2 Solutions

Pig project (due Sep 14)
Fri Sep 02 Higher-Order Functions (1pp) (6pp) (examples) (server)

Chapter 1.6

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

Week 3 Discussion Notes

Solutions

Wed Sep 07 Environments (1pp) (6pp) (examples)

Chapter 1.6

Lab 3: Higher-Order Functions

Lab 3 Solutions

Fri Sep 09 Newton's Method (1pp) (6pp) (code) (examples)

Chapter 1.6

4 Mon Sep 12 Objects (1pp) (6pp)

Chapter 2.1

Week 4 Discussion Notes

Solutions

Wed Sep 14 Data Abstraction (1pp) (6pp) (example)

Chapter 2.2

Lab 4: Data Abstraction

Lab 4 Solutions

Fri Sep 16 Sequences (1pp) (6pp) (example)

Chapter 2.3

hw3.py
5 Mon Sep 19 ***No Lecture; Midterm @ 7pm***

Week 5 Discussion Notes

Solutions

Wed Sep 21 Strings (1pp) (6pp) (examples)

Chapter 2.3

Lab 5: Sequences

Lab 5 Solutions

Fri Sep 23 Mutable Data (1pp) (1pps) (6pp) (examples)

Chapter 2.4

hw4.py
6 Mon Sep 26 Lists (1pp) (1pps) (6pp) (examples)

Chapter 2.4

Week 6 Discussion Notes

Solutions

Trends project (due Oct 05)
Wed Sep 28 Constraint Programming (1pp) (1pps) (6pp) (examples)

Chapter 2.4

Lab 6: Nonlocal, Dictionaries, Shakespeare

Lab 6 Solutions

Fri Sep 30 Object-Oriented Programming: Classes (1pp) (1pps) (6pp) (example)

Chapter 2.5

hw5.py
7 Mon Oct 03 Object-Oriented Programming: Inheritance (1pp) (1pps) (6pp) (examples)

Chapter 2.5

Week 7 Discussion Notes

Solutions

Wed Oct 05 Implementing Objects (1pp) (1pps) (6pp) (examples)

Chapter 2.6

Lab 7: Object-Oriented Programming

Lab 7 Solutions

Ants project (due Oct 19)
Fri Oct 07 Multiple Representations (1pp) (1pps) (6pp) (examples)

Chapter 2.7

hw6.py
8 Mon Oct 10 Generic Functions (1pp) (1pps) (6pp) (examples)

Chapter 2.7

Week 8 Discussion Notes

Solutions

Wed Oct 12 Recursion (1pp) (1pps) (6pp) (examples)

Chapter 3.1

Chapter 3.2

Lab 8: Recursion

Lab 8 Solutions

Fri Oct 14 Tree Recursion (1pp) (1pps) (6pp) (examples) (memoize)

Chapter 3.2

hw7.py
9 Mon Oct 17 Orders of growth (1pp) (1pps) (6pp) (examples)

Chapter 3.2

Week 9 Discussion Notes

Solutions

Wed Oct 19 Recursive Data (1pp) (1pps) (6pp) (examples)

Chapter 3.3

Lab 9: Trees and Sets

Lab 9 Solutions

Fri Oct 21 Sets (1pp) (1pps) (6pp) (examples)

Chapter 3.3

hw8.py
10 Mon Oct 24 ***No Lecture; Midterm @ 7pm***
Wed Oct 26 User Interfaces (videos)

Lab 10: User Interfaces

Lab 10 Solutions

Fri Oct 28 Exceptions (1pp) (1pps) (6pp) (examples)

Chapter 3.4

hw9.py
11 Mon Oct 31 Calculator (1pp) (1pps) (6pp) (examples)

Chapter 3.5

Week 11 Discussion Notes

Solutions

Wed Nov 02 Lexical Analysis (1pp) (1pps) (6pp) (examples)

Chapter 3.5

Lab 11: Interpreters

Lab 11 Solutions

Fri Nov 04 Logo (1pp) (1pps) (6pp) (examples)

Chapter 3.6

hw10.html hw10.lg
12 Mon Nov 07 Interpreters (1pp) (1pps) (6pp)

Chapter 3.6

Week 12 Discussion Notes

Solutions

Wed Nov 09 Environments (1pp) (1pps) (6pp)

Chapter 3.6

Lab 12: Programming in Logo

Lab 12 Solutions

Logo project (due Nov 23)
Fri Nov 11 ***Academic Holiday***
13 Mon Nov 14 Client/Server (1pps)

Chapter 4.2

Week 13 Discussion Notes

Solutions

hw11.py
Wed Nov 16 Concurrency 1 (1pp) (4pp) (6pp) (examples)

Chapter 4.3

Lab 13: Client Server

chatclient_sol.py

chatserver_sol.py

Fri Nov 18 Concurrency 2 (1pp) (1pps) (6pp)

Chapter 4.3

hw12.py
14 Mon Nov 21 Iterators, Generators, and Streams (1pp) (1pps) (6pp) (examples)

Chapter 5.2

Week 14 Discussion Notes

Solutions

Wed Nov 23 ***No Lecture; Thanksgiving***
Fri Nov 25 ***Academic Holiday***
15 Mon Nov 28 Coroutines (1pp) (1pps) (6pp) (examples)

Chapter 5.3

Week 15 Discussion Notes

Solutions

hw13.py
Wed Nov 30 Map Reduce (1pp) (1pps) (6pp)

Lab 14: MapReduce

Lab 14 Solutions

Fri Dec 02 Conclusion (1pp) (1pps) (6pp) (examples) hw14.html

Weekly Schedule

Monday Tuesday Wednesday Thursday Friday
8:00 Disc 122
405 Soda
Akihiro Matsukawa
Disc 113
6 Evans
Eric Tzeng
  Lab 013
271 Soda
Eric Tzeng
Lab 022
271 Soda
Akihiro Matsukawa
8:30  
9:00  
9:30 Disc 123
405 Soda
Akihiro Matsukawa
Disc 114
4 Evans
Eric Tzeng
  Lab 014
271 Soda
Eric Tzeng
Lab 023
271 Soda
Akihiro Matsukawa
10:00  
10:30  
11:00 Disc 124
405 Soda
Stephanie Rogers
Disc 115
75 Evans
Hamilton Nguyen
  Lab 015
271 Soda
Hamilton Nguyen
Lab 024
271 Soda
Stephanie Rogers
11:30  
12:00  
12:30 Disc 125
405 Soda
Stephanie Rogers
Disc 116
75 Evans
Hamilton Nguyen
  Lab 016
271 Soda
Hamilton Nguyen
Lab 025
271 Soda
Stephanie Rogers
1:00  
1:30  
2:00 Lecture
1 Pimentel
Disc 117
4 Evans
Eric Kim
Lecture
1 Pimentel
Lab 017
271 Soda
Eric Kim
Lecture
1 Pimentel
2:30
3:00 Disc 111
310 Soda
Richard Lan
Lab 011
271 Soda
Richard Lan
 
3:30 Disc 118
87 Evans
Tom Magrino
Lab 018
271 Soda
Tom Magrino
 
4:00  
4:30 Disc 112
310 Soda
Phillip Carpenter
Lab 012
271 Soda
Phillip Carpenter
 
5:00 Disc 119
B56 Hilderand
Eric Kim
Disc 126
24 Wheeler
Phillip Carpenter
Lab 019
271 Soda
Eric Kim
Lab 026
273 Soda
Phillip Carpenter
 
5:30  
6:00      
6:30   Disc 120
405 Soda
Steven Tang
  Lab 020
271 Soda
Steven Tang
 
7:00      
7:30      
8:00   Disc 121
405 Soda
Steven Tang
  Lab 021
271 Soda
Steven Tang
 
8:30      
9:00      

Resources