Announcements

  • Homework 1 due Wednesday 9/2 (graded on effort, but try hard for correctness)

    • Homework party on Tuesday 9/1 6pm-8pm in B6 Evans
    • You can ask questions about homework at the end of your lab section
  • Quiz 1 released Wednesday 9/2 due Friday 9/4 (graded on correctness)

    • 3 points, similar in format to homework, but graded for correctness
    • If you score 0/3, you will need to talk to someone on the course staff
    • 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 due Thursday 9/10 @ 11:59pm

    • Earn 1 extra credit point for completing it by Wednesday 9/9 @ 11:59pm
  • Midterm 1 on Wednesday 9/16 8pm-10pm

    • Locations, topics, and review materials will be announced later
    • No lecture on Wednesday 9/16
    • No discussion on Thursday 9/17 or Friday 9/18
    • Attending lab & discussion will provide a midterm safety net
  • Waitlisted students can attend normal lab sections next week (where/when they are waitlisted)
  • Starting next week, attending lab & discussion will provide a midterm safety net
  • Homework 1 due Wednesday 9/2

    • All homework is graded on effort; you must make progress on every problem to receive 2/2
    • Homework party on Tuesday 9/1 6pm-8pm in B6 Evans
  • Qiuz 1 released Wednesday 9/2 due Friday 9/4 (graded on correctness)
  • The office hours schedule is posted: cs61a.org/office-hours.html
  • Environment diagram generator: tutor.cs61a.org

There is no lab this Wednesday 8/26!

Due to limited space in Wheeler Auditorium, Lectures 1 and 2 will be repeated multiple times in advance to accommodate all of the students. These lectures have same content as the normal lecture on Wednesday and Friday, respectively, but will be less crowded.

Lecture 1 will be given a day early on Tuesday, 8/25, at 3pm and again at 4pm in Wheeler Auditorium.

Lecture 2 will be given a day early on Thursday, 8/27, at 7pm in 155 Dwinelle.

Welcome to CS 61A! This site is still under construction.


