Monday, July 4, 2022

How to audit CS61A

I taught/co-taught CS61A at UC Berkeley for the last three semesters. Since it is a fairly well known class, I often get asked how to audit the class, both by Berkeley students and people outside of Berkeley.

Generally, CS61A materials are accessible online, so you don’t need special permission to audit the class. Here are some tips I often give, however.


If you are happy to follow the pace of the current semester (i.e. summer/winter/fall), then use the materials at cs61a.org. You will need to wait for assignments to be released, and you can see those release dates on the front page calendar. 




Otherwise, if you want to be able to blaze through the materials at your own pace, you can access previous semesters by navigating to <semester><year>.cs61a.org, where <semester> is either “su”, “fa”, or “sp”, and <year> is the last two digits of the year. For example, sp22.cs61a.org is the spring 2022 semester when I solo taught, and fa21.cs61a.org is the fall 2021 semester when I co-taught with John Denero. Each semester differs slightly in terms of content and instructor. Denero is the most common instructor and the one who originally created the Python version of the course (CS61A was originally taught 100% in Scheme).


All the assignments (labs/homeworks/projects) are autograded using a system called OKPy that checks whether your code passes the tests. By default, the OKPy command asks you to login to a Berkeley account for backup/submission purposes, but you can bypass that check by adding `-- local` to the command. That allows you to check all your work locally regardless of whether you're a Berkeley student or not. 


The official solutions for the assignments are only available during the current semester, released ~3 days after assignments are due, but are taken down once the semester is over. So, if you think you'd benefit from seeing the official solutions, you should follow along with the current semester instead of going through a previous semester's materials.


Lecture slides are linked from the front page calendar. The lectures themselves are either over Zoom or in-person, depending on the semester. If you're in the Berkeley area, you actually can stop by the lectures in-person. However, if you're not a Berkeley student, you typically cannot access the lecture recordings, as they are uploaded to services that require a Berkeley account. We have to keep the recordings internal for legal reasons, as the recordings are not properly closed captioned, and any published recordings from a university must be closed captioned. 


However, John Denero has a set of pre-recorded lectures that are closed captioned and available on YouTube. Those lectures are often linked from cs61a.org in some way. For fa21.cs61a.org, follow the "Playlist" link under each lecture title. For sp22.cs61a.org, click the lecture title and watch the embedded player. For summer 2022, click "Precorded" under each lecture title. When Denero is one of the lecturers of the semester, his videos are often fairly well aligned with the official lectures. However, when he's not one of the lecturers, there will be some divergence in the content, and sometimes there will be no Denero lectures available for a particular topic.


The textbook was written by Denero and is available for free online at composingprograms.com. The front page calendar has a column which lists which textbook sections are relevant to that lecture. Once again, the textbook readings will be the most aligned in a Denero-taught semester and may be divergent/missing for some topics in non-Denero semesters. 


Typically, the lectures cover similar content as the textbook, so you could decide to only read the textbook or only watch the lectures, and not really be missing anything. When I went through the materials, I primarily read the textbook and only watched videos when I felt like I wasn't really grasping something and wanted another explanation.


Hope that helps!


No comments: