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.
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)!
AI Transparency #
I took these courses before ChatGPT and other LLM’s took off, so they are written entirely by hand. All mistakes are of my own accord; though you should open an issue if you do find anything fishy.
I used LLM assistance (specifically Claude Opus 4.7) to help with web design, formatting, and light editing to transform my original Markdown notes into the friendlier form you see on this site. In an effort to be transparent about what parts are human-written vs. AI-generated, I logged every content-touching LLM edit to AGENT_CHANGELOG.md.
I also used LLM assistance to transcribe several courses for which I had well-organized, handwritten notes. For each of those classes, I have attached the original notes in addition to the LLM outputs for ease of reading.
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.
- CS 61B: Data Structures and Algorithms: full guide available for all course content, based on the Spring 2020 offering
- CS 70: Discrete Math: full guide available for discrete math; partial index available for probability. Based on the Fall 2020 offering
- CS 186: Intro to Databases: full guide available for all topics except NoSQL and FD’s/Normalization. Based on the Fall 2022 offering
Curated Notes #
These are reasonably high-quality notes that I’ve spent additional time editing, curating, and re-organizing.
- CS 162: Operating Systems: course notes available for most topics. Based on the Fall 2021 offering
- CS 168: Intro to the Internet: course notes available for most topics. Based on the Fall 2022 offering
- Data 102: Data, Inference, Decisions: course notes available for most topics. Based on the Fall 2022 offering
- Astronomy C10: Introduction to General Astronomy: course notes available for most topics. Based on the Spring 2022 offering
Incomplete Notes #
These are notes that I’ve published as-is, and are at various levels of completeness. I make no guarantees on correctness for these notes, and intend to polish them over a long period of time.
- CS 61C: Computer Architecture: nearly complete but unedited notes.
- CS 161: Computer Security: nearly complete but unedited notes.
- CS 170: Efficient Algorithms and Intractable Problems: nearly complete but unedited notes.
- CS 184: Computer Graphics: somewhat incomplete and unedited notes.
- CS 188: Artificial Intelligence: nearly complete but unedited notes.
- Psych 124: The Evolution of Human Behavior: handwritten notes available with OCR transcription.
- Psych 131/140: Developmental Psychology: fairly incomplete, fused notes from two separate developmental psychology courses.
- Psych 143: Language Acquisition: an extremely sparse introductory note is available.
- Psych 150: Personality Psychology: fairly incomplete notes available.
- Philosophy 5: Science and Human Understanding: handwritten notes available with OCR transcription.
- Anthro 1: Introduction to Biological Anthropology: handwritten notes available with OCR transcription.
- EE 16B: Circuits and Devices: handwritten notes available with no OCR transcription (too math heavy).
Other #
- CS 61A: Structure and Interpretation of Computer Programs: resource index and meta-guide available. No course notes.
- MCB C61: Brain, Mind, and Behavior: textbook companion PDF available. No course notes.
- Data 100: Principles and Techniques of Data Science: sparse cheat sheet available. No course notes.
- Math 54: Linear Algebra and Differential Equations: final-exam study guide PDF available. No course notes.
Missing Notes #
This is a list of courses I’ve taken and do not have publicly available notes for. You can contact me if you’d like to discuss these courses.
- Sociology 3AC: notes are incomplete, and the risk of the material being taken out of context outweights me publishing the sparse content I do have available at the moment. This course is on the top of my list to re-review and release in the future.
- Math 54: notes are lost to time due to a failed backup 😭 I had these on OneNote, but the notebook is now missing. If I find it in an old backup drive somewhere I’ll post them.
- Psychology 1: currently in a physical notebook. If I have the opportunity to, I’ll dig it up and scan the pages in– I recall spending a lot of time and care on these notes, and they mean a lot to me since this was the class that got me to major in psychology in the first place.
- Data 8/CS61A: both taken during my first semester at Berkeley before I figured out how to take decent notes, so I don’t have anything worth publishing.
- Stat/Data 140: the textbook and assignments are so good that I didn’t feel the need to write many notes other than solving the provided homework/discussion problems.
- Psych 101: I didn’t take very good notes during this class, and it seems like everyone uses Python instead of R these days anyways, so it’s very unlikely that I will revisit this.
- Psych 114: Although this was one of my favorite classes, I took notes over the provided slide deck PDF’s. I may publish them eventually if I get around to asking for (and receiving) permission, since this would be up to the professor’s discretion.
- ISF 100J: this class was at 8am or something during my last semester of senior year, and had a no-laptop policy. I was nowhere near awake enough to take notes for it as a result, though the content was pretty interesting (tracing back the history of computers to when it was a profession rather than an object).
- Music 158A: this class was too hands-on to take any meaningful notes. But I do have a cool final project to show from it!
- Psych C126/127: taken during the ’everything is a mess’ semester immediately after covid (fall 2020) so I have really sparse notes for these.
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.
- 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.
- 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.
- 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.
- 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.