/berkeley-cs-courses

A list of links to various Berkeley CS courses and their resources.

berkeley-cs-courses

This page features links to several Berkeley EECS course webpages with publicly available resources (lectures, homeworks, projects, etc.), with the purpose of consolidating resources for non-Berkeley students (or non-EECS Berkeley students) to visit.

  • Links are from the most recent semester available (Spring 2019 for most courses, at the time of writing). Many courses have webcasts that are unavailable to non-Berkeley students, but in some cases, previous semesters of courses have video archives that are publicly available on YouTube. These are linked, when possible.
  • Furthermore, tbp.berkeley.edu and hkn.eecs.berkeley.edu both feature repositories of past exams for all of these courses, though many of them will post past exams on their websites themselves.
  • At Berkeley, courses are labelled as either "lower division" or "upper division". Lower division courses typically cover a breadth of topics, whereas upper division courses dive deeper into specific areas.
  • Berkeley is also unique in that undergraduates have the ability to start their own for-credit courses on any topic they choose. There are many such courses (called DeCals) under the Computer Science department that teach many different applied topics (e.g. Virtual Reality, Web Development). These are listed at the bottom of the page.
  • Refer here for a complete listing of courses. The EECS instructional homepage essentially does the same thing as this site, but is significantly more clunky.

Determining what classes to take:

  • The HKN courses guides give suggestions on the order in which to take courses. In the lower division, typically, students take CS 61A, then CS 61B, then CS 70, then CS 61C (though sometimes 61B/70 or 70/61C are taken concurrently).
  • For reference: major requirements and sample study plans for students in CS/EECS

Feel free to reach out to suraj.rampure@berkeley.edu with any concerns (broken link, want another course listed, etc.)


Lower Division

At Berkeley, to declare the Computer Science major, students need to take three core courses to declare the major – CS 61A, CS 61B, and CS 70. These courses are also required for all EECS majors.

Course Title Pre-Requisites Resources Available Notes
CS 61A Structure and Interpretation of Computer Programs N/A slides, readings, assignments, Fall 2018 lecture videos, virtual textbook called one of the Five Best CS Classes in the US by Bloomberg
CS 61B Data Structures CS 61A (or similar) slides, readings, assignments, lecture videos (public)
CS 70 Discrete Mathematics and Probability Theory sophomore mathematical maturity slides, readings, assignments

We also have several other lower-division courses, covering a wide variety of topics. Courses marked with an asterisk (*) are required to complete the CS/EECS majors.

Course Title Pre-Requisites Resources Available Notes
Data 8 The Foundations of Data Science N/A slides, readings, assignments, virtual textbook often used to prepare for CS 61A; required for the new Data Science major; WSJ article
CS 10 The Beauty and Joy of Computing N/A slides, readings, assignments often used to prepare for CS 61A
CS 61C* Great Ideas in Computer Architecture (Machine Structures) CS 61A, CS 61B slides, readings, some assignments some assignments are on edX
EE 16A* Designing Information Systems and Devices I N/A slides, readings, assignments 2/3 linear algebra, 1/3 circuits
EE 16B* Designing Information Systems and Devices II EE 16A, or another linear algebra course slides, readings, assignments linear algebra, and control theory

Upper Division and Graduate

Most of these courses are undergraduate. Graduate courses are numbered CS 2xx (some courses are cross-listed as both).

Course Title Pre-Requisites Resources Available Notes
Data 100 Principles and Techniques of Data Science Data 8, CS 61A (or equivalent programming knowledge), EE 16A (or equivalent linear algebra knowledge) slides, readings, assignments*, virtual textbook assignments are released to students via a Berkeley-only server, but are posted here once they are due
EECS 126 Probability and Random Processes CS 70 (or equivalent probability knowledge), basic linear algebra knowledge slides, readings, assignments
Prob 140 Probability for Data Science multivariate calculus, linear algebra, Data 8 slides, readings, virtual textbook not an EECS course, but satisfies part of the Data Science requirement, and is taken by many EECS students in lieu of EECS 126
CS 161 Computer Security CS 61B, CS 61C, CS 70 slides, readings, assignments
CS 162 Operating Systems and Systems Programming CS 61A, CS 61B, CS 61C, CS 70 slides, readings, assignments
CS 164 Programming Languages CS 61B, CS 61C slides, readings, assignments
CS 168 Internet Architecture and Protocols CS 61A, CS 61B, linear algebra or multivariable calculus slides, readings
CS 169 Software Engineering CS 61B, CS 61C, CS 70 slides, readings, assignments
CS 170 Efficient Algorithms and Intractable Problems CS 61B, CS 70 slides, readings, assignments
CS 182/282A Designing, Visualizing and Understanding Deep Neural Networks multivariable calculus, linear algebra, probability, machine learning, and programming (i.e Math 53, Math 54/EE 16A, CS 70, CS 189, CS 61B) slides, readings, assignments
CS 184/284A Computer Graphics and Imaging CS 61B (or equivalent data structures knowledge), C/C++ programming ability slides, readings, assignments* not all assignments are publicly available
CS 186 Database Systems CS 61B, CS 61C slides, readings, assignments, videos slides are available at the Fall 17 site
CS 188 Artificial Intelligence CS 61A or CS 61B, CS 70 slides, readings, assignments, videos the Fall 2018 site contains public lecture videos
CS 189/289A Machine Learning multivariable calculus (Math 53), linear algebra(Math 54 or EE16A and EE16B), and probability (EECS126, Stat 134, or Stat 140) (this doc written by a TA covers most of the pre-reqs). Optimization (EECS127) is very helpful coming in as well. slides, readings, assignments* Written assignments and lecture notes are available at the current link
CS 294-112 Deep Reinforcement Learning CS 189 (or equivalent ML course) slides, readings, assignments

DeCals

Berkeley's computer science curriculum provides a solid theoretical foundation for its students, and student-run courses through the DeCal (Democratizing Education at CAL) program allow students to build their practical skills in areas like web and mobile development and also can help prepare students for more advanced and mathematically abstract classes in a low-stress environment.

Course Pre-Requisites Resources Available Notes
iOS DeCal CS 61A and CS 61B (or equivalent OOP knowledge) slides, assignments
React DeCal CS61A and/or CS 61B
Virtual Reality DeCal N/A slides, assignments
Web Design DeCal N/A slides, assignments (requires creation of an account) live.wdd.io includes videos, but from 2014
Machine Learning DeCal multivariable calculus, linear algebra slides, assignments
Introduction to Mathematical Thinking DeCal N/A slides, readings, assignments, videos
UNIX System Administration DeCal N/A slides, assignments two tracks: beginner and advanced