A Quick Guide to Upper Division CS Classes at Berkeley
There are so many options for upper division CS classes at Berkeley, and it can definitely be intimidating when first trying to figure out which ones to take. We’ve summarized some common options, resources, and thoughts from AWE members in this one blog post!
How do most people go about choosing upper divs?
A lot of people tend to start with something like 170 or Data 100, then go into select courses in 160s / 180s. The path people take will differ depending on if there’s something specific they want to study (ie Machine Learning, Systems , or CS Theory). People also decide by asking others for their experiences, and choosing to take project-based classes with friends.
You can also refer to unofficial rankings — someone ranked the upper div workloads here:
164 (Hilfinger), 184, 150, 170 (LARGE variation across students), 169 (depends on how much you want to get out of it), 162, 189, 160, 186, 161 (non-crypto version), 176, 174, 172, 188, 168, 152
Keep in mind that this is one other student’s experience, but the experience varies for everyone!
You can always check out other opinions on our Slack or on the EECS 101 Piazza, but at the end of the day, make sure you go with what YOU are interested in, not what someone else tells you to take.
Upper Division CS Class Options
*recommended
CS170 — Efficient Algorithms
CS170 is one of the first CS upper-division courses that people recommend that you take. Contrary to what some might think, CS170 is not an extension of CS70, but instead an extension of CS61B. However, you might be able to gauge how much work or how difficult CS170 will be for you based on your experience with CS70 since it requires a rigorous, mathematical way of thinking and analyzing problems. The class itself has little coding and consists mainly of writing and explaining proofs. When you do take the class, make sure to take advantage of the linked notes and read them before and after lecture for good measure. A good class to pair with this is CS 188. This class is also commonly paired with CS 61C, but this is considerably difficult.
CS 188 — Introduction to Artificial Intelligence
CS 188 has interesting content, is usually described as fun, and its workload is much lighter compared to its upper-division counterparts such as 189. However, the downside is that the class is less industry-applicable, but still very intellectually interesting. Before you take it, be sure to review probability concepts! Because it is less intense, people like pairing 188 with heavier courses such as 170 and 162.
CS189 — Introduction to Machine Learning
If you want to go into machine learning, take CS189. In a way, CS189 is the more difficult counterpart of 188 — it is extremely time consuming, math-heavy, but also very relevant for industry and real-world machine learning applications. EE127 and CS189 overlap a bit (specifically in the first couple of weeks with linear programming and SVD/PCA), so some recommend taking 127 before or concurrently with 189.
CS 161 — Computer Security*
Again, this is a must-take course for future software engineers. You will learn the basics of computer security. It has a lighter workload than most upper-division CS courses, and many people pair it with CS186. Said to have manageable workload and extremely fair exams.
CS 162 — Operating Systems*
This class is one of the highest-workload computer science classes, but perhaps also one of the most useful and rewarding. This is another must-take for software engineer hopefuls. CS162 is extremely — and I don’t use this adverb lightly — project-heavy class, perhaps the most project-heavy class at Berkeley. The projects are all just the spec, and students have to build designs almost entirely from the ground up. All of the projects are group projects, so you will gain valuable experience collaborating with others and working with complex systems. This class will not just teach you algorithm design, but rather software design that can run and be integrated with real systems.
CS 186 Introduction to Database Systems*
Introduction to Database Systems is a solid class to take — it has a manageable workload, fair exams, and is very useful for systems design interviews. No matter what you decide to do in computer science, it’s good to know how a database system works. One thing to note is that the CS W186 version of this class is run completely online, but online lectures are set up in an easily digestible format.
Data 100
Data 100 is, all around, a very solid class. The course gives a very relevant introduction to multiple data science topics, such as transforming and analyzing data with Pandas and SQL, creating data visualizations, and utilizing machine learning algorithms. People who have taken the course have praised its relevance and real-world applicability. The Data 8 prerequisite previously was not strictly enforced, but it is now enforced every year after that, so beware and take Data 8 sooner rather than later if you’re planning to take this course.
Disclaimer: Opinions are from various member’s personal experiences, and may vary person to person & semester to semester. This is also just a brief summary of the most commonly taken upper divs, and is not comprehensive at all! If you have questions about a specific class, you can always CTRL + F in the AWE slack or ask in #awedvice!
Other Course Guide Resources
If you’re still unsure about classes, here are some resources for finding classes:
- BerkeleyTime (for enrollment %’s and class averages — helpful for class selection & determining which classes are safe to phase 1/2)
- classes.berkeley.edu (for official course descriptions, times, locations, and current open seats)
- guide.berkeley.edu (for seeing which semester classes have been offered)
- RateMyProfessor
- AWE Slack / Reddit — again, take all advice with a grain of salt!
- just ask friends :)
HKN Guide: https://hkn.eecs.berkeley.edu/courseguides (a helpful graph of all CS classes; sometimes, when you click on a course, there’s stuff written about when to take and sometimes comments on workload/take lighter courses!)
—
Follow AWE Berkeley on Medium for more!