CS61A Structure and Interpretation of Computer Programs, Summer 2013




Announcements

8/15 Scheme Art Contest results are in! Congratulations to the winners, Iann Wu and Cameron Irmas (heavyweight category), and Tae-wook Ha and Grant Merril (featherweight category)!
7/16 Hog Contest results are in! Congratulations to the winners, Iann Wu and Cameron Irmas!

Calendar

Week Date Lecture Topic Reading Lab/Discussion Homework Project
1 Mon Jun 24 Functions, Side effects (1pp) (6pp)

Lab 0: Introduction to Unix/Emacs

Lab 1a: Introduction to Python and Control Flow

hw1.html hw1.py
Tue Jun 25 Names, Environment diagrams (1pp) (6pp)

Discussion 1a: Expressions and Functions

Solutions

Hog project (due Jul 03 at 11:59PM)
Wed Jun 26 Control, Higher-order functions (1pp) (6pp) (03.py)

Lab 1b: Higher Order Functions

Thu Jun 27 Environment diagrams 2 (1pp) (6pp) (04.py)

Discussion 1b: Higher Order Functions and Environment Diagrams

Solutions

hw2.html hw2.py
2 Mon Jul 01 Lambda, Newton's method (1pp) (05.py)

Lab 2a: Lambdas

hw3.html hw3.py
Tue Jul 02 Recursion (1pp) (6pp) (06.py)

Discussion 2a: Newton's Method, and Recursion

Solutions

Wed Jul 03 Data abstraction (1pp) (07.py)

Lab 2b: Data Abstraction

hw4.html hw4.py Trends project (due Jul 18 at 11:59PM)
Thu Jul 04 ***No class: Fourth of July***
3 Mon Jul 08 Sequences, Iterables (1pp) (6pp)

Lab 3a: Sequences and Iterables

hw5.html hw5.py
Tue Jul 09 Objects, Lists, Dictionaries, Mutable Data (1pp)

Discussion 3a: Objects, Lists and Mutable Data

Solutions

hw6.html hw6.py
Wed Jul 10 Mutable data, Mutable data types (1pp) (6pp) (10.py)

Lab 3b: Lists, Dictionaries, and Nonlocal

Thu Jul 11 Object-oriented programming (1pp) (11.py)
Midterm I at 7pm (Exam) (Solutions)

Discussion 3b: Object Oriented Programming

Solutions

4 Mon Jul 15 Object-oriented programming 2, Inheritance (1pp) (6pp) (12.py)

Lab 4a: Object-Oriented Programming

hw7.html hw7.py Ants project (due Aug 02 at 11:59PM)
Tue Jul 16 Generic functions (1pp) (13.py)

Discussion 4a: Inheritance, Multiple Representations, Generic Functions

Solutions

Wed Jul 17 Multiple representations, Coercion (1pp) (6pp) (14.py)

Lab 4b: Mutable Recursive Lists and Type Dispatching

hw8.html hw8.py
Thu Jul 18 Memoization, Recursive Data, Sets (1pp) (15.py)

Discussion 4b: Memoization, Recursive Data, and Sets

Solutions

5 Mon Jul 22 Trees, Orders of growth (1pp) (6pp) (16.py)

Lab 5a: Orders of Growth and Trees

hw9.html hw9.py Hog revisions project (due Jul 29 at 11:59PM)
Tue Jul 23 Exceptions, Functional Programming (1pp) (17.py)

Discussion 5a: Trees, Orders of Growth, and Exceptions

trees.py

Solutions

Wed Jul 24 Scheme (1pp) (6pp) (18.scm)

Lab 5b: Scheme

Thu Jul 25 Calculator (1pp) (6pp) (19.zip)

Discussion 5b: Scheme and Calculator

minicalc.py

Solutions

hw10.html hw10.scm
6 Mon Jul 29 Social implications of computing (1pp) (6pp) (1pp) (1pp)

Lab 6a: Adventure

hw11.html hw11.py Scheme project (due Aug 13 at 11:59PM)
Tue Jul 30 Interpreters (1pp)

