2020 was rough, huh? Like everyone else during the pandemic, I felt stressed, worried, and trapped in my house. Somewhere amidst that chaos I decided to power through my degree and complete Georgia Tech’s Online Master of Science in Computer Science Program (OMSCS) before the pandemic was over. I took more classes in 2020 than previous years and had some extra-sleepless nights, yet who was sleeping well last year anyways? Admittedly, my GPA did dip below my original goal to a 3.4, but I did not care when I submitted my last assignment with my sore, vaccinated arm.

My experience with OMSCS was all positive. It was challenging and often fun. While I had concerns that an online program would not be taken seriously by employers, by the end of 2020 all programs were online, ready or not. I got a promotion shortly after completing the degree and the low price didn’t require new student loans.

It took me 3.5 years to finish and during that time I worked a full-time job and had two kids. However, I didn’t do much else and I’m still trying to relearn what people do in their free time. Here are my hot tips for working this program into your life:

  • Use omscentral.com for class selection – This site has class reviews by former students. Don’t focus too much on the difficulty rating and instead read the comments for details on class expectations. Many students are nontraditional and are more comfortable with python than C and might not start the program with a foundation in computer architecture. So classes that would be easy for a traditional student get a higher difficulty rating. I used this website to select classes without group projects.
  • Mobilize! – I had everything set up so I could read papers and watch videos on my phone or iPad. Does the baby think midnight is playtime? Might as well watch a few videos.
  • Prep at the start of the semester – I had Staples bind together the class PowerPoints/notes/Pratice_Exams at the start of the semester and carried this with me around the house and when I left the house. It is much easier to study if the materials are at your fingertips. I downloaded/bookmarked readings so I could pull them up on any of my devices without searching.
  • Start coding assignments the day they are released – It doesn’t matter if you won’t be able to code until the week after. Start by reading/rereading the requirements. By the time your laptop is in your lap you should have a decent mental model of what you need to do and in what order.
  • Take physical notes – Sure, you can study from your electronic materials. Personally, I had more success creating flashcards and carrying those around with me to study. I learned the material in less time. Plus, my toddler would help by doodling all over them.
  • Survive the first 2 weeks – Most classes are heavily front-loaded and then ease up. The first few weeks of setting up your environment and learning the basics can be overwhelming. I usually had a breakdown around this time where I believed that I was too stupid to finish the class and started to wonder how I was smart enough to tie my shoes, but that feeling passes.

Below are notes on the classes I took, ordered by how much I liked them.

CS 6290: High Performance Computer Architecture – My favorite class! It was time-consuming and challenging, but I left this class with a deep and lasting understanding of the theory it introduced. Understanding the limitations of hardware is essential for any CS job.

CSE 6220: Intro to High-Performance ComputingCon: This class was heavily curved, and I disliked spending 4 months worried I was failing. Pro: parallel computing is the standard not the exception. The content has been valuable for my job.

CS 6340: Software Analysis – A survey course introducing many different software analysis tools. It is well paired with the HPC classes as it further discusses how to improve software performance.

CS 6035: Introduction to Information Security – A survey course on many security topics. The assignments were fun. Topics applied directly to some web development issues I was working through at the time.

CS 6262: Network Security – Same as above, slightly different security topics.

CS 6210: Advanced Operating Systems – I disliked the theory topics with the exception of distributed computing. The assignments were intense and enjoyable.

CS 6238: Secure Computer Systems – This class’s topics overlapped with Advanced Operating Systems and Introduction to Information Security.

CS 6263: Intro to Cyber Physical Systems Security – Very different from any CS class I’ve taken in the past. We focused on physical systems like those in factories and programmed physical instruments and sensors.

CS 7646: Machine Learning for Trading – Based on reddit and https://omscentral.com/, it is the most beloved class. For me, it was a good way to discover that machine learning isn’t my future.

CS 6515: Intro to Graduate Algorithms – Almost everyone must take this class and the standards are high. Many students need to take it multiple times. Don’t let that discourage you. The key is to do every assigned practice problem. The tests do not deviate far from the practice problems. Did I say practice problems? Practice problems.