Georgia Tech OMSCS

Upcoming Courses (Spring 2025)

Previous Courses

Fall 2024

CS 6290 - High Performance Computer Architecture

I dropped this class after taking the midterm.

This is one of the worst CS classes I’ve taken either at Georgia Tech or during my undergrad. The professor is clearly very passionate about the topic which I really do appreciate. The class consists of four projects and two exams (a midterm and final). The projects involve running commands in a VM or Docker container and filling in blanks in a Word document. The midterm was a challenge in running algorithms on paper, manipulating equations/knowing trivia, and testing your vague understanding of concepts. The lectures are very high-quality, but also extremely long and repetitive. It pains me to have such a negative opinion of the class because, again, the professor clearly cares and presented the topics in an approachable manner.

Nowhere in this class will you write a line of code. All you’ll do is understand concepts that are invisible to you as a programmer. This can be quite valuable if you’re optimizing programs, but unfortunately this class doesn’t cover how one can best exploit or debug performance issues that occur due to computer architecture.

I cannot recommend this class to anyone. I’d recommend the compilers course if you’re interested in learned about low-level programming or watching the lectures for this course online without taking the class. You might like this class if you’re okay with jumping through hoops to prove some proxy of learning, but you won’t work on any interesting projects or even get useful feedback by taking the course.

  • Difficulty: 3/5
  • Workload: 2/5
  • Rating: 1/5

Spring 2024

CS 8803 - Compilers

This is one of the best courses I’ve ever taken. I wrote a compiler for the Tiger language from scratch, minus the frontend being generated by ANTLR. The textbook was dense but very interesting. The language spec was well-defined and the course staff gave excellent feedback.

The language that was implemented felt close to a real language. The Tiger code is compiled to IR which is then compiled to MIPS assembly. The language supports user-defined types, arrays, float, ints, scoping, conditions, and common operators.

In the end I wrote about 9,000 lines of code for my compiler, but unfortunately I can’t share it publicly.

  • Difficulty: 4/5
  • Workload: 5/5
  • Rating: 5/5

CS 6240 - Software Analysis

Software Analysis was an interesting class that described how software can be statically and dynamically analyzed to detect defects. The class went over a variety of testing techniques implemented in C++, Java, and TypeScript.

Overall I thought the class was interesting, but not very challenging. A lot of the difficulty came from learning the LLVM APIs rather than the concepts themselves actually being difficult. I found the dataflow analysis section to be particularly interesting, though. I think the class paired well with compilers considering the lighter workload and the minor overlap of some concepts.

  • Difficulty: 2/5
  • Workload: 2/5
  • Rating: 3/5

Fall 2023

CS 6250 - Computer Networks

I took a networking course in undergrad, so I didn’t find this course very challenging. I did hope we’d get into the nitty-gritty of networking, subnets, networking hardware/protocols.

We learned the obvious stuff like the OSI model, routing algorithms, and so on. The most interesting part of this class was learning about BGP and how datacenters operate.

  • Difficulty: 2/5
  • Workload: 2/5
  • Rating: 3/5

CS 6457 - Video Game Design

This class was incredibly easy, but I think a large part of that is because I was lucky enough to have a cohesive team for the group project.

We implemented a video game in Unity. I did a similar project for my capstone in undergrad, so I already had an idea of how to organize the team, divide up work, and make sure we could all work together in an effective manner.

I think this class tested my project management, organization, and leadership skills more than it did my technical skills. I did fine Unity quite interesting, though, since I had written a game engine in the past, but I hadn’t ever used a commercial engine before.

  • Difficulty: 1/5
  • Workload: 1/5
  • Rating: 1/5

Summer 2023

CS 8803 - Quantum Computing (Dropped)

I was excited about this class, but I was too busy leading a project at work to keep up with it, so I dropped a couple of weeks in. I hope I can take it in the future.

Spring 2023

CS 7210 - Distributed Computing

Another incredible class. Definitely one of my favorites due to the challenge and the content. Overall I think this course is perfect and gave me a good understanding of distributed system primitives. I already had experience with distributed systems from my time at AWS, but I didn’t have an understanding of the lower-level mechanisms and protocols that allow distributed systems to function.

In this class we implemented a key-value store using traditional techniques like main/replicas, and then scaling that approach to use Paxos in a distributed multi-node cluster.

  • Difficulty: 4/5
  • Workload: 4/5
  • Rating: 5/5

Fall 2022

CS 6210 - Advanced Operating Systems

This class really disappointed me. I was hoping to learn the internals of operating systems, but it seems that the professor really wanted to teach a distributed systems class. The difficult of the projects was entirely related to strange choice for the assignments. The projects didn’t really test my knowledge about operating systems.

The one cool thing about this class was that the final project was implementing MapReduce, which was a fun exercise.

  • Difficulty: 3/5
  • Workload: 3/5
  • Rating: 3/5