Announcements

  • Vote for your favorite Scheme Art Contest entries by midnight tonight to get an EC point.
  • Fill out the final survey now. If you fill it out by Sunday at 11:59pm you can get an extra credit point.
  • Homework 9 has been released. It is completely optional, intended as practice for the final, but you can get EC for doing the first two problems, if desired.
  • Mini Quiz 03 has been posted and is optional.
  • Midterm and Final resources are located here
  • There will be no Office Hours during dead week, but there will be topical review sessions. Check the OH/Weekly calendar or Piazza for more details.
  • Vote for your favorite Scheme Art Contest entries!
  • Midterm and Final resources located here
  • There will be no Office Hours during dead week, but there will be topical review sessions, check the OH/Weekly calendar or Piazza.
  • To use glookup (and to have final grades sent to the registrar) you must get an instructional account and register it here. Be sure to fill in and submit the form at the bottom of that page.
  • Submit Scheme Recursive Art Contest here by Thursday, April 28. Check Piazza for more information.
  • There will be no Office Hours during dead week, but there will be topical review sessions TBA.
  • To use glookup (and to have final grades sent to the registrar) you must get an instructional account and register it here. Be sure to fill in and submit the form at the bottom of that page.
  • Prospective Students: 2016 Cal Day Introductory CS/EECS course overview slides
  • To use glookup (and to have final grades sent to the registrar) you must get an instructional account and register it here. Be sure to fill in and submit the form at the bottom of that page.
  • Get an extra credit point by completing Part 1 of the Scheme project by Monday, April 18.
  • Prospective Students: 2016 Cal Day Introductory CS/EECS course overview slides
  • To use glookup (and to have final grades sent to the registrar) you must get an instructional account and register it here. Be sure to fill in and submit the form at the bottom of that page.
  • Get an extra credit point by completing Part 1 of the Scheme project by Monday, April 18.
  • Get an extra credit point by completing Part 1 of the Scheme project by Monday, April 18.
  • Midterm 2 (Solutions) scores are available ons Gradescope.
  • Make sure you have an instructional account here
  • Maps composition revisions are now open. See Piazza for more information.
  • Midterm 2 (Solutions) scores are available on Gradescope.
  • Mini Quiz 2 is available. It is due by Thursday 4/7 11:59pm
  • Maps composition revisions are now open. See Piazza for more information.
  • Ants has been released. Submit one day early to get a bonus point!
  • Homework 4 has been released.
  • Hog Composition revisions are now open. See Piazza for more information.
  • The Hog contest results are in! Congratulations to everybody that participated.
  • Homework 4 has been released.
  • Hog Composition revisions are now open. See Piazza for more information.
  • Ants will be released 3/4 and due on 3/17. Submit one day early to get a bonus point!
  • The schedule for office hours is available here
  • Homework 2 has been released.
  • Midterm 1 will be on Thursday 2/18
  • Register for an instructional account here
  • If you filled out a request to switch sections, it has been approved (unless you got an email otherwise)
  • The schedule for office hours is available here
  • 61A Partner Finding Mixer: Wednesday 1/27 3:30 Woz Lounge and Thursday 1/28 12:00 Woz Lounge
  • Register for an instructional account here
  • If you wish to change which lab/discussion you attend - fill out this form
  • Welcome to CS 61A!
  • Register for an instructional account here

