OMSCS at the Halfway Point: Thoughts Thus Far
Published:
Overview
In celebration of being (over) 50% done with the program I decided to do a little review of my thoughts so far. I completed two courses this Spring 2025 semester, those being Software Development Process (SDP) and Artificial Intelligence, Ethics, and Society (AIES), bringing me past the 50% mark to 6 out of 10 courses completed. My specialization is in Computing Systems and the requirements for it can be found here. The courses I’ve taken so far are:
- Human Computer Interaction (HCI)
- Graduate Introduction to Operating Systems (GIOS)
- Computer Networks (CN)
- Advanced Topics in Malware Analysis (AMA)
- Software Development Process (SDP)
- Artificial Intelligence, Ethics, and Society (AIES)
I’ve learned a great deal from this program so far, and it is as challenging as I was hoping it would be. I’ll give a quick rundown of each course and my thoughts on each, but I’ll save the in-depth course reviews for a later time. The courses are listed in the order that I took them starting with the Fall 2023 semester.
Human Computer Interaction (HCI)
This was the first course I took because I wanted to “test the waters” before jumping into some of the more challenging courses. HCI is more of a methodologies and research course than a programming course. There is a lot of paper writing about interface design, principles of design, and human interactions with systems. These designs are not strictly digital either but encompass both the physical and digital worlds.
I thought this class was well put together and a great learning opportunity for those who haven’t been exposed to design concepts before. It was a little time-consuming and a lot of work every single week, but it was easy to keep up with as long as you worked on it consistently.
Graduate Introduction to Operating Systems (GIOS)
GIOS was my introduction to an OMSCS course with heavy programming assignments, and my first “fairly difficult” course to boot. GIOS ranks #15 out of 81 courses for difficulty on omscentral.com (as of Spring 2025) and for good reason. The course has 3 projects that are primarily in C or C++ and includes two exams.
I had some exposure to C before taking this course and it was barely enough to get me by. I found the projects to be quite challenging with the first assignment taking me about 60 hours to complete over a few weeks. The other two projects were only somewhat less time-consuming.
Despite its difficulty, it is a highly recommended course both by myself and others in online forums. As I mentioned though, don’t take the prerequisite knowledge of C and C++ lightly. You will be much better off if you spend some time learning the basics first.
Computer Networks (CN)
Computer Networks (CN) is a core class that covers various networking algorithms, communications protocols, routing system architectures, and SDN technologies. I took CN over the summer of 2024, so the course was condensed by a few weeks making it a little more challenging, but only marginally so.
CN is one of the easier courses in OMSCS and solely uses Python when programming is required. The programming assignments were semi-interesting and I have mixed feelings about them. Some assignments helped get the point across about how various algorithms work, but others felt more like parsing data for the sake of it. I did like learning the different methods threat actors use to take advantage of BGP and ASes during the Internet Security segment.
This isn’t a bad course and I did learn more about the deeper structures of the internet than I would have otherwise. There’s a high likelihood you’ll never directly use any of the concepts learned here, but for someone like me in cybersecurity, it can be helpful to understand.
Advanced Topics in Malware Analysis (AMA)
This course was one I knew from the outset I was going to take regardless of my specialization. I like learning about the low-level workings of computing systems and applications which is why I chose AMA and GIOS as must-haves for my course list. I was not disappointed as this course gives you a very solid overview of malware-specific topics and general reverse engineering topics.
The first assignment after getting used to Ghidra is reverse engineering an entire malware sample and commenting on what is happening in every basic block. You wouldn’t do this in a real RE job, but you end up spending so much time looking at the assembly that you get a good feel for what code looks like at this level. The rest of the projects focus on various types of data and control flows which was something completely new to me.
I enjoyed this course because it was something I already knew I was interested in, so I’m somewhat biased in that respect. I don’t think it emulates exactly what a job in RE would be like, but the foundational knowledge is there so if you’re interested too I would recommend it!
Software Development Process
I took this course in tandem with AI, Ethics, and Society over the Spring ‘25 semester. It was my first Java course in the program and one in which I had to make extensive use of OOP concepts as opposed to GIOS and C++ where I could get away with limited class usage. In addition to Java, you will also learn some intermediate Git concepts like branching, merging, and team sharing of code bases. I had some basic knowledge of these concepts already so it wasn’t hard to get up to speed on this one.
Projects included creating Android apps using Android Studio and a 500 - 1000 LoC project that you’ll work with both as a black box and write from scratch. There is also the infamous assignment 6 which has the potential of taking you from an A to a B for the course. It’s an easy assignment to miss hard on and end up tanking your course score because of the 15% weight.
I thought this course was okay, and if I liked my other options I probably wouldn’t have chosen this one. If you’re an experienced software engineer you might still learn something from it, but it is what I would consider an average software engineering course.
Artificial Intelligence, Ethics, and Society
As mentioned above, this was one of my two courses over the Spring ‘25 semester. AIES is a part programming, part writing course that covers ethical considerations of Artificial Intelligence in society. You’ll examine various examples in real-world case studies and use AI and ML for small projects throughout the course to show the various biases that exist in these models.
This course is considered one of the program’s easier options: writing assignments are straightforward and the programming sticks to basic Python with Pandas and NumPy, but the number of short and almost meaningless essays was tedious. In my course feedback, I said I’d prefer a few larger AI/ML projects to numerous thought‑experiment papers. It also bothered me that some of the models being tested were no longer supported or maintained which made completing assignments more difficult.
My suggestion for anyone thinking about taking this course is to consider if there’s nothing else you can take. The topic is an important and interesting one, but I feel like the course needs an overhaul to really make it worthy of OMSCS.
My Thoughts on Taking Two Courses at Once
My plan for the program has shifted a few times since I started in Fall 2023. During AMA I saw that one class a term for more than three years, on top of a full‑time job and family life, would be rough, so I decided to double up for two semesters to save time. After taking Software Development Processes (SDP) and AI, Ethics and Society (AIES) together, I changed my mind. The pair took fewer total hours than Graduate Intro to Operating Systems, but finishing work Sunday, waking up to fresh projects Monday, and the constant context switching between two syllabi and deadlines nearly burned me out. I felt like I worked twice as hard and learned half as much, so if you’re working full‑time, I wouldn’t recommend taking two courses in one term.
Closing Thoughts
I think the OMSCS program is great and one that is benefiting me directly every day. I expect a lot of utility out of the degree once I have it, and I don’t plan on continuing academically after this. I highly doubt a PhD is in my future mostly because I don’t think it would be worth the time and effort for me. If you’re reading this looking for guidance then that’s the key takeaway here; What will benefit you and is worth your time and effort? OMSCS is a great program and worth considering, but make sure it aligns with your goals first!