* indicates a course worth taking, in my humble opinion.

! indicates a course that was exceptionally hard or time consuming for me.

Spring 2020

  • 15-745 Optimizing Compilers for Modern Architectures
    • This is a course on writing optimization passes more than a raw compiler. It is appropriate to take this course without having taken 15-411 Compiler Design.
  • * 99-361 Learning About Learning (IDeATe portal course for Learning Design)

Fall 2019

  • TA 15-213
  • 15-440 Distributed Systems
    • As a second systems course, it was not very hard. I also had a very good partner.
  • 15-322 Introduction to Computer Music
    • Requires programming in a suboptimal programming language, would not recommend.
  • 57-173 Survey of Western Music History

Spring 2019

  • 15-400 Research Practicum in Computer Science
    • The check-in meetings aren’t that bad. Though I do not recommend taking this course due to the final paper, as oftentimes you will not have enough results to write a full paper.
  • 15-451 Algorithm Design and Analysis
    • If David Woodruff is teaching it, there will be some really interesting algorithms and data structures at the end.
  • 15-259 Probability and Computing
    • Very heavy on weekly problem sets, reminds one of high school
  • 51-262 Communication Design Fundamentals
    • A little light on formal instruction, which I am not sure if is a good idea for beginners.

Fall 2018

  • TA 15-418
  • 15-414 Bug Catching: Automated Program Verification
  • 15-300 Research and Innovation in Computer Science
  • 57-152 Harmony I
  • 54-508 Theatrical Sound System Design

Spring 2018

  • TA 15-455
  • * 15-418 Parallel Computer Architecture and Programming
  • 15-210 Parallel and Sequential Data Structures and Algorithms
  • 57-338 Sound Editing and Mastering
  • * 57-438 Multitrack Recording

Fall 2017

  • 15-213 Introduction to Computer Systems
  • ! 15-855 Graduate Computation Complexity Theory
  • * 02-261 Quantative Cell and Molecular Biology Lab
  • 57-337 Sound Recording
  • 57-329 Beginning Piano for Minors

Spring 2017

  • * ! 21-269 Vector Analysis
    • Enough math for all of college.
  • * 15-251 Great Ideas in Theoretical Computer Science
  • * 15-150 Principles of Functional Programming
    • Functional programming is the cleanest way to do most things in software engineering, you will use the principles learned here many times later on.
  • 54-666 Production Audio
  • ! 80-221 Philosophy of Social Science

Fall 2016

  • 15-151 Mathematical Foundations for Computer Science
  • 15-122 Principles of Imperative Programming
  • * 21-242 Matrix Theory
  • * 79-233 US and the Middle East since 1945
    • Provides a lot of reading and background on US foreign intervention both in the Middle East and beyond, allowing one to form their own perspective
  • 76-101 Interpretation and Argument