- Object oriented programming basics
- Abstract data types
- Asymptotics and runtime analysis
- Sorting algorithms
- Search algorithms
- And some more miscellaneous topics thrown in!
This guide is written to be as easy to follow and digestible as possible😀I've included lots of diagrams, practice problems, and more intuitive explanations instead of the more straightforward approach most textbooks use. This isn't a replacement for lectures and other course content. You probably need to look at those first, and come here if something isn't sticking!
Mostly me; making unnecessarily detailed guides is my goto method of making sure I understand everything😁But you are welcome to use it as well for reviewing for 61B exams, touching up on data structures knowledge, or whatever you want!
Again, I will emphasize that this isn't a textbook. While I try to be as comprehensive as possible, I'm sure I missed plenty of important concepts or assume you know others. I don't have an army of peer reviewers and guinea pigs to test-read the thing, so it's also not guaranteed that everything is 100% accurate. Please open an issue if you think something's wrong!
There are also plenty of practice problems to try out! Here's an non-exhaustive list of pages with those if you are mostly interested in them and not the conceptual content.
The pages that could be most improved (in no particular order) are Union Find (Disjoint Sets), Stacks and Queues, Linked Lists, Sets, Sorting, Searching, Binary Search, Shortest Paths, and Exceptions. Feel free to add whatever content you like (explanations, examples, practice problems, memes...) to these!
Additionally, there are plenty of topics (Regex, Testing, Files/Scanners, Ranges, GUI just to name a few) that aren't currently covered in this guide. If you want to add one of these topics, please create an issue first but it will almost certainly be approved.