Announcements

Sign up for tutoring! If you would like more time review Week 1 materials, sign up for tutoring.

Office hours this week:

  • Wednesday, 7/1 office hours from 1 - 5 pm will be in Wozniak Lounge
  • Thursday, 7/2 office hours from 2 - 5 pm will be in Wozniak Lounge

Lab 1:

  • Please fill out the OK Issues survey, even if you were able to submit Lab 1 successfully.
  • Everyone will get credit for Lab 1 (counting towards midterm recovery points)

Tutoring starts this Saturday! If you would like more time review Week 1 materials, sign up for tutoring.

Here are the exam dates:

  • Midterm 1: Thursday 7/9 from 6 - 8 pm
  • Midterm 2: Thursday 7/30 from 6 - 8 pm
  • Final: Thursday 8/13 from 3 - 6 pm

Lab 1:

  • Please fill out the OK Issues survey, even if you were able to submit Lab 1 successfully.
  • Everyone will get credit for Lab 1 (counting towards midterm recovery points)

Welcome to CS 61A! Our syllabus can be found here.

Here are the exam dates:

  • Midterm 1: Thursday 7/9 from 6 - 8 pm
  • Midterm 2: Thursday 7/30 from 6 - 8 pm
  • Final: Thursday 8/13 from 3 - 6 pm

You may attend any lab and discussion section you want.

Please bring your laptop to the first lab!

Welcome to CS 61A! This site is still under construction. Our tentative syllabus can be found here.

