CS61AStructure and Interpretation of Computer Programs, Spring 2014




Announcements

5/15 Congratulations to our Scheme Art Contest Winners!
  • Featherweight Division: Entries
    • 1st place: Submission 1 (46% of votes) Yidong Zou (cs61a-jf) and Jiacheng Wu (cs61a-je)
    • 2nd place: Submission 2 (44% of votes) Yea Jung (cs61a-afc) and Bofan Chen (cs61a-aas)
    • 3rd place: Submission 0 (10% of votes) Ryan Kapur (cs61a-vm) and Ginny McGinnis (cs16a-kt)
  • Heavyweight Division: Entries
    • 1st place: Submission 5 (59% of votes) Allan Zhao (cs61a-ahh)
    • 2nd place: Submission 4 (21% of votes) Franklin Lee (cs61a-aj)
    • 3rd place: Submission 3 (20% of votes) Jaskirat Mahal (cs61a-mt) and Sandeep Subramanian (cs61a-ads)
5/2 Please fill out our final survey by Friday, 16 May. It's worth 1.5 points, plus 1 extra for the whole class if we get 90\% participation.
5/2 HKN surveys today (5 points) in class.
4/8 Test #2 solutions available.
4/4 Educational Technology Services (ETS) is planning the future of the Webcast program; in particular we will be making choices about *where* we make course webcasts available to you. Your input is valuable! Please take a few minutes to answer the questions on our survey, here.
2/28 Congratulations to our Hog Contest Winners! See the top 10 entries!
2/16 Your readers include the following page of sample tests from past semesters.
2/20 Test #1 solutions available.

Calendar

Week Date Lecture Topic Reading Lab/Discussion Homework Project
1 Wed Jan 22 Introduction (01.py) (1pp) (6pp)

Section 1.1

Section 1.2

Discussion 0: Lost on the Moon

Solutions

hw0.html hw0.py
Fri Jan 24 Functions and Expressions (02.py) (1pp) (6pp)

Section 1.3

Section 1.4

2 Mon Jan 27 Names and Environments (03.py) (1pp) (6pp)

Section 1.5

Lab 0: Intro to Unix/Emacs

Lab 1: Your own machine

Wed Jan 29 Control (04.py) (1pp) (6pp)

Section 1.6

Discussion 1: Expressions, Statements, and Functions

Solutions

hw1.html hw1.py
Fri Jan 31 Environments (05.py) (1pp) (6pp)

Section 1.6

Hog (due Feb 13)
3 Mon Feb 03 Newton's Method (06.py) (1pp) (6pp)

Section 1.6

Lab 2: Control

Wed Feb 05 Recursion (07.py) (1pp) (6pp)

Section 1.7

Discussion 2: Higher-Order Functions

Solutions

hw2.html hw2.py
Fri Feb 07 Tree Recursion (08.py) (1pp) (6pp)

Section 1.7

4 Mon Feb 10 Function Examples (09.py) (1pp) (6pp)

Lab 3: Recursion and Midterm Review

Wed Feb 12 Function and Data Abstraction (10.py) (1pp) (6pp)

Section 2.1

Section 2.2

Discussion 3: Recursion

Solutions

hw3.html hw3.py Hog contest (due Feb 27)
Fri Feb 14 Sequences (11.py) (1pp) (6pp)

Section 2.3

5 Mon Feb 17 ***Academic Holiday***
Wed Feb 19 ***No Lecture; Test 1 is Tuesday Feb 18 @ 8pm***

Discussion 4: Data Abstraction

Solutions

Fri Feb 21 Sequence Operations (12.py) (1pp) (6pp)

Section 2.4

6 Mon Feb 24 Strings and Sequence Processing (13.py) (1pp) (6pp)

Section 2.3

Lab 4: Lists and Dictionaries

Trends (due Mar 06)
Wed Feb 26 Mutable Data, Lists, Dictionaries (14.py) (1pp) (6pp)

Section 2.4

Discussion 5: Lists and Dictionaries

Solutions

hw4.html hw4.py
Fri Feb 28 Objects (15.py) (1pp) (6pp)

Section 2.5

7 Mon Mar 03 Inheritance (16.py) (1pp) (6pp)

Section 2.5

Section 2.8

Lab 5: Mutable Data

Wed Mar 05 Abstraction Support:
Exceptions, Operators, Properties (17.py) (1pp) (6pp)

Section 2.5

Section 3.3

Discussion 6: Object-Oriented Programming

Solutions

hw5.html hw5.py
Fri Mar 07 Orders of growth (18.py) (1pp) (6pp)

Section 2.7

Ants (due Mar 20)
8 Mon Mar 10 Orders of Growth (II) (19.py) (1pp) (6pp)

Section 2.7

Lab 6: Recursive objects

Wed Mar 12 Tree Recursions, Memoization, and Trees (20.py) (1pp) (6pp)

Section 2.7

Discussion 7: Recursive Data and Orders of Growth

Solutions

hw6.html hw6.py
Fri Mar 14 Search Trees and Sets (21.py) (1pp) (6pp)

Section 2.7

9 Mon Mar 17 Search Trees and Sets II (22.py) (1pp) (6pp)

