ben's notes

Welcome!

Hi there! Seems like you stumbled upon my archive of course notes!

Over the years, I’ve found that the most effective way for me to learn and process information was to teach it. Since this isn’t always practical or possible, I’ve ended up creating these production-quality notes as an alternative.

Although many courses at Berkeley (especially CS courses) have excellent materials and often already have a full set of course notes, I’ve found that many students- myself included- often struggle to process information when it’s that dense. My hope is that these notes can serve as a secondary, lighter perspective on things.

Here, you’ll find a wide variety of content from basic concepts, practice problems, and example algorithm walkthroughs. Since they were all made at various times over 4 years, the quality and style may be wildly different from page to page. I intend to go through these notes and resolve any inconsistencies over (a long period of) time.

I took these courses before ChatGPT and other LLM’s took off, so they are written entirely by hand. In hopes of preserving the spirit of self-learning, I’ve made best efforts to personally type out 100% of additional content and edits made in the post-LLM era. All mistakes are of my own accord; though you should contact me if you do find anything fishy.

If you made your own notes/resources for any Berkeley course you’ve taken would like me to put a link to them here, let me know (contributing)!

Index #

Here are the courses that I currently offer notes for, and their statuses.

Full Course Guides #

The highest-quality, most complete sets of course notes.

Curated Notes #

These are reasonably high-quality notes that I’ve spent additional time editing, curating, and re-organizing.

Other #

Basic Principles #

Here are some principles that I try to follow when creating notes. I’ll probably make a blog post at some point to go over this in more detail, but for now this outline should be enough to show what I hope to accomplish.

  1. Content is more fun when it’s important: Answer the question “why should I care about this?” before actually spending time on whatever topic is at hand. If answering it is a struggle, then it’s probably not important enough to need to remember in the future.
  2. Make it interactive: It’s way easier to concentrate on something if it’s directly applicable to a problem, question, or situation at hand. Interject conceptual notes with illustrated examples and practice problems whenever possible.
  3. Notes are rarely self-contained: It’s impossible to fully cover most topics on a single page, and topics may be deeply related to content from other courses. Link to external resources or further learning opportunities whenever possible, just in case it becomes necessary to research the topic further in the future.
  4. Type a lot of stuff really fast: For this verbose style of note-taking to be effective for me, I need to be able to completely put down thoughts on the page before I lose them. I then combine, cut, and re-synthesize the notes I recorded live. Although making a transcription could achieve a similar initial output, I find this process much more engaging and saves a great deal of time trying to distill the ‘why’ factor out of whatever I’m learning.

About this website #

My notes are hosted on GitHub Pages and are built on my custom Amethyst theme for Hugo. You can view the source code here.

All of the notes here are formatted in Markdown, and the majority was created using Obsidian. These notes are a small fraction of my Obsidian vault; I intend to publish other small bits of it in various places such as my blog or the Garden.

If you’re interested in contributing, take a look at the contribution guide.

Contact me #

Want to chat with me about these notes, or something else? You can find my contact info here.