CS61A: Structure and Interpretation of Computer Programs

Spring, 2012
Instructor: Paul Hilfinger


Course Resources

Administrative Online Information Textbooks and Readers
About the staff Piazza discussion group Online textbook
Course information and Policies Lecture Webcasts Original online SICP textbook
Section rooms and times Python 3 documentation
Grading complaint form Homework solutions
Sample Tests

Contest Results

You have selected the winners of the Recursion Exposition! Here they are:

Overall Winners First (tie): #11 (cs61a-ge and cs61a-qh), "The Summer Tree" and #21 (cs61a-gj and cs61a-eo): "L.H.O.O.Q"
Second: #13 (cs61a-hj): "Ammonite"
Third: #10 (cs61a-sc and cs61a-sd), "F.L.O.W.E.R."
Featherweight Category First: #10 (cs61a-sc and cs61a-sd), "F.L.O.W.E.R."
Second: #3 (cs61a-kz and cs61a-jh), "Uranus in CS61A"
Third: #4 (cs61a-nq and cs61a-nm), "Helix Rings"
Heavyweight Category First: #11 (cs61a-ge and cs61a-qh), "The Summer Tree"
Second: #13 (cs61a-hj): "Ammonite"
Third: #19 (cs61a-qz and cs61a-qx), "Project 4: The Aftermath"

The results from the Pig contest are in! Our top finishers out of 34 entries:

Login Score
cs61a-ka 16.3716
cs61a-nc 16.3716
cs61a-av 15.3415
cs61a-or 15.2311
cs61a-kn 15.0950

Other Useful Information


Course Schedule

)
Week Date Topics Readings Lecture Slides Lab/Discussion Homework Project
Mon Wed Fri
1 Mon 16 Jan Introduction, Functions §1.1–1.3 (1pp)(6pp) (1pp)(6pp)
Updated 1/23
Introduction to Unix/Emacs
Lab 1
hw1.html
2 Mon 23 Jan Control flow, higher-order functions, environments §1.4–1.6 (1pp)(6pp)
Updated 1/25
(1pp)(6pp)
Updated 1/26
(1pp)(6pp)(code)
Updated after lecture
Lab 2
Week #2 Discussion
hw2.py
hw2.html
Pig Project
(due: Mon 6 Feb)
3 Mon 30 Jan Example: Newton's method, objects, data abstraction §1.6, §2.1–2.3.4 (1pp)(6pp)
Updated after lecture
(1pp)(6pp) (1pp)(6pp) Lab 3
Week #3 Discussion
hw3.py
hw3.html
4 Mon 6 Feb Sequences, Strings §2.3 (1pp)(6pp) (1pp)(6pp)(code) (1pp)(6pp)(code) Lab 4
Week #4 Discussion
hw4.py
hw4.html
Trends Project
(due: Tue 21 Feb)
5 Mon 13 Feb Mutable data, lists, dictionaries §2.4–2.5.3 (1pp)(6pp)(code) (1pp)(6pp)(code) (1pp)(6pp)(code) Lab 5
Week #5 Discussion
hw5.py
hw5.html
Test #1, Wed 15 February (evening) in 1 Pimentel
6 Mon 20 Feb OOP, classes, inheritance §2.5 (1pp)(6pp)(code) (1pp)(6pp)(code) Lab 6
Week #6 Discussion
hw6.py
hw6.html
7 Mon 27 Feb Using objects, recursion §2.7–3.2 (1pp)(6pp)(code)
Updated 2/29
(1pp)(6pp)(code)
sierpinski.ps
(1pp)(6pp)(code) Lab 7
Week #7 Discussion
hw7.py
hw7.html
Ants Project
(due: Mon 12 Mar)
8 Mon 5 Mar Orders of growth, recursive data §3.3 (1pp)(6pp)(code) (1pp)(6pp)(code) (1pp)(6pp) Lab 8
Week #8 Discussion
hw8.py
hw8.html
Test #2, Wed 7 March (evening) in 1 Pimentel
9 Mon 12 Mar Complexity, Recursive data §3.3 (1pp)(6pp) (1pp)(6pp)(code) (1pp)(6pp) Lab 9
Week #9 Discussion
hw9.py
hw9.html
10 Mon 19 Mar Interpretation §3.4–3.5 (1pp)(6pp) (1pp)(6pp) (1pp)(6pp) Lab 10
Week #10 Discussion
hw10.scm
hw10.html
Scheme Project
(due: Mon 23 Apr)
11 Mon 2 Apr Project 4, Halting Problem, Client/Server §3.5–3.6 (1pp)(6pp) (1pp)(6pp) (1pp)(6pp) Lab 11
Week #11 Discussion
hw11.py
hw11.html
12 Mon 9 Apr Parallelism, Streams §3.6 §4.2–4.3 (1pp)(6pp) (1pp)(6pp) (1pp)(6pp)(code) Lab 12
Week #12 Discussion
hw12.py
hw12.html
Test #3, Wed 11 April (evening) in 1 Pimentel
13 Mon 16 Apr Streams, Map/Reduce, Logic Programming §4.3 (1pp)(6pp)(code) (1pp)(6pp) (1pp)(6pp)
Scheme prolog examples
Lab 13
Week #13 Discussion
hw13.scm, hw13.py
hw13.html
14 Mon 23 Apr Logic Programming, Conclusion (1pp)(6pp) (1pp)(6pp) (1pp)(6pp) Lab 14
Week #14 Discussion
hw14.py
hw14.html

About Viewing Documents

Course documents available through these Web pages are either plain text files, Postscript files, or PDF (Portable Document Format) files. You can read the latter using Adobe's Acrobat Reader, which is available on the machines in our instructional cluster as the program acroread.