Courses
* 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