CS 61A

Structure and Interpretation of Computer Programs, Spring 2015

Instructor: John DeNero




Announcements

1/30/15

  • • Quiz 1 scores will be posted eventually, but you already know what you'll get
    
  •  - 0/3: Please talk to your TA for advice on how to proceed
    
  •  - 1/3: Make sure to spend time understanding all lab & discussion questions
    
  •  - 2/3: Practice is extremely helpful in learning how to solve CS problems
    
  • • Guerrilla Section 1 on higher-order functions is on Saturday 1/31 in 271 Soda
    
  •  - Optional discussion to promote mastery of core concepts (prepares you for midterms)
    
  •  - 2pm - 4pm is the vanguard section (you commit to helping teach the main section)
    
  •  - 4pm - 6pm is the main section
    
  •  - Please do not bring questions about homework or projects to guerrilla sections
    
  • • Small-group tutoring begins next week! Apply online by Sunday if you want a (free) tutor
    
  • • Homework 2 (which is small) is due Monday 2/2 at 11:59pm
    
  • • Project 1 (which is BIG) us due Thursday 2/5 at 11:59pm
    
  • • Midterm 1 is Monday 2/9 7pm-9pm. Conflict? Fill out this form ASAP: http://goo.gl/2P5fKq
    

1/28/15

  • • Homework 1 due Wednesday 1/28 at 11:59pm.  Late homework is not accepted!
    
  •  - Check your submission on ok.cs61a.org and submit again if it's not right
    
  • • Take-home quiz 1 released Wednesday 1/28, due Thursday 1/29 at 11:59pm
    
  •  - Open-computer, open notes, closed friends
    
  •  - Content Covered: Lectures through Monday 1/26 (same topics as Homework 1)
    
  •  - If you receive 0/3, talk to your TA (or me) about how to approach the course
    
  • • Extra lectures: Earn 1 unit (pass/no pass) by learning about optional additional topics
    
  •  - First extra lecture: Thursday 1/29 5-6:30pm in 2050 VLSB (Come there to learn more)
    
  • • Project 1 due Thursday 2/5 at 11:59pm
    

1/26/15

  • • Homework 1 is due Wednesday 1/28 @ 11:59pm
    
  •   - Homework party on Tuesday 1/27 5-6:30pm in 2050 VLSB
    
  •   - Please declare your partner on ok.cs61a.org
    
  • • Take-home Quiz 1 released Wednesday 1/28 is due Thursday 1/29 @ 11:59pm
    
  •   - 3 points, similar in format to homework, but graded for correctness
    
  •   - If you score 0/3, you will need to talk to the course staff or be dropped
    
  •   - Open-computer: You can use the Python interpreter, watch course videos, etc.
    
  •   - Closed-help: Please don't talk to your classmates, search for answers, etc.
    
  • • Project 1 released this week is due Thursday 2/5 @ 11:59pm
    
  • • Midterm 1 on Monday 2/9 7pm-9pm
    

