Coursework
This is not an exhaustive list and I’ve only listed the ones I want to comment on. Most of the courses are the ones that I personally learned a lot from and value looking back. I was inspired to write about this stuff after reading a similar post by Nick, one of my classmates.
Current Coursework (Spring 2025): I listed them here in case you were curious. No insights yet, I’m still taking them.
STAT650: Applied Stochastic Processes: This is my second time taking a grad probability class. Mostly taking it because probability is fun. This one should be less abstract than the previous one I took (ENEE620).
CMSC828C: Statistical Pattern Recognition: Graduate Machine Learning. I’m taking this over the undergrad treatment mostly because I wanted to learn a lot more and I wanted a more mathematical treatment.
CMSC424: Database Design: A course on Databases, should help my career.
MATH424: Introduction to Mathematical Finance: Trying out quantitative finance.
Previous Coursework:
CMSC451: Design and Analysis of Algorithms (A+): An advanced upper level version of the algorithms course at UMD. Highly recommend taking it with Laxman. Lots of interesting content (Network Flow, Parallelism, etc.). If you didn’t like CMSC351, don’t automatically assume you won’t like this one. While both are theoretical, 351 in comparision is (in my experience) somewhat dull and routine. Much of 351 is (rather tediously) analyzing sorting algorithms. 451 goes beyond all that and there’s a good chance you’ll find it interesting.
CMSC320: Introduction to Data Science (A): If you’re interested in the field like I am, you probably have some exposure to statistics/data science, in which case you should expect to do pretty well and shouldn’t need to spend much time (if any) studying. The second half is Machine Learning so it gets pretty interesting.
ENEE620: Random Processes in Communication & Control (B): Graduate Level Probability and Random Processes (Measure-Theoretic Treatment). I found this one to be the most conceptually challenging course yet. The amount of stuff you cover here is a lot and I was pretty intimidated. I wish I wasn’t and just read the references. It was actually not too hard to score in, I did well on the final but lost a good portion of my grade because of a couple homeworks. I highly recommend taking this course with Dr. Barg (course website). Dr. Barg uses Durrett, Billingsely, Shiryaev and more. This course is densely packed with cool stuff (Martingales, Markov Chains, Brownian Motion, etc.).
MATH299B (1 credit): Putnam Express (C): I took the course because I’d never done competition math before and wanted some exposure. Grading was based entirely on participation. Halfway into the semester I realized I didn’t have time to do the problems we were supposed to do at home and present justice and that I had more important things to do. I still didn’t expect the C (RIP GPA). Dr. Ebrahimian is a fantastic instructor though, and clearly passionate about math competitions.
STAT410, Introduction to Probability Theory (A-): This course depends entirely on the Professor. I wanted to learn a lot from it and got extremely lucky with Prof. Yu Gu. His offering is somewhat more serious and challenging compared to alternative offerings and he will tell you about it in the first class. Basically harder homeworks and exams. He also covers random vectors (gaussian) and I don’t think most professors do that.
CMSC330, Organization of Programming Languages (A-): Theory of Programming Languages. Probably the best CS course I’ve taken at UMD. So good. Took it when Cliff was co-teaching with Anwar. OCaml code is beautiful and you might even be turned off by Python/Java and the like after this course.
CMSC250, Discrete Structures (A+): This course also varies from Instructor to Instructor. I took it with Maksym Morawski. He enjoys/prides himself on giving exams that really test your understanding. What this translates to is hard/long exams with questions that are fun and challenging. Take it with him if you want a somewhat unorthodox Instructor. People might tell you this class is useless but I found that (especially if you haven’t seen it before) the mental rewiring discrete math problems give you is extremely useful for Algorithms and Probability. In general, problem solving experience is good and this class gives everyone a chance to gain some.
CMSC132, Object-Oriented Programming II (A): Standard Introductory course. Fawzi really elevated my learning experience. Extremely valuable course too.
ECON200, Microeconomics (A) Probably my favorite non-math/cs course. Lots of fun concepts (Game Theory, Externalities).