Announcements

  • Maps project due next Tuesday 2/28 @ 11:59pm. Earn a bonus point for early submission by Monday 2/27 @ 11:59pm.

    • Project party Thursday 2/23 6:30-8:30pm in 247 Cory.
    • Project party Monday 2/27 6:30-8:30pm in 247 Cory.
  • Guerrilla Section on Trees, Linked Lists, and Mutable Values this Saturday 2/25 12-3pm in 247 Cory.
  • Exam Prep Office Hours starting this week. See Piazza and office hours for the official schedule.
  • There will be no lecture this week on Friday, 02/24/2017.
  • The CS198 additional-topics class will not meet on Friday, 02/24/2017, nor the next week (02/24/2017).
  • There will be no lecture this week on Friday, 02/24/2017.
  • The CS198 additional-topics class will not meet on Friday, 02/24/2017, nor the next week (02/24/2017).
  • Midterm 1 will be Friday 2/17 7-9pm. Test room assignments will be released Thursday.
  • Midterm 2 will be Wednesday 3/15 8-10pm.
  • There will be a Q&A during lecture this Friday (2/17) instead of usual lecture. Come with all your questions about the midterm.
  • TAs will host topical office hours Wed & Thurs where they will review the topic and go over past midterm problems. See office hours for the official schedule.
  • Online office hours available this week! See office hours for times. Go to https://online.cs61a.org/ during these times and copy and paste your code into the browser. Video, audio, and text support available!
  • The CS198 additional-topics class will not meet on Friday, 02/17/2017, nor the next week (02/24/2017).
  • Homework 3 due Tuesday 2/14 @ 11:59pm.

    • Homework party Monday 2/13 6:30-8:30pm in 247 Cory Hall. Come with all your homework questions!
  • Midterm 1 will be Friday 2/17 7-9pm. Test room assignments will be released Thursday.
  • Midterm 2 will be Wednesday 3/15 8-10pm.
  • There will be a Q&A during lecture this Friday (2/17) instead of usual lecture. Come with all your questions about the midterm.
  • TAs will host topical office hours Wed & Thurs where they will review the topic and go over past midterm problems. See office hours for the official schedule.
  • Online office hours available this week! See office hours for times. Go to https://online.cs61a.org/ during these times and copy and paste your code into the browser. Video, audio, and text support available!
  • Homework 3 due Tuesday 2/14 @ 11:59pm.

    • Homework party Monday 2/13 6:30-8:30pm in 247 Cory Hall. Come with all your homework questions!
  • Midterm 1 will be Friday 2/17 7-9pm. Fill out conflict form by February 12th. Test room assignments will be released next week.
  • Guerrilla Section on Environment Diagrams, Higher Order Functions, and Recursion this Saturday 2/11 12-3pm in 247 Cory.
  • Midterm 2 will be Wednesday 3/15 8-10pm.
  • CS 198: Extra material related to CS61A, Fridays 4:30-6:00pm in 306 Soda. This is a 1 unit P/NP course for people wanting a little more. It is completely optional and is not intended to give people extra help in CS61A. Lectures and a few homeworks. Attendance taken. Sign up for CCN 34691. New: Go here for lecture slides, assignments, and other information.
  • Online office hours available this week! See office hours for times. Go to https://online.cs61a.org/ during these times and copy and paste your code into the browser. Video, audio, and text support available!
  • Homework 2 due Monday 2/6 @ 11:59pm.

    • Homework party Monday 2/6 6:30-8:30pm in 247 Cory Hall. Come with all your homework questions!
  • Midterm 1 will be Friday 2/17 7-9pm. Fill out conflict form by February 12th.
  • Midterm 2 will be Wednesday 3/15 8-10pm.
  • Test room assignments and conflict forms will be released before the respective tests.
  • CS 198: Extra material related to CS61A, Fridays 4:30-6:00pm in 306 Soda. This is a 1 unit P/NP course for people wanting a little more. It is completely optional and is not intended to give people extra help in CS61A. Lectures and a few homeworks. Attendance taken. Sign up for CCN 34691. New: Go here for lecture slides, assignments, and other information.
  • Online office hours available this week! See office hours for times. Go to https://online.cs61a.org/ during these times and copy and paste your code into the browser. Video, audio, and text support available!
  • The Hog Project due Thursday 2/2 @ 11:59pm. Earn a bonus point for early submission by Wednesday 2/1 @ 11:59pm.

    • Project parties Tuesday 1/31 and Wednesday 2/1 6:30-8:30pm in 247 Cory Hall.
    • Remote office hours Wednesday 2/1 4-6pm. See office hours for more details.
  • Homework 2 due Monday 2/6 @ 11:59pm.

    • Homework party Monday 2/6 6:30-8:30pm in 247 Cory Hall. Come with all your homework questions!
  • Midterm 1 will be Friday 2/17 7-9pm. Fill out conflict form by February 12th.
  • Midterm 2 will be Wednesday 3/15 8-10pm.
  • Test room assignments and conflict forms will be released before the respective tests.
  • CS 198: Extra material related to CS61A, Fridays 4:30-6:00pm in 306 Soda. This is a 1 unit P/NP course for people wanting a little more. It is completely optional and is not intended to give people extra help in CS61A. Lectures and a few homeworks. Attendance taken. Sign up for CCN 34691.
  • CS 97: Computer Science Mentors section signups are now open! Please read pinned Piazza post.
  • See the syllabus for latest course policies, including homework and project grading.
  • Homework 1 due Monday 1/30 @ 11:59pm.

    • Homework party Monday 1/30 6:30-8:30pm in 247 Cory Hall. Come with all your homework questions!
  • The Hog Project due next Thursday 2/2 @ 11:59pm. Earn a bonus point for early submission by Wednesday 2/1 @ 11:59pm.

    • Project parties next Tuesday 1/31 and Wednesday 2/1 6:30-8:30pm in 247 Cory Hall.
  • Midterm 1 will be Friday 2/17 7-9pm. We will have room assignments and a conflict form released later.
  • See the syllabus for updated course policies, including homework and project grading.
  • Office hours begin this week. See the office hours schedule for times and locations. Come with any questions on lecture, lab, discussion, or any other material.
  • Waitlisted and concurrent enrollment students should attend lectures and sections. Just try to find a lab and discussion where there is physically room for now. You will not (ever) be able to sign up for CS Scholars lab and discussion sections (113, 013, 116, or 016), which are reserved.
  • In order to enroll, some waitlisted students may end up having to enroll in sections where they have conflicts, which will require special processing. We discourage taking the course if you have a lecture conflict, first because this implies final exam conflicts, and second because if you are not a CS major and have a conflicting required course, you should probably concentrate on that.
  • We cannot process concurrent enrollment applications until we are sure that waiting lists can be cleared. We'll announce when this is. If you are enrolled and decide to drop, please remove yourself from the course as soon as possible.
  • Lecture on Friday (1/20) will be in Zellerbach Auditorium (still at the scheduled time of 2PM). After this week, lectures will be in the Pauley Ballroom.
  • If you were unable to get an instructional account from the EECS account website (as linked in Lab 0), fill out this form and we'll get back to you. All students, including concurrent enrollment students and waitlisted students, are eligible.
  • Office hours will begin on Monday (1/23). See the office hours schedule for times and locations.
  • Waitlisted and concurrent enrollment students should attend lectures and sections. Just try to find a lab and discussion where there is physically room for now.
  • In order to enroll, some waitlisted students may end up having to enroll in sections where they have conflicts, which will require special processing. We won't handle that until next week. We discourage taking the course if you have a lecture conflict, first because this implies final exam conflicts, and second because if you are not a CS major and have a conflicting required course, you should probably concentrate on that. You will not (ever) be able to sign up for CS Scholars sections (113, 013, 116, or 016), which are reserved.
  • We cannot process concurrent enrollment applications until we are sure that waiting lists can be cleared. At the soonest, this will be next week.
  • Lab starts this Tuesday (1/17) and Wednesday (1/18). See Lab 00 below.
  • NEW: Lecture begins Wednesday (1/18). For first week only lectures will be in Zellerbach Auditorium (still at the scheduled time of 2PM). After this week, lectures will be in the Pauley Ballroom.
  • Discussion begins this Thursday (1/19) and Friday (1/20). Attend a discussion section that is hosted by the same TA as your lab section, instead of discussion on CalCentral. Section times and locations can be found on the Weekly Schedule.
  • No office hours this week. Post on Piazza if you have any questions or email your TA.
  • Waitlisted and concurrent enrollment students should attend lectures and sections. Just try to find a lab and discussion where there is physically room for now.
  • In order to enroll, some waitlisted students may end up having to enroll in sections where they have conflicts, which will require special processing. We won't handle that until next week. We discourage taking the course if you have a lecture conflict, first because this implies final exam conflicts, and second because if you are not a CS major and have a conflicting required course, you should probably concentrate on that. You will not (ever) be able to sign up for CS Scholars sections (113, 013, 116, or 016), which are reserved.
  • We cannot process concurrent enrollment applications until we are sure that waiting lists can be cleared. At the soonest, this will be next week.
  • Welcome to CS 61A!