1/23/15

  • • Starting next week, submitting labs & attending section will provide a midterm safety net
    
  • • Homework 1 is due next Wednesday 1/28
    
  •   - All homework is graded on effort; you must make progress on each problem to earn 2/2
    
  •   - Homework Party on Tuesday 1/27 5-6:30pm in 2050 VLSB
    
  • • Quiz 1 released next Wednesday 1/28 is due next Thursday 1/29 (graded on correctness)
    
  • • Ask questions about lab and homework assignments in office hours! (cs61a.org/weekly.html)
    
  •   - 2 locations in Bechtel Engineering Center (Map: http://goo.gl/dAcHXf)
    
  •   - 11-2 & 3-5 on Monday, 11-6 on Tuesday & Thursday, 11-2 & 3-4 on Wednesday, 11-1 on Friday
    
  • • You need to register a class account (Lab 0); that's how we track assignments
    
  •   - Please register even if you're on the waitlist or applying for concurrent enrollment
    

1/21/15

  • • Welcome to CS 61A
    

Calendar

Week Date Lecture Reading Handout Assignment
1 Wed 1/21 Functions
(Video) (1pp) (1pps) (8pp) (01.py)
1.1
1.2
Lab 0: Intro to UNIX
Lab 1: Your own machine
Fri 1/23 Names
(Video) (1pp) (1pps) (8pp) (02.py)
1.3
1.4
Discussion 0: Lost on the Moon (Solutions) Homework 1 (due Wed 1/28) (Solutions)
2 Mon 1/26 Control
(Video) (1pp) (1pps) (8pp) (03.py)
1.5
Wed 1/28 Higher-Order Functions
(Video) (1pp) (1pps) (8pp) (04.py)
1.6 Lab 2: Functions and Control Structures Quiz 1 (due Thu 1/29) (Solutions)
Hog (due Thu 2/5)
Fri 1/30 Environments
(Video) (1pp) (1pps) (8pp) (05.py)
1.6 Discussion 1: Control Structures and Higher Order Functions (Solutions) Homework 2 (due Mon 2/2)
3 Mon 2/2 Recursion 1.7 Hog Contest (due Wed 2/18)
Wed 2/4 Tree Recursion 1.7 Lab 3: Recursion
Fri 2/6 Function Examples Discussion 2: Recursion (Solutions)
4 Mon 2/9 No Lecture: Midterm 1
Wed 2/11 Data Abstraction 2.1
2.2
Homework 3 (due Wed 2/18)
Fri 2/13 Sequences 2.3 Discussion 3: Data Abstraction (Solutions) Maps (due Thu 2/26)
5 Mon 2/16 No Lecture: President's Day
Wed 2/18 Trees 2.3 Lab 4: Lists and Linked Lists Homework 4 (due Mon 2/23)
Fri 2/20 Mutable Values 2.4 Discussion 4: Trees (Solutions)
6 Mon 2/23 Mutable Functions 2.4
Wed 2/25 Objects 2.5 Lab 5: Trees, Dictionaries, and Mutability Homework 5 (due Wed 3/4)
Fri 2/27 Inheritance 2.5 Discussion 5: Object Oriented Programming (Solutions) Ants (due Thu 3/12)
7 Mon 3/2 Representation 2.7
Wed 3/4 Generic Functions 2.7 Lab 6: Object Oriented Programming Homework 6 (due Mon 3/9)
Fri 3/6 Composition 2.9 Discussion 6: Multiple Representations and Generic Functions (Solutions)
8 Mon 3/9 Hierarchy 2.9
Wed 3/11 Growth 2.8 Lab 7: TBD
Fri 3/13 Sets 2.9 Discussion 7: Orders of Growth (Solutions)
9 Mon 3/16 Data Examples
Wed 3/18 No Lecture: Midterm 2 on Thurs 3/19 Lab 8: Sets
Fri 3/20 Users
10 Mon 3/23 No Lecture: Spring Break
Wed 3/25 No Lecture: Spring Break
Fri 3/27 No Lecture: Spring Break
11 Mon 3/30 Scheme 3.1
3.2
Wed 4/1 Exceptions 3.3 Lab 9: Scheme Homework 7 (due Wed 4/8)
Fri 4/3 Calculator 3.4 Discussion 8: Scheme (Solutions)
12 Mon 4/6 Interpreters 3.5 Scheme (due Thu 4/23)
Wed 4/8 Tail Calls 3.5 Lab 10: Interpreters Homework 8 (due Wed 4/15)
Quiz 2 (due Thu 4/9)
Fri 4/10 Iterators 4.2 Discussion 9: Tail Calls (Solutions)
13 Mon 4/13 Streams 4.2
Wed 4/15 Declarative Programming 4.3 Lab 11: Iterators, Generators, and Streams Homework 9 (due Mon 4/20)
Fri 4/17 Interpreting SQL 4.3 Discussion 10: Iterators, Generators, and Streams (Solutions) Scheme Contest (due Mon 4/27)
14 Mon 4/20 Recursive Select 4.3
Wed 4/22 Aggregation 4.3 Lab 12: SQL Homework 10 (due Wed 4/29)
Fri 4/24 Distributed Computing 4.6 Discussion 11: SQL (Solutions)
15 Mon 4/27 Distributed Data 4.6
Wed 4/29 Natural Language Quiz 3 (due Thu 4/30)
Fri 5/1 Conclusion