Lab 7: Sets and Orders of Growth

Wed Mar 19 Search Trees and Sets III (23.py) (1pp) (6pp)

Discussion 8: Generic Functions

Solutions

hw7.html hw7.py
Fri Mar 21 Scheme (24.scm) (1pp) (6pp)

Section 3.1

Section 3.2

10 Mon Mar 24 ***Spring Break***
Wed Mar 26 ***Spring Break***
Fri Mar 28 ***Spring Break***
11 Mon Mar 31 Calculator (1pp) (6pp)

Section 3.4

Wed Apr 02 ***No Lecture; Test 2 is Wednesday Apr 02 @ 8pm***

Discussion 9: Scheme

Solutions

Hog revisions (due Apr 10)
Fri Apr 04 Interpreters (1pp) (6pp)

Section 3.5

12 Mon Apr 07 Tail Calls (1pp) (6pp)

Section 3.5

Lab 8: Scheme and Calculator

Wed Apr 09 The Halting Problem (1pp) (6pp)

Discussion 10: Calculator

Solutions

hw8.html hw8.scm Scheme (due Apr 29)
Fri Apr 11 Generators and Streams (29.py) (1pp) (6pp)

Section 4.1

Section 4.2

13 Mon Apr 14 Streams (30.py) (1pp) (6pp)

Section 4.2

Lab 9: Iterators, Generators, and Streams

Wed Apr 16 Declarative Programming (31.logic) (1pp) (6pp)

Section 4.3

Discussion 11: Logic

Solutions

hw9.html hw9.py
Fri Apr 18 Unification (32.logic) (32.py) (1pp) (6pp)

Section 4.4

14 Mon Apr 21 Concurrency (1pp) (6pp)

Section 4.5

Lab 10: Logic

Logic Interpreter

Wed Apr 23 Synchronization (34.zip) (1pp) (6pp)

Section 4.6

Discussion 12: Streams and Review

Solutions

hw10a.html hw10b.html hw10a.py hw10b.logic
Fri Apr 25 Cryptography (35.zip) (1pp) (6pp)
15 Mon Apr 28 Review: Streams and iterators (36.py) (1pp) (6pp)

Review

Wed Apr 30 More Review (1pp) (6pp)
Fri May 02 Conclusion, HKN (1pp) (6pp) hw11.html hw11.py

Weekly Schedule

Monday Tuesday Wednesday Thursday Friday
8:00   Lab 012
271 Soda
Robert Huang
Lab 022
271 Soda
Chenyang Yuan
Dis 112
71 Evans
Robert Huang
Dis 122
310 Soda
Chenyang Yuan
8:30  
9:00  
9:30   Lab 013
271 Soda
Rohan Chitnis
Lab 023
271 Soda
Soumya Basu
Dis 113
2 Evans
Rohan Chitnis
Dis 123
310 Soda
Robert Huang
10:00  
10:30  
11:00   Lab 014
271 Soda
Mark Miyashita
Lab 026
273 Soda
Keegan Mann
Lab 024
271 Soda
Albert Wu
Lab 031
273 Soda
Soumya Basu
Dis 114
71 Evans
Mark Miyashita
Dis 126
75 Evans
Keegan Mann
Dis 124
310 Soda
Albert Wu
Dis 131
405 Soda
Soumya Basu
11:30  
12:00  
12:30   Lab 015
271 Soda
Allen Nguyen
Lab 027
273 Soda
Joy Jeng
Lab 025
271 Soda
Julia Oh
Lab 032
273 Soda
Keegan Mann
Dis 115
6 Evans
Marvin Zhang
Dis 127
71 Evans
Mark Miyashita
Dis 125
310 Soda
Albert Wu
Dis 132
405 Soda
Keegan Mann
1:00  
1:30  
2:00 Lecture
Wheeler Auditorium
Lab 016
271 Soda
Joy Jeng
Lab 028
273 Soda
Julia Oh
Lecture
Wheeler Auditorium
Dis 116
71 Evans
Joy Jeng
Dis 128
385 Leconte
Julia Oh
Lecture
Wheeler Auditorium
2:30
3:00      
3:30 Lab 011
271 Soda
Steven Tang
Lab 017
271 Soda
Marvin Zhang
Lab 029
273 Soda
Michelle Hwang
Dis 111
310 Soda
Steven Tang
Dis 117
87 Evans
Marvin Zhang
Dis 129
310 Soda
Chenyang Yuan
 
4:00  
4:30  
5:00   Lab 018
271 Soda
Michelle Hwang
Lab 030
273 Soda
Andrew Huang
  Dis 118
2 Evans
Michelle Hwang
Dis 130
310 Soda
Andrew Huang
 
5:30      
6:00      
6:30   Lab 019
271 Soda
Allen Nguyen
  Dis 119
6 Evans
Allen Nguyen
 
7:00      
7:30      
8:00   Lab 020
271 Soda
Rohan Chitnis
  Dis 120
310 Soda
Rohan Chitnis
 
8:30      
9:00      
9:30   Lab 021
271 Soda
Steven Tang
  Dis 121
310 Soda
Steven Tang
 
10:00      
10:30      

Resources