Here are the exam dates:

  • Midterm 1: Thursday 7/9 from 6 - 8 pm
  • Midterm 2: Thursday 7/30 from 6 - 8 pm
  • Final: Thursday 8/13 from 3 - 6 pm

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: Introduction and Basics (01.py) Lecture Functions
Readings: section 1.1 Reading Functions
Readings: section 1.2 Reading Functions
Lecture 2: Functions and Control Structures (02.py) Lecture Functions, Control Structures
Readings: section 1.3 Reading Functions, Control Structures
Readings: section 1.4 Reading Functions, Control Structures
Readings: section 1.5 Reading Functions, Control Structures
Lecture 3: Higher Order Functions (03.py) Lecture Higher Order Functions
Readings: section 1.6 Reading Higher Order Functions
Lecture 4: Higher Order Functions (04.py) Lecture Higher Order Functions
Readings: section 1.6 Reading Higher Order Functions
Lecture 5: Week 1 Review (05.py) Lecture Functions, Control Structures, Higher Order Functions
Lecture 6: Recursion (06.py) Lecture Recursion
Readings: section 1.7 Reading Recursion
Lecture 7: Tree Recursion (07.py) Lecture Recursion, Tree Recursion
Lecture 8: Orders of Growth (08.py) Lecture Orders of Growth
Lecture 9: Lists, Sequences, and Dictionaries (09.py) Lecture Lists, Strings, Dictionaries
Lecture 10: Data Abstraction (10.py) Lecture Data Abstraction
Lecture 11: Linked Lists (11.py) Lecture Linked Lists
Lecture 12: Midterm 1 Review (12.py) Lecture
Lecture 13: Trees (13.py) Lecture Trees
Lecture 14: Mutable objects and functions (14.py) Lecture Mutation, Nonlocal
Lecture 15: Object Oriented Programming (15.py) Lecture Object Oriented Programming
Lecture 16: Inheritance (16.py) Lecture Object Oriented Programming, Inheritance
Lecture 17: Mutable Linked Lists (17.py) Lecture Mutation, Linked Lists
Lecture 18: Mutable Trees (18.py) Lecture Mutation, Trees
Lecture 19: Interfaces (19.py) Lecture Object Oriented Programming, Interfaces
Lecture 20: Scheme (20.py) Lecture Scheme
Lecture 21: Exceptions and Interpreters (21.py) Lecture Exceptions, Interpreters
Lecture 22: Calculator (22.py) Lecture Interpreters
Lecture 23: Tail calls (23.py) Lecture Scheme, Tail calls
Lecture 24: Midterm 2 Review (24.py) Lecture
Lecture 25: Iterators and Generators (25.py) Lecture Iterators, Generators
Lecture 26: Streams (26.py) Lecture Streams
Lecture 27: Logic Programming (27.py) Lecture Logic
Lecture 28: Unification (28.py) Lecture Logic
Lecture 29: Artificial Intelligence (29.py) Lecture Extra Topics
Lecture 30: Computability and Complexity (30.py) Lecture Extra Topics
Lecture 31: Computational Biology (31.py) Lecture Extra Topics
Lecture 32: Conclusion (32.py) Lecture
Homework 1 (Solutions) Homework Functions, Conditionals
Homework 2 (Solutions) Homework Higher Order Functions
Homework 3 Homework Recursion, Tree Recursion
Homework 4 Homework Lists, Data Abstraction
Homework 5 Homework Linked Lists, Trees
Homework 6 Homework Mutation, Object Oriented Programming, Inheritance
Homework 7 Homework Mutation, Linked Lists, Trees
Homework 8 Homework Scheme
Homework 9 Homework Interpretation
Homework 10 Homework Iterators, Generators, Streams
Homework 11 Homework Logic
Homework 12 Homework
Hog Project Functions, Higher Order Functions, Conditionals
Maps Project Data Abstraction, Lists, Strings, Dictionaries
Ants Project Object Oriented Programming, Inheritance
Scheme Project Scheme, Interpreters, Tail calls
Lab 1: Setting up Lab
Lab 2: Control structures Lab Control Structures
Lab 3: Higher Order Functions and Lambdas Lab Higher Order Functions, Lambdas
Lab 4: Recursion and Tree Recursion Lab Recursion, Tree Recursion
Lab 5: Lists and Dictionaries Lab Lists, Dictionaries
Lab 6: Linked Lists Lab Linked Lists
Lab 7: Trees Lab Trees
Lab 8: Object Oriented Programming Lab Object Oriented Programming
Lab 9: Mutable Linked Lists Lab Mutation, Linked Lists
Lab 10: Interfaces Lab Object Oriented Programming, Interfaces
Lab 11: Scheme Lab Scheme
Lab 12: Tail calls Lab Scheme, Tail calls
Lab 13: Iterators and Generators Lab Iterators, Generators
Lab 14: Logic Lab Logic
Diagnostic 1 Diagnostic
Diagnostic 2 Diagnostic
Diagnostic 3 Diagnostic
Diagnostic 4 Diagnostic
Diagnostic 5 Diagnostic
Diagnostic 6 Diagnostic
Diagnostic 7 Diagnostic
Discussion 1: Functions (Solutions) Discussion Functions
Discussion 2: Higher Order Functions and Environment Diagrams (Solutions) Discussion Higher Order Functions, Environment Diagrams
Discussion 3: Recursion (Solutions) Discussion Recursion
Discussion 4: Orders of Growth (Solutions) Discussion Orders of Growth
Discussion 5: Data Abstraction (Solutions) Discussion Data Abstraction
Discussion 6: Midterm 1 Review (Solutions) Discussion
Discussion 7: Nonlocal and mutability (Solutions) Discussion Nonlocal, Mutation
Discussion 8: Inheritance (Solutions) Discussion Object Oriented Programming, Inheritance
Discussion 9: Mutable Trees (Solutions) Discussion Mutation, Trees
Discussion 10: Scheme (Solutions) Discussion Scheme
Discussion 11: Calculator (Solutions) Discussion Interpreters
Discussion 12: Midterm 2 Review (Solutions) Discussion
Discussion 13: Streams (Solutions) Discussion Streams
Discussion 14: Logic (Solutions) Discussion Logic
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
Tutoring 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
Week 2 (Sat 06/27 to Fri 07/03): Basics, Control Structures, and Higher order functions Tutoring Functions, Control Structures, Higher Order Functions

Calendar

