I got out - OMSCS Reflection

A month or two ago, my therapist asked me, “So, now that you’re finishing your graduate degree - what does that change about your life?” I gave some answers about how I hope it will open doors for me in the future. But the truth is, I’m not sure exactly. At least, not immediately and not directly. I don’t think that’s unique - OMSCS graduates have a habit of saying “I got out” rather than “I graduated!” I figured a reflection was the right place to start. Plus, maybe someone just starting their journey through Georgia Tech’s Online Master of Computer Science (OMSCS) program will stumble onto this and find it useful.

I’ll go course by course and mention which ones I enjoyed more or less, which took the most time, etc. I’ll try to recall notable or useful anecdotes. Perhaps, by the end, I’ll have come up with a useful takeaway or two.

Before the program

After graduating from undergrad, I recall feeling directionless. This was still in the aftermath of the pandemic, and I was working a job that was almost entirely remote. I felt like I couldn’t leave home during the week and had no reason to on the weekend. Each year, I pick a Yearly Theme: 2023 was the Year of Rediscovery. I wanted to revisit things that had been meaningful to me earlier in my life, and see if they brought me fulfillment again now. One of those things was academics. I’ve always gotten satisfaction from learning. So, having planned and applied in 2022, I began my Master of Computer Science that year.

My job, at the time, had me using a lot of the skills that underpin data science - data visualization, data engineering, statistical analysis - but not often building complex machine learning models. That seemed like the pinnacle of data science to me. So, I selected my specialization: Machine Learning.

Knowledge-Based Artificial Intelligence (KBAI)

215 hrs (Final Project: 83 hrs, Projects and Weekly Work: 72 hrs, Lectures: 38 hrs, Exams: 8 hrs, Other 14 hrs)

This was a great introduction to the program and a great reintroduction to the cadence and expectations of academics. Dr. Joyner, director of the program, teaches a few classes, and all of them are generally regarded that way. His classes tended to rely on smaller deliverables every week (and I mean every week). This is in stark contrast to the approach of Graduate Algorithms, discussed below. It can feel like busy work at times, but it has its advantages.

Plus, KBAI did have one big final project - you were asked to solve a set of Raven’s Progressive Matrices problems. Part of me wishes I had taken the course later in my curriculum because some of the techniques for the visual processing of the matrix images were new to me. I would probably be able to move much quicker towards a passing solution if I did it for the first time today. Then again, the easiest approach to that would probably involve a VLM now, too.

Machine Learning for Trading (ML4T)

130 hrs (Projects: 79 hrs, Readings: 22 hrs, Lectures: 21 hrs, Exams: 5 hrs, Other: 3 hrs)

Another one of Dr. Joyner’s courses, this was a good first summer course. You’ll notice a trend that I purposefully took shorter or easier courses during the summer semester, which is shorter and requires courses to either condense or remove material. The biggest thing I took away from ML4T was the subject matter knowledge. I came in with plenty of ML knowledge, but very little trading experience. This was, though, my first introduction to reinforcement learning, however brief at the end of the semester. RL would go on to be the most academically interesting topic I visited.

I imagine this would be a great introduction to ML, a kind of survey course before taking the core Machine Learning course. It didn’t require me to analyze the quality of my models to the same extent as CS 7641 or to understand them as deeply, but it introduced a variety of model types and contextualized them well in a fairly universal subject matter.

Machine Learning (ML)

270 hrs (Projects: 150 hrs, Readings: 56 hrs, Lectures: 33 hrs, Exams: 25 hrs, Other: 6 hrs)

This course was the first I took that is infamous among students. The teaching staff is notoriously tough graders. It genuinely pushed me, primarily in my academic writing skills. It turns out that my writing is way better if I take two or three passes through it with the sole purpose of removing unnecessary words. But, I will never forget being given back project grades on Thanksgiving and leaving the dinner table to rationalize how I could have gotten a 50%. As a result, this is a course where traditional grade buckets were absolutely irrelevant - the curve was larger than I’ve ever seen.

This functioned as a kind of survey course of ML methods, organized by category - supervised, unsupervised, etc. It went into much more detail than ML4T, and asked you to select topics of your own to model. The reinforcement learning section reinforced my interest in the topic.

Reinforcement Learning (RL)

252 hrs (Projects and Weekly Work: 175 hrs, Readings: 51 hrs, Lectures: 22 hrs, Exams: 3 hrs)