Calendar

Warning: Calendar entries after current lecture are subject to change.

Week Date Lecture Reading Handout Homework Project
1 Wed 1/18 Introduction
(1pp) (6pp) (01.py)
1.1
1.2
Lab 00: Introduction and Workflow
(due Fri 1/27)
Fri 1/20 Names and Functions
(1pp) (6pp) (02.py)
1.3
1.4
Discussion 00: Lost on the Moon (Solutions)
2 Mon 1/23 Names, Control
(1pp) (6pp) (03.py)
1.5 Homework 01
(due Mon 1/30) (Solutions)
Wed 1/25 Iteration, Higher-Order Functions
(1pp) (6pp) (04.py)
1.6 Lab 01: Expressions and Control Structures
(due Fri 1/27)
Hog
(due Thu 2/2)
Fri 1/27 Higher-Order Functions
(1pp) (6pp) (05.py)
1.6 Discussion 01: Control and Higher Order Functions (Video) (Slides) (Solutions)
3 Mon 1/30 Recursion
(1pp) (6pp) (06.py)
1.7 Homework 02
(due Mon 2/6) (Solutions)
Wed 2/1 Tree Recursion
(1pp) (6pp) (07.py)
1.7 Lab 02: Lambdas, Higher-Order Functions, and Recursion
(due Fri 2/3)
Fri 2/3 Recursion, Functions, and Data
(1pp) (6pp)
2.1
2.2
Discussion 02: Environment Diagrams and Recursion (Video) (Slides) (Solutions)
4 Mon 2/6 Sequences
(1pp) (6pp) (09.py)
2.3
Wed 2/8 Trees
(1pp) (6pp) (10.py)
2.3 Lab 03: Data Abstraction and Recursion/Lambdas Review
(due Fri 2/10)
Homework 03
(due Tue 2/14) (Solutions)
Fri 2/10 Immutable and Mutable Data
(1pp) (6pp) (11.py)
2.4 Discussion 03: Sequences and Trees (Video) (Slides) (Solutions)
5 Mon 2/13 Mutable Data
(1pp) (6pp) (12.py)
2.4
Wed 2/15 Objects
(1pp) (6pp) (13.py)
2.5 Lab 04: Lists, Linked Lists, and Trees
(due Mon 2/20)
Fri 2/17 Midterm 1 Discussion 04: Midterm Review (Solutions) Maps
(due Tue 2/28)
6 Mon 2/20 No Lecture: Holiday
Wed 2/22 OOP and Inheritance
(1pp) (6pp) (14.py)
2.5 Lab 05: Mutable Lists, Dictionaries, and Nonlocal
(due Fri 2/24)
Hog Contest
(due Tue 3/7)
Fri 2/24 No Lecture: Cancelled Discussion 05: Mutation and Object Oriented Programming (Solutions)
7 Mon 2/27 Expressiveness
(1pp) (6pp) (15.py)
2.7
Wed 3/1 Iterators
(1pp) (6pp) (16.py)
2.9
Fri 3/3 Hierarchy
(1pp) (6pp) (17.py)
2.9
8 Mon 3/6 Growth I
(1pp) (6pp) (18.py)
2.8
Wed 3/8 Growth II
(1pp) (6pp) (19.py)
2.8
Fri 3/10 Sets
(1pp) (6pp) (20.py)
2.9
9 Mon 3/13 Data Examples
(1pp) (6pp) (21.py)
Wed 3/15 Midterm 2
Fri 3/17 Scheme
(1pp) (6pp) (22.scm)
3.1
3.2
10 Mon 3/20 Exceptions
(1pp) (6pp) (23.py)
3.3
Wed 3/22 Calculator
(1pp) (6pp) (24.scm)
3.4
Fri 3/24 Interpreters
(1pp) (6pp)
3.5
11 Mon 3/27 No Lecture: Holiday
Wed 3/29 No Lecture: Holiday
Fri 3/31 No Lecture: Holiday
12 Mon 4/3 Tail Calls
(1pp) (6pp) (26.scm)
3.5
Wed 4/5 The Halting Problem
(1pp) (6pp)
Fri 4/7 Iterators
(1pp) (6pp) (28.py)
4.2
13 Mon 4/10 Streams
(1pp) (6pp) (29.scm)
4.2
Wed 4/12 Declarative Programming
(1pp) (6pp) (30.sql)
4.3
Fri 4/14 SQL
(1pp) (6pp) (31.sql)
4.3
14 Mon 4/17 Recursive Select
(1pp) (6pp) (32.sql)
4.3
Wed 4/19 Aggregation
(1pp) (6pp) (33.sql)
4.3
Fri 4/21 Concurrency
(1pp) (6pp)
4.6
15 Mon 4/24 Parallelism
(1pp) (6pp)
4.8
Wed 4/26 Cryptography
(1pp) (6pp)
Fri 4/28 Conclusion
(1pp) (6pp)
16 Tue 5/9 Final