Course Description

The Structure and Interpretation of Computer Programs (Online), COMPSCI W61A

An introduction to programming and computer science focused on abstraction techniques as means to manage program complexity. Techniques include procedural abstraction; control abstraction using recursion, higher-order functions, generators, and streams; data abstraction using interfaces, objects, classes, and generic operators; and language abstraction using interpreters and macros. The course exposes students to programming paradigms, including functional, object-oriented, and declarative approaches. It includes an introduction to asymptotic analysis of algorithms. There are several significant programming projects.

Key Information

Credit: 6 quarter units / 4 semester units credit
UC Berkeley, Electrical Eng & Computer Sci

Course Credit:

Upon successful completion, all online courses offered through cross-enrollment provide UC unit credit. Some courses are approved for GE, major preparation and/or, major credit or can be used as a substitute for a course at your campus.

If "unit credit" is listed by your campus, consult your department, academic adviser or Student Affairs division to inquire about the petition process for more than unit credit for the course.

UC Berkeley:
General Education: Quantitative Reasoning
Major Requirement: fulfills lower division requirement for CS, EECS, & Cognitive Science Majors

UC Davis:
Course Equivalence: UCB CS 61A is equivalent to UCD ECS 010 Introduction to Programming

UC Irvine:
Unit Credit

UC Los Angeles:
Unit Credit

UC Merced:
Course Equivalence: CS 61A at Berkeley is equivalent to CSE 019 at UC Merced.

UC Riverside:
Course Equivalence: UCR CS 012/012V/013 - Introduction to Computer Science

UC San Diego:
General Education: ERC 1 course for formal skills; Warren - Formal Skills, May be counted depending on major/PofC; Sixth- Info Tech
Major Requirement: lower division Computer Science and Engineering (CSE) elective credit

UC San Francisco:
Unit Credit

UC Santa Barbara:
Unit Credit

UC Santa Cruz:
Unit Credit

More About The Course

Relevant Website

Course Creator

John DeNero
John DeNero is an assistant teaching professor in the UC Berkeley EECS department. He joined the Cal faculty in 2014 to focus on undergraduate education in computer science and data science. He teaches and co-develops two of the largest courses on campus: introductory computer science for majors and introductory data science. He is the author of Composing Programs and co-author of Computational and Inferential Thinking, two online textbooks. He has received the Distinguished Teaching Award, the inaugural Giancarlo Teaching Fellowship, the Jim and Donna Gray Faculty Award for Undergraduate Teaching, and the Diane McEntyre Award for Excellence in Teaching. His research focuses both on natural language processing and computer science education. He received his Masters in Philosophy from Stanford University and his PhD in Electrical Engineering and Computer Science from UC Berkeley in 2010. Prior to becoming a professor, John was a senior research scientist at Google working primarily on Google Translate and natural language processing. John DeNero is an assistant teaching professor in the UC Berkeley EECS department. He joined the Cal faculty in 2014 to focus on undergraduate education in computer science and data science. He teaches and co-develops two of the largest courses on campus: introductory computer science for majors and introductory data science. He is the author of Composing Programs and co-author of ...

John DeNero is an assistant teaching professor in the UC Berkeley EECS department. He joined the Cal faculty in 2014 to focus on undergraduate education in computer science and data science. He teaches and co-develops two of the largest courses on campus: introductory computer science for majors and introductory data science. He is the author of Composing Programs and co-author of Computational and Inferential Thinking, two online textbooks. He has received the Distinguished Teaching Award, the inaugural Giancarlo Teaching Fellowship, the Jim and Donna Gray Faculty Award for Undergraduate Teaching, and the Diane McEntyre Award for Excellence in Teaching. His research focuses both on natural language processing and computer science education. He received his Masters in Philosophy from Stanford University and his PhD in Electrical Engineering and Computer Science from UC Berkeley in 2010. Prior to becoming a professor, John was a senior research scientist at Google working primarily on Google Translate and natural language processing.

* To be notified, please provide all requested information
Please enter valid email.

We'll notify you when The Structure and Interpretation of Computer Programs (Online), COMPSCI W61A becomes available

First Name:*
Last Name:*
Email:*
Term(s) you're interested in:*