This satisfied the interest in RL sparked in ML and ML4T. This course was heavily project-based and was one of the courses that I was most proud of completing. The projects increased in complexity as the topics developed across the semester, culminating in a deep RL project solving some toy environments. The writing skills I was forced to develop in ML paid off when writing the reports for RL. I consider the final project (which took a full 70 hours all by itself) to be some of the best academic writing I’ve ever completed.

AI, Ethics, and Society (AIES)

77 hrs (Assignments: 52 hrs, Lectures: 12 hrs, Readings: 6 hrs, Exams: 6hrs)

Where ML4T was a good balance for a summer course, this one was almost too easy. The same can be said of NLP, discussed below, which I anticipated and paired up with a seminar following my experience with AIES. There are interesting topics discussed, but the assignments are rote, and the week-to-week work required was significantly lower than in other courses. It’s a shame, because I feel this is one of the underserved areas of AI instruction in general. This is also one of the courses in which I most acutely felt the downsides of the online format. I’m sure I would have had some deep philosophical discussions with my fellow student if we were sitting next to each other.

Deep Learning (DL)

234 hrs (Assignments: 95 hrs, Final Project: 43 hrs, Readings: 42 hrs, Lectures: 30 hrs)

Deep Learning did perhaps the most of any course to combat my lingering imposter syndrome. I had learned all the foundations of deep learning in my undergraduate coursework, but I had never been pushed to learn it to the depth required in CS 7643. Deep Learning was also the only course I took that required group work. This course also demonstrated the value of collaboration, particularly in machine learning fields where there exists such a variety of ways to distill and solve problems. The final project that my team put together was, like my work in RL, some of my proudest work from the program.

Computer Vision (CV)

235 hrs (Problem Sets: 113 hrs, Final Project: 53 hrs, Lectures: 40 hrs, Readings: 22 hrs, Exams: 5 hrs)

Similar in spirit to KBAI, CV really drove home the fundamentals of the computer vision domain. It didn’t touch on modern CNN-based approaches until the last third of the course, which, at the time, was frustrating. Upon reflection, I learned significantly more from the first two-thirds of the course, having already taken ML and DL. I learned fundamentals like particle filtering, edge detection, and intrinsic vs extrinsic camera parameters, which I had never encountered in my more ML-driven CV coursework before.

Unfortunately, the assessments for this course left something to be desired, especially in the first half. They relied on deterministically evaluating the results of your implementations via Gradescope and were very sensitive. I think the goal was to develop intuition around tuning the algorithms to fit your specific problem and approach a nearly optimal solution that the teaching staff had trained. However, in being too restrictive about the required performance, the assignments turned into a guessing game for the fourth decimal place of the fifth hyperparameter.

Natural Language Processing (NLP)

81 hrs (Assignments: 35, Lectures: 23 hrs, Exams: 12 hrs, Readings: 10 hrs)

I mentioned above that NLP was a very light workload, and that was true. However, the material itself was much better structured than AEIS. In the age of LLMs and AI, it’s worryingly easy to never learn and never think about the fundamentals of NLP. Unlike KBAI and CV, focusing on these fundamentals (in the first half) didn’t come at the cost of modern techniques (in the second half). The instruction was bolstered by advanced material directly from Meta.

Agentic AI Essentials

30 hrs (Workshops: 30 hrs)

I took an Agentic AI seminar over the same summer as NLP for several reasons. For one, I wanted to get the most out of my time in OMSCS and knew that NLP was notoriously light on assessment difficulty. At the same time, I was getting increasingly involved with AI and NLP use cases in my role at the TVA, and figured these two courses would complement each other and the projects I was actively working on at work. I enjoyed the seminar, which effectively laid out the core components of Agentic AI. It was also interesting to get instructions from NVIDIA during the course. I didn’t, however, find that it contained much information I couldn’t find independently.

Graduate Algorithms (GA)

102 hrs (Exams: 44, Lectures: 17 hrs, Readings: 15 hrs, Assignments & Practice Problems: 21 hrs)

This is the big one. Even more than ML, the one that OMSCS students dread. For me, I had much more confidence in my ML skills going into ML than I did in my algorithms skills going into GA. My Algorithms class in undergrad was one of my least favorite. Add to that the notorious nature of the assessments in CS 6515, and I expected this to be the most stressful of the courses I would take. I felt lucky to be able to take this before the last semester of my degree; A lot of students have to wait.

