#186 overall
CS61B Data Structures
UC Berkeley
2 recommenders · 2 threads · recommended in 2 years, 2023–2025 · score 2.4
CS61B is UC Berkeley's second-semester data structures course, covering abstraction, linked and tree structures, hashing, graphs, and sorting, with substantial hands-on projects such as building a simplified git. Commenters point to its public lecture videos and course site.
Commenters call it a strong, theory-plus-practice data structures course where lectures on red-black trees and Dijkstra's are followed by implementing them in lab.
Algorithms & Data Structuresintermediatefreevideo lectures#data structures#algorithms#graphs#trees#berkeley
Recommendations by year
20062026
Valid criticism. Think for most students, 61A has too steep of a learning curve for an introductory class. For people without any programming experience, it’s a bit too much too fast and with a class size of 2000+, you struggle for resources.
For those with prior experience, it feels like unnecessary training wheels. You learn a little bit of Python, SQL, and Scheme. You have to do environment diagrams (What Would Python Do) on paper, and learn how to use a debugger. Projects and tests have mad-libs style fill in the skeleton code.
In my experience, 61A is a tasting menu of computer science: you take it for the experience, and leave hungry and confused – but excited.
OP, you really missed a lot by testing out. This class is half theory, half learn by doing. For example, you learn about red-black trees or Dijkstra's in lecture and then go to lab and implement it.
I know theory and algorithms seem bland at first, but look at the applications. https://www.cs.princeton.edu/~wayne/kleinberg-tardos/
Favorite aspect of this class was designing and then writing a smaller version of git. You had to write a design spec that was checked off, and then your implementation had to pass a test suite.
If that’s not software development, then I don’t know what it is.
61C was not one of my favorite classes because of how low level it is (compilers, RISC-V, concurrency, etc.). But if you stopped taking classes before upper division, you missed out on a whole gamut of “practical” classes like algorithms (CS170) and operating systems (CS162).
I would do (and have done) CS50X online https://cs50.harvard.edu/x/ do all the problem sets and projects by hand using no AI to write any code. The lectures and tutorials are outstanding. By the time you're done you'll be ready to build whatever and research what you need to learn to build most things
If you need to go deeper, then do https://cs50.harvard.edu/web/ as well.
If you need to really nail DS/ Algorithms do the courses from Berkley:
https://cs61a.org/ (if you did CS50x already you can skip)
https://sp25.datastructur.es/ (CS61B)
https://cs61c.org/fa25/ (Optional/advanced stuff)
I did not appreciate it at the time but CS 61 abc absolutely transformed by foundational understanding of computer science and the concepts they push are absolutely and non-negotiably important for someone to learn.
My only recommendation is to learn programming in a more useful and productive language like C++, as the thing you do not want to do in CS61A is to simultaneously learn to program and learn the concepts in those courses. The right way to think about it is those courses are trying to make you go “ohh that’s how things actually work”.
I think I might go with this recommendation, maybe watch the CS61B videos as and when necessary.
I did the intro course from the sedgewick and wayne from coursera along with their book and loved it. Would recommend it to anyone who likes a decent challenge while learning. The book is pretty dense.