Discussion 6a: Interpreters

Solutions

Wed Jul 31 Tail Calls, iterators (1pp) (6pp) (22.py) (22.scm)

Lab 6b: Exceptions and Calculator

Thu Aug 01 Review (1pp) (6pp)
Midterm II at 7pm (Exam) (Solutions)
    hw12.html hw12.py
    7 Mon Aug 05 Streams, generators (1pp) (6pp) (24.py)

    Lab 7a: Tail Calls, Iterators, and Generators

    Tue Aug 06 Declarative programming, unification (1pp) (6pp)

    Discussion 7a: Iterators, Generators, and Streams

    Solutions

    Wed Aug 07 Halting problem (1pp) (6pp)

      Lab 7b: Logic Programming

      Thu Aug 08 Parallelism (1pp) (6pp) (27.py)

      Discussion 7b: Parallelism

      Solutions

      hw13.html hw13.logic
      8 Mon Aug 12 MapReduce (1pp) (6pp) (28.zip)

      Lab 8a: MapReduce

      Tue Aug 13 User interfaces (1pp) (29.html)

      Discussion 8a: Logic Programming and Unification

      Solutions

      hw14.html
      Wed Aug 14 Review (1pp) (6pp) (1pp) (6pp)

      Lab 8b: User Interfaces

      Thu Aug 15 Conclusion
      Final at 7pm

      Weekly Schedule

      Monday Tuesday Wednesday Thursday Friday
      8:00 Lecture
      245 Li Ka Shing
      Lecture
      245 Li Ka Shing
      Lecture
      245 Li Ka Shing
      Lecture
      245 Li Ka Shing
       
      8:30  
      9:00  
      9:30          
      10:00          
      10:30          
      11:00 Lab 107
      271 Soda
      Jeffrey Lu
      Dis 107
      320 Soda
      Jeffrey Lu
      Lab 107
      271 Soda
      Jeffrey Lu
      Dis 107
      320 Soda
      Jeffrey Lu
       
      11:30  
      12:00  
      12:30 Lab 101
      271 Soda
      Rohan Chitnis
      Dis 101
      320 Soda
      Rohan Chitnis
      Lab 101
      271 Soda
      Rohan Chitnis
      Dis 101
      320 Soda
      Rohan Chitnis
       
      1:00  
      1:30  
      2:00 Lab 102
      271 Soda
      Leonard Truong
      Dis 102
      320 Soda
      Leonard Truong
      Lab 102
      271 Soda
      Leonard Truong
      Dis 102
      320 Soda
      Leonard Truong
       
      2:30  
      3:00  
      3:30 Lab 103
      271 Soda
      Robert Huang
      Dis 103
      320 Soda
      Robert Huang
      Lab 103
      271 Soda
      Robert Huang
      Dis 103
      320 Soda
      Robert Huang
       
      4:00  
      4:30  
      5:00 Lab 104
      271 Soda
      Albert Wu
      Dis 104
      320 Soda
      Albert Wu
      Lab 104
      271 Soda
      Albert Wu
      Dis 104
      320 Soda
      Albert Wu
       
      5:30  
      6:00  
      6:30 Lab 105
      271 Soda
      Andrew Huang
      Dis 105
      320 Soda
      Andrew Huang
      Lab 105
      271 Soda
      Andrew Huang
      Dis 105
      320 Soda
      Andrew Huang
       
      7:00  
      7:30  
      8:00 Lab 106
      271 Soda
      Mark Miyashita
      Lab 108
      275 Soda
      Brian Hou
      Dis 106
      320 Soda
      Mark Miyashita
      Dis 108
      310 Soda
      Brian Hou
      Lab 106
      271 Soda
      Mark Miyashita
      Lab 108
      275 Soda
      Brian Hou
      Dis 106
      320 Soda
      Mark Miyashita
      Dis 108
      310 Soda
      Brian Hou
       
      8:30  
      9:00  
      9:30          
      10:00          
      10:30          

      Resources