This repo contains my self-study attempt to UC Berkeley CS61B, whcih is the second course in CS61 series, that teaches Data Structures and Algorithms.
I am taking the 2021 version of the course, because they made the autograder open sourced, just sign up with your name, UC Berkeley university, and the code P5WVGW.
The course uses Java to teach, and is composed of:
- 40 lectures
- 8 Labs
- 4 Projects
- 2 Midterms
- Final Exam
Data Structures and Algorithms are a vital subject to elevate your programming skills, and allow you to write more complex things.
The difference between a bad programmer and a good one is whether [the programmer] considers code or data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships. - Linus Torvalds (Creator of Linux)
I am not much of a notes guy, that's why I prefer getting your hands dirty courses. But I stumbled upon this beautiful UCB courses notes called Ben's Notes, I haven't read them yet but I think they will be a great asset when I start CS70: Discrete Math
Some of the taught data structures (like disjoint sets) are not implemented in lectures neither in a lab as an assignment, my implementation to them and other Data Structures can be found here
- Lab 1 Setup: Setting Up Your Computer
- Lab 2: JUnit Tests and Debugging
- Lab 3: Timing Tests and Randomized Comparison Tests
- Lab 4: Git and Debugging
- Lab 5: Project 1 Peer Code Review (no peers)
- Lab 6: Getting Started on Project 2
- Lab 7: BSTMap
- Lab 8: HashMap
- Project 0: 2048 Game
- Project 1: Data Structures
- Project 1 Extra Credit: Autograding
- Project 2: Gitlet
- Project 3: CS61BYoW