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 [email protected]
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 |