Skip to main content

Structure and Interpretation of Computer Programs


UC Berkeley

About This Course

CS61AS is a lab-based course that introduces you to the big ideas of computer science. It is based on Abelson & Sussman's wonderful book The Structure and Interpretation of Computer Programs. This book will seamlessly guide you through multiple programming paradigms and ideas that are far beyond most introductory computer science courses. CS 61AS covers the same concepts as CS 61A. There are programming projects and homework just like 61A. Unlike CS 61A, there is no lecture, (you spend most of your time one-on-one with the TAs in lab), and there are no midterms (there are instead smaller, retake-able quizzes). Moreover, you may take all the material over 2 semesters (this fall and then next spring). This is useful for students who have never programmed before--who can also take an optional 'zeroth' unit to have a more gentle intro. Students who are experienced in Computer Science can take an optional last unit to explore more cool CS topics.

The point of this course is to learn Computer Science in a different way. There is no lecture-lab-discussion-repeat business where people struggle to keep up with the lightning pace. We strive to be a supportive community where you can figure out CS for yourself while getting help from experienced TAs and making friends with peers in lab.

Prerequisites

This course has no formal prerequisites. If you have previous programming experience that includes the basics of recursion, you may want to start in Unit 1. Otherwise you can start in Unit 0, which offers a gentle introduction to the Scheme programming language.

Frequently Asked Questions

Do I need to buy a textbook?

No, a free online version of SICP is avaliable online.

Is the course being taught by Professor Hilfinger?

Effectively no. Professor Hilfinger oversees the administrative tasks, but the TAs teach the course and manage the day-to-day operations.

Why Scheme?

The Scheme Programming langauge is a very good /teaching/ language. it illustrates the big ideas of Computer Science very well (which is part of the reason our textbook uses this language). If you understand the underlying ideas that make up computer science, then learning any other programming language after that is straightforward.

Enrollment info

Enroll