Ironically, this course was one of my lightest in terms of time spent, but I was right about the level of stress it induced. The nature of the assessments is an outlier compared to any other course - 3 exams combine to nearly all of the grade, and 2-3 questions comprise the majority of the points for each exam. Despite that, I actually did get a lot out of the course. The structure was significantly more intuitive than the undergraduate course I had taken, with an emphasis on the similarities between algorithms in the same family.

Artificial Intelligence (AI)

128 hrs (Assignments: 72 hrs, Exams: 23 hrs, Readings: 22 hrs, Lectures: 11 hrs)

It’s a shame that this is the final course I took and the last for me to review because I hate to end on a sour note. First, the good. I came out of this course with a significantly deeper understanding of AI history, AI theory, and AI fundamentals. The TA staff was generally active and responsive, and the requirements were clear throughout.

However, I took CS 6601 during the first semester in which the teaching staff’s tool, NOSI, was required to complete assignments. NOSI is a fork of VS code which logs all edits to any files and encrypts all files so that this edit history can’t be read or altered by students. This is in pursuit of a solution to LLM-based cheating on programming assignments, which seems to be a focus area of the professor’s research. That’s a noble cause and one that I support; I want my degree to retain its value and believe that we need to counteract tools that undermine said value.

The rollout and execution of NOSI, however, were abysmal. Every assignment came with new versions of the tool, and new versions would be released during the assignment window to fix critical bugs. (Re)Installing NOSI required downloading assets from a TA’s (a fellow student’s) OneDrive. The new versions were never backwards compatible and could not read past assignments. These versions were not appropriately signed and triggered security warnings on macOS. The initial release of their tool was not compatible with many modern coding tools: there was no debugger, there was no linter, print statements did not work, file search did not work, etc.

To their credit, the teaching staff pulled back initial requirements for the tool, removing the NOSI requirements for the first assignment and making it optional for the second. By the time that it was actually required, it was in a more stable state. However, participating in the NOSI path of the second assignment was rewarded with extra credit, which, given the privacy and security implications below, provided an unfair advantage to some students.

Students were not given advanced notice that this would be a requirement for the course, nor were they able to consent to participate in research. By the time I fully understood the requirements, taking another course would have meant delaying my graduation. The professor insisted that the nature of the research did not warrant approval from the university, while simultaneously alluding to future AI assistants that may be trained on the data collected from this semester’s students. We were never given details as to the nature of that training or the ability to opt out. At the same time, the professor’s rhetoric about cheating made many students feel that the priority had been placed on catching cheaters rather than facilitating learning for the rest of us. That feeling was exacerbated by the professor’s lack of involvement in the rest of the course.

The great irony is that the biggest thing I took away from CS 6601 is what not to do when rolling out a new tool. The rollout of NOSI was an active example of disrespect for your users’ data and privacy. It was an active example of how a user base can revolt against you if you lack intention and proper communication around your decisions.

So, what was it all for?

Well, that amounts to 1,754 hours across 10 classes and 1 seminar on weeknights, weekends, holidays, and vacations. I worked in Nashville, Chattanooga, Knoxville, Memphis, Evansville, Indianapolis, Chicago, and Toronto. For about a year, I began working four 10-hour shifts at work to open up a whole day during the week for school. Over my last few classes, as burnout reached its peak and realism more often beat out perfectionism, I think I ironically achieved a healthier balance. But there’s simply no way to add that many hours on top of a full-time job without sacrificing something. For me, it was hobbies, family, and dating. I left Nashville with about two years to go because I was tired of paying to live in Nashville without getting out of my apartment enough to enjoy it. The real demands of this program gave me excuses to say no to those things in life that may be inconvenient but pay off in the long run.

At the same time, I’ve expanded my knowledge, reduced my imposter syndrome, and proved, more to myself than anyone else, that I can still do hard things. I’m coming out of the program with a greater appreciation for those things I’ve set aside over the last three and a half years. I’m more likely to build from the fundamentals when I see a new problem, rather than jump to the fanciest new architecture. Maybe ten years from now, I’ll be able to actually answer that question from my therapist. But right away, here, today, I can say I’m a Master of Computer Science. That alone is well worth the cost of the program. I’m grateful for the experience of OMSCS and relieved to have finished.

Next
Next

2025 Actor Focus: Keanu Reeves