Online Masters in Computer Science at Georgia Tech

Note: This post was written in 2021 and is no longer actively updated. It reflects my experience with the OMSCS program at that time.


This is a post about my experience with Georgia Institute of Technology's Online Master in Computer Science (OMSCS) program.

Why OMSCS?

Once I finished my undergraduate degree, I found that I was lacking knowledge in certain areas I was interested in. This included machine learning, operating systems, and even fun areas like video game design. Considering that Georgia Tech is a top 10 computer science program, it became a very tempting option to structured learning that I could do completely online. It can often be very difficult to keep oneself motivated to learn new things after college and having a program like this may be just the thing I needed. After I applied and got in, I realized my current employer would also reimburse my tuition. All of a sudden, this program became a no-brainer with very few strings attached. As long as I have free time after work then this program could help fill it in with some productivity. I would also like to throw in the caveat that I am not 100% committed to finishing this program either. Much to my parent's dismay, I do find this to be an excellent opportunity but considering the technology industry is filled with such incredible opportunities -- if I am given an offer I cannot refuse I may end up taking a break or even quit entirely. If this occurs, I will most certainly leave an update below. I hope anyone reading this finds this helpful.

Machine Learning for Trading

My initial thoughts after just wrapping up this course are that it is a pretty easy class but the level of work required may surprise some people. I often spent a large chunk of my weekend on this class. The main thing that could sneak up on you are the project write ups. The code itself can be pretty straightforward if you follow all the guidelines, however the project reports (although not difficult) will take about the same amount of time as the coding portion. Besides the workload, I found the class to be really interesting. You definitely get a good sense of how machine learning can be applied to trading decisions and you also get to explore many financial indicators that are often used to analyze trends in the stock market.

Overall, I feel there is a lot more to learn, however this was a great introduction to the topic and our final project was a great way to tie together everything that you learn.

Graduate Introduction to Operating Systems

This is the class I chose as my initial introduction to the program. It definitely isn't the easiest but from my research, it is very well structured and easy to follow if the time is put in. Not to mention, my interest in operating systems is definitely peaked and I may look into taking the advanced class in the future.

Update - I ended up dropping this class after a few weeks in order to better prepare the next time around. The time commitment for this program in addition to work requires careful timing. One thing I learned is to start the projects immediately and to make use of the Slack channel. I think I may start with an easier class in the future, just to be safe. However, the content for this course was very interesting and I plan on coming back to it in the near future.

Software Development Process

Overall, I though this class taught some really important concepts about software development. Being that I have already been in the industry for 3+ years by the time I took this class, I found it less useful as I probably would have when I first started working. That being said, I still think it was worth taking as it really explained the "why" of software development instead of just the "how" that I had already picked up through work experience. It also provided some foundational knowledge on proper software testing and different development methodologies. Although, these things could have probably been picked up with a little bit of individual research, I think the class is a good introductory level class to the program and was ultimately valuable. I do feel the course didn't go deep enough into some topics but I do think this is a very broad subject which could be the reason. However, the Android application group project did introduce me to a new tech stack and I found that really enjoyable. If you are considering taking this class I would recommend it unless you already have 5+ years working as a software engineer as some of the content may be redundant.

Video Game Design

This was definitely one of the most fun classes I have taken in the program. There are 4 individual projects that build on each other, and this really gets you familiar to the Unity environment and how to use the core features to build a simple video game for your team project. Overall, It was a really great experience and having the team project really helped you understand the dynamics of multiple engineers and product managers working on a single video game (although it is similar to regular software development, it definitely has its own unique challenges.) The class offered a great glimpse at game mechanics, physics, animation, and core principles to making any game enjoyable. I also really enjoyed the dive into AI characters and how to make them convincing and effective. Overall, I thoroughly enjoyed this class and would highly recommend it to others in the program. It was refreshing to take a class that required a little more creativity.

Machine Learning

This class provided a comprehensive foundation in machine learning algorithms and techniques. The course covered supervised and unsupervised learning, neural networks, and various optimization methods. The assignments were challenging but rewarding, requiring both theoretical understanding and practical implementation. The workload was substantial—expect to spend significant time on projects that involve coding algorithms from scratch rather than just using libraries. This hands-on approach deepened my understanding of how these algorithms actually work under the hood. If you're interested in AI and have a solid math background, this is a must-take class in the program.

Computer Animation

Computer Animation was a fascinating deep dive into the mathematics and algorithms behind character movement and physics simulation. The course covered kinematics, dynamics, motion capture, and procedural animation techniques. Projects involved implementing animation systems that could handle realistic movement and collision detection. What I found particularly interesting was learning about the tradeoffs between physical accuracy and computational efficiency—a theme that runs through all computer graphics work. The class requires comfort with linear algebra and calculus, but seeing your implementations come to life makes the effort worthwhile. Highly recommended for anyone interested in graphics, game development, or simulation.

Computer Graphics

This class was a thorough introduction to the fundamentals of computer graphics. We covered rendering pipelines, ray tracing, texture mapping, and shader programming. The projects were technically demanding but incredibly satisfying—there's something special about implementing a ray tracer and watching it render your first 3D scene. The workload is heavy, and you'll need strong C++ skills and a solid grasp of linear algebra. The professor does an excellent job explaining complex concepts, and the course materials are top-notch. If you're interested in graphics programming, game development, or just want to understand how images are rendered on screen, this is an essential course.

Introduction to Quantum Computing

Introduction to Quantum Computing was eye-opening. The course covered quantum mechanics basics, quantum gates, quantum algorithms (including Shor's and Grover's algorithms), and quantum error correction. Coming from a classical computing background, the concepts felt alien at first—quantum superposition and entanglement require a fundamentally different way of thinking about computation. The math is heavy (linear algebra, complex numbers) but the course builds up gradually. Projects involved working with quantum simulation frameworks to implement basic quantum circuits and algorithms. This field is still emerging, and taking this class gave me a glimpse into what might be the future of computing. Recommended if you're curious about cutting-edge CS and aren't afraid of challenging math.