Looking for resources?
Search for terms like "recursion", "homework 3", or "practice"
Name Type Tags
Midterm 1 Exam
Midterm 2 Exam
Final Exam
Lecture 1: Functions (Video) (1pp) (1pps) (8pp) (01.py) Lecture
Readings: section 1.1 Reading
Readings: section 1.2 Reading
Lecture 2: Names (Video) (1pp) (1pps) (8pp) (02.py) Lecture
Readings: section 1.3 Reading
Readings: section 1.4 Reading
Lecture 3: Control (Video) (1pp) (1pps) (8pp) (03.py) Lecture
Readings: section 1.5 Reading
Lecture 4: Higher-Order Functions (1pp) (1pps) (8pp) (04.py) Lecture
Readings: section 1.6 Reading
Lecture 5: Environments (1pp) (1pps) (8pp) (05.py) Lecture
Readings: section 1.6 Reading
Lecture 6: Recursion (1pp) (1pps) (8pp) (06.py) Lecture
Readings: section 1.7 Reading
Lecture 7: Tree Recursion (1pp) (1pps) (8pp) (07.py) Lecture
Readings: section 1.7 Reading
Lecture 8: Function Examples (1pp) (1pps) (8pp) (08.py) Lecture
Lecture 9: Data Abstraction (1pp) (1pps) (8pp) (09.py) Lecture
Readings: section 2.1 Reading
Readings: section 2.2 Reading
Lecture 10: Sequences (1pp) (1pps) (8pp) (10.py) Lecture
Readings: section 2.3 Reading
Lecture 11: Trees (1pp) (1pps) (8pp) (11.py) Lecture
Readings: section 2.3 Reading
Lecture 12: Mutable Values (1pp) (1pps) (8pp) (12.py) Lecture
Readings: section 2.4 Reading
Lecture 13: Mutable Functions (1pp) (1pps) (8pp) (13.py) Lecture
Readings: section 2.4 Reading
Lecture 14: Objects (1pp) (1pps) (8pp) (14.py) Lecture
Readings: section 2.5 Reading
Lecture 15: Inheritance (1pp) (1pps) (8pp) (15.py) Lecture
Readings: section 2.5 Reading
Lecture 16: Representation (1pp) (1pps) (8pp) (16.py) Lecture
Readings: section 2.7 Reading
Lecture 17: Generic Functions (1pp) (1pps) (8pp) (17.py) Lecture
Readings: section 2.7 Reading
Lecture 18: Composition (1pp) (1pps) (8pp) (18.py) Lecture
Readings: section 2.9 Reading
Lecture 19: Hierarchy (1pp) (1pps) (8pp) (19.py) Lecture
Readings: section 2.9 Reading
Lecture 20: Growth (1pp) (1pps) (8pp) (20.py) Lecture
Readings: section 2.8 Reading
Lecture 21: Sets (1pp) (1pps) (8pp) (21.py) Lecture
Readings: section 2.9 Reading
Lecture 22: Data Examples (1pp) (1pps) (8pp) (22.py) Lecture
Lecture 23: Users Lecture
Lecture 24: Scheme (1pp) (1pps) (8pp) (24.scm) Lecture
Readings: section 3.1 Reading
Readings: section 3.2 Reading
Lecture 25: Exceptions (1pp) (1pps) (8pp) (25.py) Lecture
Readings: section 3.3 Reading
Lecture 26: Calculator (1pp) (1pps) (8pp) (26.scm) Lecture
Readings: section 3.4 Reading
Lecture 27: Interpreters (1pp) (1pps) (8pp) Lecture
Readings: section 3.5 Reading
Lecture 28: Tail Calls (1pp) (1pps) (8pp) (28.scm) Lecture
Readings: section 3.5 Reading
Lecture 29: Iterators (1pp) (1pps) (8pp) (29.py) Lecture
Readings: section 4.2 Reading
Lecture 30: Streams (1pp) (1pps) (8pp) (30.py) Lecture
Readings: section 4.2 Reading
Lecture 31: Declarative Programming (1pp) (1pps) (8pp) (31.sql) Lecture
Readings: section 4.3 Reading
Lecture 32: Tables (1pp) (1pps) (8pp) (32.sql) Lecture
Readings: section 4.3 Reading
Lecture 33: Recursive Select (1pp) (1pps) (8pp) (33.sql) Lecture
Readings: section 4.3 Reading
Lecture 34: Aggregation (1pp) (1pps) (8pp) (34.sql) Lecture
Readings: section 4.3 Reading
Lecture 35: Distributed Computing (1pp) (1pps) (8pp) Lecture
Readings: section 4.6 Reading
Lecture 36: Distributed Data (1pp) (1pps) (8pp) (36.zip) Lecture
Readings: section 4.6 Reading
Lecture 37: Natural Language (1pp) (1pps) (8pp) (37.zip) Lecture
Lecture 38: Conclusion (1pp) (1pps) (8pp) (38.py) Lecture
Lecture 1: Newton's Method (1pp) (1pps) (8pp) (e01.py) ExtraLecture
Readings: section 1.6 Reading
Lecture 2: Decisions (1pp) (1pps) (8pp) (e02.py) ExtraLecture
Lecture 3: Lambda Calculus (1pp) (1pps) (8pp) (e03.py) ExtraLecture
Lecture 4: Huffman Encoding Trees (1pp) (1pps) (8pp) (e04.py) ExtraLecture
Lecture 5: Constraint Programming (1pp) (1pps) (8pp) (e05.py) ExtraLecture
Lecture 6: Object System Implementation (1pp) (1pps) (8pp) (e06.py) ExtraLecture
Lecture 7: Reinforcement Learning (1pp) (1pps) (8pp) (e07.py) ExtraLecture
Lecture 8: Macros (1pp) (1pps) (8pp) (e08.scm) ExtraLecture
Lecture 9: Graphics (1pp) (1pps) (8pp) (e09.py) ExtraLecture
Lecture 10: Logic Programming (1pp) (1pps) (8pp) (e10.py) ExtraLecture
Lecture 11: Parallelism (1pp) (1pps) (8pp) (e11.py) ExtraLecture
Homework 1 Homework
Homework 2 Homework
Homework 3 Homework
Homework 4 Homework
Homework 5 Homework
Homework 6 Homework
Homework 7 Homework
Homework 8 Homework
Homework 9 Homework
Homework 10 Homework
Quiz 1 Quiz
Quiz 2 Quiz
Quiz 3 Quiz
Quiz 4 Quiz
Hog Project
Hog Contest Project
Maps Project
Ants Project
Scheme Project
Lab 0: Workflow Lab
Lab 1: Expressions and Control Lab
Lab 2: Higher Order Functions and Lambdas Lab
Lab 3: (Tree) Recursion and Midterm 1 Review Lab
Lab 4: Data Abstraction Lab
Lab 5: Trees and Dictionaries Lab
Lab 6: Objects and Inheritance Lab
Lab 7: Recursive Objects Lab
Lab 8: Midterm 2 Review Lab
Lab 9: Scheme Lab
Lab 10: Interpreters Lab
Lab 11: Streams Lab
Lab 12: SQL Aggregation Lab
Discussion 0: Lost on the Moon (Solutions) Discussion
Discussion 1: Control and Higher Order Functions (Solutions) Discussion
Discussion 2: Environment Diagrams and Recursion (Solutions) Discussion
Discussion 3: Sequences (Solutions) Discussion
Discussion 4: Mutation (Solutions) Discussion
Discussion 5: Objects and Interfaces (Solutions) Discussion
Discussion 6: Orders of Growth (Solutions) Discussion
Discussion 7: Scheme and Exceptions (Solutions) Discussion
Discussion 8: Interpreters and Tail Calls (Solutions) Discussion
Discussion 9: Implicit Sequences (Solutions) Discussion
Discussion 10: SQL (Solutions) Discussion
Discussion 11: Final Review (Solutions) Discussion
Syllabus Article
Composition Guide Article Programming
Debugging Guide Article Programming
Using OK Article OK
UNIX Tutorial Article UNIX
Sublime Text Article Text Editors
Vim Article Text Editors
Emacs Article Text Editors
Weekly Schedule Article
Staff Article
Office Hours Article
Windows: set up Python Article Setting up
Windows: connecting from home (video) Article Setting up
Windows: connecting form home (pdf) Article Setting up
Mac: set up Python Article Setting up
Mac: set up Emacs Article Setting up
Mac: connecting from home (video) Article Setting up
Mac: connecting from home (pdf) Article Setting up
Online Python tutor Article Environment Diagrams
Spring 2015 screencasts Article Video, John DeNero
Fall 2014 screencasts Article Video, John DeNero
Fall 2013 screencasts Article Video, John DeNero
Another UNIX tutorial Article UNIX
Albert Wu's practice problems Practice
Mark Miyashita's practice problems Practice
Functions and expressions practice problems Practice Functions
Control structures practice problems Practice Control Structures
Higher Order Functions practice problems Practice Higher Order Functions
Lambda expressions practice problems Practice Lambdas
Recursion practice problems Practice Recursion, Tree Recursion

