If you’re following along with the Teach Yourself CS guide, they recommend studying the book “Structure and Interpretation of Computer Programs” (SICP) and following along with the Berkley lectures from the CS61A course. The course information is pretty scattered and out of date, so I’ve compiled all the information you’ll need to get going.
Getting Started
Lectures
CS61A is taught by Brian Harvey, who I think is a great professor. He has a good sense of humor and takes a laid back approach to the course. His honesty about some of the subjects is pretty fantastic.
The TYCS guide recommends following these lectures from Spring 2011, but there several missing from the list. It’s better to use the Fall 2010 lectures for the same course that are more complete. The video quality isn’t fantastic, but it does the job.
Documents
HW: https://people.eecs.berkeley.edu/~bh/61a-pages/Volume1/hw.pdf
Labs: https://people.eecs.berkeley.edu/~bh/61a-pages/Volume1/labs.pdf
HW/Lab Solutions: https://people.eecs.berkeley.edu/~bh/61a-pages/Solutions/
Notes: https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/notes.pdf
Course Reader 1: https://people.eecs.berkeley.edu/~bh/61a-pages/Volume1/CS 61A Course Reader, Volume 1.html
Course Reader 2: https://people.eecs.berkeley.edu/~bh/61a-pages/Volume2/CS 61A Course Reader, Volume 2.html
Setting up the Environment
The course uses the a flavor of the LISP programming language called Scheme and I HIGHLY recommend using it. The simply scheme package you need to load adds a few helper functions used in the course. The Scheme syntax is super minimal so you can focus on the CS concepts and not get sidetracked by learning a language first. The concepts you lean in this class apply to all programming languages, so this is super beneficial in the long run.
You can use a command line to write code (setup is not super straight forward), but I recommend using Racket as it makes writing larger programs much easier.
DrRacketfile -> Package managerPackage Source input, install simply-scheme#lang simply-schemeSchedule
| Week | Reading | Lecture(s) | Homework | Labs | Exams | Project |
| 1 | 1.1 | |||||
| 2 | 1.3 | |||||
| 3 | 1.2.1–4 | |||||
| 4 | 2.1, 2.2.1 | |||||
| 5 | 2.2.2–3, 2.3.1,3 | |||||
| 6 | 2.4–2.5.2 | |||||
| 7 | Above the Line, Ref-Man, Below the Line | |||||
| 8 | 3.1, 3.2 | |||||
| 9 | 3.3.1–3 | |||||
| 10 | 3.4 | |||||
| 11 | 3.5.1–3, 3.5.5, | |||||
| 12 | 4.1.1–6 | |||||
| 13 | 4.1.7, 4.2 | |||||
| 14 | 4.4.1–3 |