Skip to content

CS61B: Data Structures and Algorithms


  • Offered by: UC Berkeley
  • Prerequisites: CS61A
  • Programming Languages: Java
  • Difficulty: 🌟🌟🌟
  • Class Hour: 60 hours

It is the second course of UC Berkeley's CS61 series. It mainly focuses on the design of data structures and algorithms as well as giving students the opportunity to be exposed to thousands of lines of engineering code and gain a preliminary understanding of software engineering through Java.

I took the version for 2018 Spring. Josh Hug, the instructor, generously made the autograder open-source. You can use gradescope invitation code published on the website for free and easily test your implementation.

All programming assignments in this course are done in Java. Students without Java experience don't have to worry. There will be detailed tutorials in the course from the configuration of IDEA to the core syntax and features of Java.

The quality of homework in this class is also unparalleled. The 14 labs will allow you to implement most of the data structures mentioned in the class by yourself, and the 10 homework will allow you to use data structures and algorithms to solve practical problems. In addition, there are 3 projects that give you the opportunity to be exposed to thousands of lines of engineering code and enhance your Java skills in practice.


Course Resources

  • Course Website: spring2024, fall2023, spring2023, spring2018
  • Recordings: refer to the course website
  • Textbook: None
  • Assignments: Slightly different every year. In the spring semester of 2018, there are 14 Labs, 10 Homework and 3 Projects. Please refer to the course website for specific requirements.

Personal resources

All resources and homework implementations used by @PKUFlyingPig in this course are summarized in PKUFlyingPig/CS61B - GitHub.