Calendar

Week Date Lecture Reading Handout Homework Project
1 Wed 8/26 Functions
(Video) (1pp) (1pps) (8pp) (01.py)
1.1
1.2
Lab 0: Workflow
(due Thu 9/3)
Fri 8/28 Names
(Video) (1pp) (1pps) (8pp) (02.py)
1.3
1.4
Discussion 0: Lost on the Moon (Solutions) Homework 1
(due Wed 9/2)
2 Mon 8/31 Control
(Video) (1pp) (1pps) (8pp) (03.py)
1.5 Hog
(due Thu 9/10)
Wed 9/2 Higher-Order Functions
(1pp) (1pps) (8pp) (04.py)
1.6 Lab 1: Expressions and Control
(due Thu 9/3)
Quiz 1
(due Fri 9/4)
Fri 9/4 Environments
(1pp) (1pps) (8pp) (05.py)
1.6 Discussion 1: Control and Higher Order Functions (Solutions) Homework 2
(due Tue 9/8)
3 Mon 9/7 No Lecture: Labor Day
Wed 9/9 Recursion
(1pp) (1pps) (8pp) (06.py)
1.7 Lab 2: Higher Order Functions and Lambdas
(due Thu 9/10)
Hog Contest
(due Mon 9/21)
Fri 9/11 Tree Recursion
(1pp) (1pps) (8pp) (07.py)
1.7 Discussion 2: Environment Diagrams and Recursion (Solutions)
4 Mon 9/14 Function Examples
(1pp) (1pps) (8pp) (08.py)
Wed 9/16 Midterm 1 Lab 3: (Tree) Recursion and Midterm 1 Review
(due Thu 9/17)
Fri 9/18 Data Abstraction
(1pp) (1pps) (8pp) (09.py)
2.1
2.2
Homework 3
(due Wed 9/23)
5 Mon 9/21 Sequences
(1pp) (1pps) (8pp) (10.py)
2.3 Maps
(due Thu 10/1)
Wed 9/23 Trees
(1pp) (1pps) (8pp) (11.py)
2.3 Lab 4: Data Abstraction
(due Thu 9/24)
Homework 4
(due Mon 9/28)
Fri 9/25 Mutable Values
(1pp) (1pps) (8pp) (12.py)
2.4 Discussion 3: Sequences (Solutions)
6 Mon 9/28 Mutable Functions
(1pp) (1pps) (8pp) (13.py)
2.4
Wed 9/30 Objects
(1pp) (1pps) (8pp) (14.py)
2.5 Lab 5: Trees and Dictionaries
(due Thu 10/1)
Fri 10/2 Inheritance
(1pp) (1pps) (8pp) (15.py)
2.5 Discussion 4: Mutation (Solutions) Homework 5
(due Wed 10/7)
7 Mon 10/5 Representation
(1pp) (1pps) (8pp) (16.py)
2.7 Ants
(due Thu 10/15)
Wed 10/7 Generic Functions
(1pp) (1pps) (8pp) (17.py)
2.7 Lab 6: Objects and Inheritance
(due Thu 10/8)
Quiz 2
(due Fri 10/9)
Fri 10/9 Composition
(1pp) (1pps) (8pp) (18.py)
2.9 Discussion 5: Objects and Interfaces (Solutions)
8 Mon 10/12 Hierarchy
(1pp) (1pps) (8pp) (19.py)
2.9
Wed 10/14 Growth
(1pp) (1pps) (8pp) (20.py)
2.8 Lab 7: Recursive Objects
(due Thu 10/15)
Fri 10/16 Sets
(1pp) (1pps) (8pp) (21.py)
2.9 Discussion 6: Orders of Growth (Solutions)
9 Mon 10/19 Data Examples
(1pp) (1pps) (8pp) (22.py)
Wed 10/21 Midterm 2 Lab 8: Midterm 2 Review
(due Thu 10/22)
Fri 10/23 Users
10 Mon 10/26 Scheme
(1pp) (1pps) (8pp) (24.scm)
3.1
3.2
Homework 6
(due Thu 10/29)
Wed 10/28 Exceptions
(1pp) (1pps) (8pp) (25.py)
3.3 Lab 9: Scheme
(due Thu 10/29)
Fri 10/30 Calculator
(1pp) (1pps) (8pp) (26.scm)
3.4 Discussion 7: Scheme and Exceptions (Solutions) Homework 7
(due Wed 11/4)
11 Mon 11/2 Interpreters
(1pp) (1pps) (8pp)
3.5 Scheme
(due Thu 11/19)
Wed 11/4 Tail Calls
(1pp) (1pps) (8pp) (28.scm)
3.5 Lab 10: Interpreters
(due Thu 11/5)
Quiz 3
(due Fri 11/6)
Fri 11/6 Iterators
(1pp) (1pps) (8pp) (29.py)
4.2 Discussion 8: Interpreters and Tail Calls (Solutions) Homework 8
(due Thu 11/12)
12 Mon 11/9 Streams
(1pp) (1pps) (8pp) (30.py)
4.2
Wed 11/11 No Lecture: Veteran's Day
Fri 11/13 Declarative Programming
(1pp) (1pps) (8pp) (31.sql)
4.3 Discussion 9: Implicit Sequences (Solutions)
13 Mon 11/16 Tables
(1pp) (1pps) (8pp) (32.sql)
4.3
Wed 11/18 Recursive Select
(1pp) (1pps) (8pp) (33.sql)
4.3 Lab 11: Streams
(due Thu 11/19)
Fri 11/20 Aggregation
(1pp) (1pps) (8pp) (34.sql)
4.3 Discussion 10: SQL (Solutions) Homework 9
(due Wed 11/25)
14 Mon 11/23 Distributed Computing
(1pp) (1pps) (8pp)
4.6
Wed 11/25 No Lecture: Thanksgiving
Fri 11/27 No Lecture: Thanksgiving
15 Mon 11/30 Distributed Data
(1pp) (1pps) (8pp) (36.zip)
4.6 Homework 10
(due Wed 12/2)
Wed 12/2 Natural Language
(1pp) (1pps) (8pp) (37.zip)
Lab 12: SQL Aggregation
(due Thu 12/3)
Quiz 4
(due Fri 12/4)
Fri 12/4 Conclusion
(1pp) (1pps) (8pp) (38.py)
Discussion 11: Final Review (Solutions)
16 Thu 12/17 Final