Resource/Piazza Search
Search for terms like "recursion", "homework 3", or "practice"
Name Type Tags
Midterm 1 Exam
Midterm 2 Exam
Final Exam
Lecture 1: Functions (1pp) (6pp) (01.py) Lecture
Readings: section 1.1 Reading
Readings: section 1.2 Reading
Lecture 2: Names (1pp) (6pp) (02.py) Lecture
Readings: section 1.3 Reading
Readings: section 1.4 Reading
Lecture 3: Control (1pp) (6pp) (03.py) Lecture
Readings: section 1.5 Reading
Lecture 4: Higher-Order Functions (1pp) (6pp) (04.py) Lecture
Readings: section 1.6 Reading
Lecture 5: Environments (1pp) (6pp) (05.py) Lecture
Readings: section 1.6 Reading
Lecture 6: Recursion (1pp) (6pp) (06.py) Lecture
Readings: section 1.7 Reading
Lecture 7: Tree Recursion (1pp) (6pp) (07.py) Lecture
Readings: section 1.7 Reading
Lecture 8: Function Examples (1pp) (6pp) Lecture
Lecture 9: Data Abstraction (1pp) (6pp) (09.py) Lecture
Readings: section 2.1 Reading
Readings: section 2.2 Reading
Lecture 10: Sequences (1pp) (6pp) (10.py) Lecture
Readings: section 2.3 Reading
Lecture 11: Trees (1pp) (6pp) (11.py) Lecture
Readings: section 2.3 Reading
Lecture 12: Mutable Values (1pp) (6pp) (12.py) Lecture
Readings: section 2.4 Reading
Lecture 13: Mutable Functions (1pp) (6pp) (13.py) Lecture
Readings: section 2.4 Reading
Lecture 14: Objects (1pp) (6pp) (14.py) Lecture
Readings: section 2.5 Reading
Lecture 15: Inheritance (1pp) (6pp) (15.py) Lecture
Readings: section 2.5 Reading
Lecture 16: Expressivness (1pp) (6pp) (16.py) Lecture
Readings: section 2.7 Reading
Lecture 17: Iterators (1pp) (6pp) (17.py) Lecture
Readings: section 2.9 Reading
Lecture 18: Hierarchy (1pp) (6pp) (18.py) Lecture
Readings: section 2.9 Reading
Lecture 19: Growth I (1pp) (6pp) (19.py) Lecture
Readings: section 2.8 Reading
Lecture 20: Growth II (1pp) (6pp) (20.py) Lecture
Readings: section 2.8 Reading
Lecture 21: Sets (1pp) (6pp) (21.py) Lecture
Readings: section 2.9 Reading
Lecture 22: Data Examples (1pp) (6pp) (22.py) Lecture
Lecture 23: Scheme (1pp) (6pp) (23.scm) Lecture
Readings: section 3.1 Reading
Readings: section 3.2 Reading
Lecture 24: Exceptions (1pp) (6pp) (24.py) Lecture
Readings: section 3.3 Reading
Lecture 25: Calculator (1pp) (6pp) (25.scm) Lecture
Readings: section 3.4 Reading
Lecture 26: Interpreters (1pp) (6pp) Lecture
Readings: section 3.5 Reading
Lecture 27: Tail Calls (1pp) (6pp) (27.scm) Lecture
Readings: section 3.5 Reading
Lecture 28: The Halting Problem (1pp) (6pp) Lecture
Lecture 29: Iterators (1pp) (6pp) (29.py) Lecture
Readings: section 4.2 Reading
Lecture 30: Streams (1pp) (6pp) (30.scm) Lecture
Readings: section 4.2 Reading
Lecture 31: Declarative Programming (1pp) (6pp) (31.sql) Lecture
Readings: section 4.3 Reading
Lecture 32: SQL (1pp) (6pp) (32.sql) Lecture
Readings: section 4.3 Reading
Lecture 33: Recursive Select (1pp) (6pp) (33.sql) Lecture
Readings: section 4.3 Reading
Lecture 34: Aggregation (1pp) (6pp) (34.sql) Lecture
Readings: section 4.3 Reading
Lecture 35: Concurrency (1pp) (6pp) Lecture
Readings: section 4.6 Reading
Lecture 36: Parallelism (1pp) (6pp) Lecture
Readings: section 4.8 Reading
Lecture 37: Logic Programming (1pp) (6pp) (37.zip) Lecture
Readings: section 4.4 Reading
Readings: section 4.5 Reading
Lecture 38: Cryptography (1pp) (6pp) Lecture
Lecture 39: Conclusion (1pp) (6pp) Lecture
Homework 1 (Solutions) Homework
Homework 2 (Solutions) Homework
Homework 3 (Solutions) Homework
Homework 4 (Solutions) Homework
Homework 5 (Solutions) Homework
Homework 6 (Solutions) Homework
Homework 7 (Solutions) Homework
Homework 8 (Solutions) Homework
Homework 9 (Solutions) Homework
Mini Quiz 1 (Solutions) MiniQuiz
Mini Quiz 2 (Solutions) MiniQuiz
Mini Quiz 3 (Solutions) MiniQuiz
Hog Project
Hog Contest Project
Maps Project
Hog Composition Revision Project
Ants Project
Maps Composition Revision Project
Scheme Project
Ants Composition Revision Project
Lab 0: Workflow Lab
Lab 1: Expressions and Control Lab
Lab 2: Higher Order Functions, Recursion and Lambdas Lab
Lab 3: Data Abstraction and Recursion/Lambdas Review Lab
Lab 4: Lists and Linked Lists Lab
Lab 5: Mutable Lists, Dictionaries and Trees Lab
Lab 6: Nonlocal and Object-Oriented Programming Lab
Lab 7: Recursive Objects Lab
Lab 8: Sets, Orders of Growth and BST Lab
Lab 9: Scheme Lab
Lab 10: Interpreters Lab
Lab 11: Iterators and Generators Lab
Lab 12: SQL Lab
Lab 13: Spark 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: Data Abstraction and Sequences (Solutions) Discussion
Discussion 4: Midterm 1 Review Discussion
Discussion 5: Trees and Mutation (Solutions) Discussion
Discussion 6: Inheritance and Nonlocal (Solutions) Discussion
Discussion 7: Orders of Growth (Solutions) Discussion
Discussion 8: Scheme (Solutions) Discussion
Discussion 9: Tail Calls and Interpreters (Solutions) Discussion
Discussion 10: Iterators and Streams (Solutions) Discussion
Discussion 11: SQL Joins and Recursion (Solutions) Discussion
Discussion 12: 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
Fall 2015 screencasts Article Video, John DeNero
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 1/20 Functions
(1pp) (6pp) (01.py)
1.1
1.2
Lab 0: Workflow
(due Fri 1/22)
Fri 1/22 Names
(1pp) (6pp) (02.py)
1.3
1.4
Discussion 0: Lost on the Moon (Solutions) Homework 1
(due Wed 1/27) (Solutions)
2 Mon 1/25 Control
(1pp) (6pp) (03.py)
1.5
Wed 1/27 Higher-Order Functions
(1pp) (6pp) (04.py)
1.6 Lab 1: Expressions and Control
(due Fri 1/29)
Hog
(due Thu 2/4)
Fri 1/29 Environments
(1pp) (6pp) (05.py)
1.6 Discussion 1: Control and Higher Order Functions (Solutions)
3 Mon 2/1 Recursion
(1pp) (6pp) (06.py)
1.7
Wed 2/3 Tree Recursion
(1pp) (6pp) (07.py)
1.7 Lab 2: Higher Order Functions, Recursion and Lambdas
(due Fri 2/5)
Hog Contest
(due Mon 2/15)
Fri 2/5 Function Examples
(1pp) (6pp)
Discussion 2: Environment Diagrams and Recursion (Solutions)
4 Mon 2/8 Data Abstraction
(1pp) (6pp) (09.py)
2.1
2.2
Homework 2
(due Tue 2/16) (Solutions)
Wed 2/10 Sequences
(1pp) (6pp) (10.py)
2.3 Lab 3: Data Abstraction and Recursion/Lambdas Review
(due Fri 2/12)
Fri 2/12 Trees
(1pp) (6pp) (11.py)
2.3 Discussion 3: Data Abstraction and Sequences (Solutions)
5 Mon 2/15 No Lecture: President's Day
Wed 2/17 Mutable Values
(1pp) (6pp) (12.py)
2.4 Lab 4: Lists and Linked Lists
(due Mon 2/22)
Thu 2/18 Midterm 1
Fri 2/19 Mutable Functions
(1pp) (6pp) (13.py)
2.4 Discussion 4: Midterm 1 Review Homework 3
(due Fri 2/26) (Solutions)
Maps
(due Tue 3/1)
6 Mon 2/22 Objects
(1pp) (6pp) (14.py)
2.5
Wed 2/24 Inheritance
(1pp) (6pp) (15.py)
2.5 Lab 5: Mutable Lists, Dictionaries and Trees
(due Fri 2/26)
Fri 2/26 Expressivness
(1pp) (6pp) (16.py)
2.7 Discussion 5: Trees and Mutation (Solutions)
7 Mon 2/29 Iterators
(1pp) (6pp) (17.py)
2.9
Wed 3/2 Hierarchy
(1pp) (6pp) (18.py)
2.9 Lab 6: Nonlocal and Object-Oriented Programming
(due Fri 3/4)
Homework 4
(due Wed 3/9) (Solutions)
Hog Composition Revision
(due Sun 3/20)
Fri 3/4 Growth I
(1pp) (6pp) (19.py)
2.8 Discussion 6: Inheritance and Nonlocal (Solutions) Ants
(due Thu 3/17)
8 Mon 3/7 Growth II
(1pp) (6pp) (20.py)
2.8
Wed 3/9 Sets
(1pp) (6pp) (21.py)
2.9 Lab 7: Recursive Objects
(due Fri 3/11)
Homework 5
(due Mon 3/28) (Solutions)
Fri 3/11 Data Examples
(1pp) (6pp) (22.py)
Discussion 7: Orders of Growth (Solutions)
9 Mon 3/14 Scheme
(1pp) (6pp) (23.scm)
3.1
3.2
Wed 3/16 Exceptions
(1pp) (6pp) (24.py)
3.3 Lab 8: Sets, Orders of Growth and BST
(due Fri 3/18)
Mini Quiz 1
(due Fri 3/18) (Solutions)
Fri 3/18 Calculator
(1pp) (6pp) (25.scm)
3.4 Discussion 8: Scheme (Solutions)
10 Mon 3/21 No Lecture: Spring Break
Wed 3/23 No Lecture: Spring Break
Fri 3/25 No Lecture: Spring Break
11 Mon 3/28 Interpreters
(1pp) (6pp)
3.5
Wed 3/30 Midterm 2 Lab 9: Scheme
(due Mon 4/4)
Fri 4/1 Tail Calls
(1pp) (6pp) (27.scm)
3.5 Homework 6
(due Fri 4/8) (Solutions)
Maps Composition Revision
(due Fri 4/15)
12 Mon 4/4 The Halting Problem
(1pp) (6pp)
Wed 4/6 Iterators
(1pp) (6pp) (29.py)
4.2 Lab 10: Interpreters
(due Fri 4/8)
Mini Quiz 2
(due Thu 4/7) (Solutions)
Scheme
(due Mon 4/25)
Fri 4/8 Streams
(1pp) (6pp) (30.scm)
4.2 Discussion 9: Tail Calls and Interpreters (Solutions) Homework 7
(due Fri 4/15) (Solutions)
13 Mon 4/11 Declarative Programming
(1pp) (6pp) (31.sql)
4.3
Wed 4/13 SQL
(1pp) (6pp) (32.sql)
4.3 Lab 11: Iterators and Generators
(due Fri 4/15)
Fri 4/15 Recursive Select
(1pp) (6pp) (33.sql)
4.3 Discussion 10: Iterators and Streams (Solutions)
14 Mon 4/18 Aggregation
(1pp) (6pp) (34.sql)
4.3 Ants Composition Revision
(due Fri 4/29)
Wed 4/20 Concurrency
(1pp) (6pp)
4.6 Lab 12: SQL
(due Fri 4/22)
Homework 8
(due Wed 4/27) (Solutions)
Fri 4/22 Parallelism
(1pp) (6pp)
4.8 Discussion 11: SQL Joins and Recursion (Solutions)
15 Mon 4/25 Logic Programming
(1pp) (6pp) (37.zip)
4.4
4.5
Wed 4/27 Cryptography
(1pp) (6pp)
Lab 13: Spark
(due Fri 4/29)
Fri 4/29 Conclusion
(1pp) (6pp)
Discussion 12: Final Review (Solutions)
16 Tue 5/3 Homework 9
(due Mon 5/9) (Solutions)
Wed 5/4 Mini Quiz 3
(due Sun 5/8) (Solutions)
17 Tue 5/10 Final