Georgia Tech OMSCS

Current Courses (Summer 2024)

  • None! Taking the summer off.

Previous Courses

Spring 2024

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

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

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