Welcome to Self-Paced CS 61A, Structure and Interpretation of Computer Programs (SICP)!

There is also a lecture version of CS 61A with the same name, but as of this semester making some departures from the textbook after which the course is named. This self-paced version has no formal lectures, although videos of old lectures are optional; it provides different paths through the course material depending on the prior programming background of each student.

This self-paced version of 61A consists entirely of online material that you do in lab and at home. (This includes the textbook, which is available online.) The first step is to attend one of the three scheduled sections (they are listed as CS 194-18, 194-19, and 194-20 in the Schedule of Classes this semester because this is a pilot version and we don't have an official CS 61AS course number yet) to get a class account, which you need to use the online material. (It's not secret or anything like that, but the software uses your class login to keep track of where you are in the course.)


The CS 61 series is an introduction to computer science, with particular emphasis on software and on machines from a programmer's point of view. This first course concentrates mostly on the idea of abstraction, allowing the programmer to think in terms appropriate to the problem rather than in low-level operations dictated by the computer hardware. The next course, CS 61B, will deal with the more advanced engineering aspects of software—on constructing and analyzing large programs and on techniques for handling computationally expensive programs. Finally, CS 61C concentrates on machines and how they carry out the programs you write.

← The world's best computer science book!