Week Date Lecture Reading Handout Homework Project
1 Mon 6/22 Introduction and Basics
(01.py)
1.1
1.2
Lab 1: Setting up
(due Tue 6/23)
Homework 1
(due Fri 6/26) (Solutions)
Tue 6/23 Functions and Control Structures
(02.py)
1.3
1.4
1.5
Discussion 1: Functions (Solutions)
Wed 6/24 Higher Order Functions
(03.py)
1.6 Lab 2: Control structures
(due Thu 6/25)
Thu 6/25 Higher Order Functions
(04.py)
1.6 Discussion 2: Higher Order Functions and Environment Diagrams (Solutions) Homework 2
(due Mon 6/29) (Solutions)
Hog
(due Thu 7/2)
Fri 6/26 Diagnostic 1
2 Mon 6/29 Week 1 Review
(05.py)
Lab 3: Higher Order Functions and Lambdas
(due Tue 6/30)
Tue 6/30 Recursion
(06.py)
1.7 Discussion 3: Recursion (Solutions)
Wed 7/1 Tree Recursion
(07.py)
Lab 4: Recursion and Tree Recursion
(due Thu 7/2)
Thu 7/2 Orders of Growth
(08.py)
Discussion 4: Orders of Growth (Solutions) Homework 3
(due Mon 7/6)
Fri 7/3 Diagnostic 2
3 Mon 7/6 Lists, Sequences, and Dictionaries
(09.py)
Lab 5: Lists and Dictionaries
(due Tue 7/7)
Tue 7/7 Data Abstraction
(10.py)
Discussion 5: Data Abstraction (Solutions) Maps
(due Tue 7/14)
Wed 7/8 Linked Lists
(11.py)
Lab 6: Linked Lists
(due Thu 7/9)
Thu 7/9 Midterm 1 Review
(12.py)
Midterm 1
Discussion 6: Midterm 1 Review (Solutions) Homework 4
(due Tue 7/14)
Fri 7/10 Diagnostic 3
4 Mon 7/13 Trees
(13.py)
Lab 7: Trees
(due Tue 7/14)
Homework 5
(due Fri 7/17)
Tue 7/14 Mutable objects and functions
(14.py)
Discussion 7: Nonlocal and mutability (Solutions)
Wed 7/15 Object Oriented Programming
(15.py)
Lab 8: Object Oriented Programming
(due Thu 7/16)
Ants
(due Mon 7/27)
Thu 7/16 Inheritance
(16.py)
Discussion 8: Inheritance (Solutions) Homework 6
(due Mon 7/20)
Fri 7/17 Diagnostic 4
5 Mon 7/20 Mutable Linked Lists
(17.py)
Lab 9: Mutable Linked Lists
(due Tue 7/21)
Homework 7
(due Fri 7/24)
Tue 7/21 Mutable Trees
(18.py)
Discussion 9: Mutable Trees (Solutions)
Wed 7/22 Interfaces
(19.py)
Lab 10: Interfaces
(due Thu 7/23)
Thu 7/23 Scheme
(20.py)
Discussion 10: Scheme (Solutions) Homework 8
(due Mon 7/27)
Fri 7/24 Diagnostic 5
6 Mon 7/27 Exceptions and Interpreters
(21.py)
Lab 11: Scheme
(due Tue 7/28)
Tue 7/28 Calculator
(22.py)
Discussion 11: Calculator (Solutions) Scheme
(due Mon 8/10)
Wed 7/29 Tail calls
(23.py)
Lab 12: Tail calls
(due Thu 7/30)
Thu 7/30 Midterm 2 Review
(24.py)
Midterm 2
Discussion 12: Midterm 2 Review (Solutions) Homework 9
(due Mon 8/3)
Fri 7/31 Diagnostic 6
7 Mon 8/3 Iterators and Generators
(25.py)
Lab 13: Iterators and Generators
(due Tue 8/4)
Homework 10
(due Fri 8/7)
Tue 8/4 Streams
(26.py)
Discussion 13: Streams (Solutions)
Wed 8/5 Logic Programming
(27.py)
Lab 14: Logic
(due Thu 8/6)
Thu 8/6 Unification
(28.py)
Discussion 14: Logic (Solutions) Homework 11
(due Mon 8/10)
Fri 8/7 Diagnostic 7
8 Mon 8/10 Artificial Intelligence
(29.py)
Tue 8/11 Computability and Complexity
(30.py)
Wed 8/12 Computational Biology
(31.py)
Homework 12
(due Wed 8/12)
Thu 8/13 Conclusion
(32.py)
Final