CS61A Structure and Interpretation of Computer Programs




Announcements

8/23 Thank you for a great summer!

The staff would like to thank all the students for a wonderful summer. It has been fun teaching with you, learning with you, and being your colleagues while exploring the vast fields of computer science. Best of luck for the future!


Calendar

SICP is short for your textbook, Structure and Interpretation of Computer Programs.
* before lecture topics indicates that the final draft of the lecture notes for that topic is online.

Week Date Lecture Topic Reading Lab/Discussion Exam Code Due
1 6/21 M *Overview, Introduction to Scheme SICP 1.1 Lab 1A
6/22 Tu *Recursion, Evaluation, Functions SICP 1.1 Week 1A Notes (Solns)
6/23 W *Lambda, Higher Order Functions SICP 1.3 Lab 1B
6/24 Th *Asymptotic Analysis SICP 1.2 Week 1B Notes (Solns)
2 6/28 M *Data Abstraction SICP 2.1 Lab 2A HW1 (Template)
6/29 Tu *Pairs and Lists SICP 2.2.1;2.2.2;2.3 Week 2A Notes (Solns)
6/30 W *Hierarchical Data SICP 2.2.1;2.2.2;2.3 Lab 2B
7/1 Th *Hierarchical Data SICP 2.2.1;2.2.2;2.3 Week 2B Notes (Solns)
7/2 Fri Project 1 (Blackjack)
3 7/5 M Holiday
7/6 Tu *Generic Operators SICP 2.4 HW2 (Template)
7/7 W *MapReduce, Church Numerals SICP 2.5 Lab 3
7/8 Th Alan Kay: User Interfaces (1) (2) Week 3 Notes (Solns) Midterm 1 (Solns)
(Review Questions, Solns)
7-10PM @ 155 Dwinelle
4 7/12 M *Object Oriented Programming OOP Above the Line Lab 4A HW3 (Template)
7/13 Tu *Object Oriented Programming (Dan Ingalls Video) Reference Manual Week 4A Notes (Solns)
7/14 W *Environments and Local State (Sketches) SICP 3.1, 3.2 Environment Diagram Rules Lab 4B
7/15 Th Environments and Local State (Sketches) SICP 3.1, 3.2, OOP Below The Line Week 4B Notes
5 7/19 M *Mutable Data (Sketches) SICP 3.3 Lab 5A HW4 (Template)
7/20 Tu *Tables, Vectors (Sketches) SICP 4.1.1-4.1.6 Week 5A Notes
(Mutation Solns) (Vector Solns)
7/21 W *Metacircular Evaluator SICP 4.1.1-4.1.6 Lab 5B
7/22 Th *Metacircular Evaluator
(Same Notes)
SICP 4.1.1-4.1.6 Week 5B Notes (Solns)
7/23 Fri Project 2 (Adventure Game)
6 7/26 M *Concurrency SICP 3.4 Logo Lab
Python Lab
HW5 (Template)
7/27 Tu *Streams SICP 3.5 Week 6A Notes
(Solns)
7/28 W Catchup Lab 6B
7/29 Th *Client/Server and MapReduce Blown to Bits p301-316 Week 6B Notes
(Solns)
Midterm 2 (Solns)
(Review Questions, Solutions)
7-10pm @ 10 Evans
7 8/2 M Lazy Evaluator, Intro to Amb SICP 4.2, 4.3 Lab 7A HW6 (Template | Battleship Client | Battleship Server)
8/3 Tu Nondeterministic Evaluator SICP 4.2 Week 7A Notes
(Solns)
8/4 W *Logic Evaluator (Above the Line) SICP 4.4 Lab 7B
8/5 Th Project 4 Introductions Week 7B Notes
(Solns)
8/6 Fri Project 3
(Logo | Schython)
8 8/9 M Logic Evaluator (Below the Line) SICP 4.4 Lab 8A HW7 (Template)
8/10 Tu Analyzing Evaluator SICP 4.1.7 Week 8A Notes
(Solns)
8/11 W Social Implications Blown to Bits Week 8B Notes (Solns)
8/12 Th Review Final Part 1, Part 2 (Solns)
(Review 1 Questions, Solutions |
Review 2 Questions, Solutions)
6-10PM @ 10 Evans
8/13 Fri Project 4 (facebook-hooks.scm | Scheme Facebook API)

Weekly Schedule

Monday Tuesday Wednesday Thursday Friday
10:00         Office Hours
651 Soda
Jonathan Kotker
10:30        
11:00 Lecture
1 Pimentel
George Wang
Lecture
1 Pimentel
George Wang
Lecture
1 Pimentel
George Wang
Lecture
1 Pimentel
George Wang
 
11:30  
12:00  
12:30 Lab 101
271 Soda
Steven Tang
Dis 101
320 Soda
Steven Tang
Office Hours
419 Soda
George Wang
Lab 101
271 Soda
Steven Tang
Dis 101
320 Soda
Steven Tang
Office Hours
419 Soda
George Wang
 
1:00  
1:30      
2:00 Lab 102
271 Soda
Jonathan Kotker
Dis 102
320 Soda
Jonathan Kotker
Lab 102
271 Soda
Jonathan Kotker
Office Hours
651 Soda
Steven Tang
Dis 102
320 Soda
Jonathan Kotker
Office Hours
651 Soda
Steven Tang
 
2:30  
3:00      
3:30 Lab 103
271 Soda
Eric Tzeng
Dis 103
320 Soda
Eric Tzeng
Lab 103
271 Soda
Eric Tzeng
Dis 103
320 Soda
Eric Tzeng
Office Hours
651 Soda
Jonathan Kotker
 
4:00  
4:30    
5:00 Lab 104
271 Soda
Seshadri Mahalingam
Dis 104
320 Soda
Seshadri Mahalingam
Office Hours
651 Soda
Eric Tzeng
Lab 104
271 Soda
Seshadri Mahalingam
Office Hours
651 Soda
Eric Tzeng
Dis 104
320 Soda
Seshadri Mahalingam
 
5:30  
6:00      
6:30   Office Hours
271 Soda
Seshadri Mahalingam
  Office Hours
271 Soda
Seshadri Mahalingam
 
7:00      

Resources


Acknowledgments

This is an incomplete list, since to list every contribution to this course would be infeasible. Thank you to all the following people, without whose substantial support this course could not have materialized. First, thank you to Brian Harvey, who is responsible for not only teaching CS61A to the entire staff, but the primary source for all of the lectures. Thank you to Min Xu, instructor for Summer 2009, for many of the homework questions, lab modifications, lecture slides, as well as general advice. The discussion notes are a product of Chung Wu's originals, combined with modifications from Justin Chen, Jordan Rose, and Ahmed Owainati. The lecture notes are a derivative work of Brian Harvey's lectures, with formatting provided by Jonathan Kotker.