Recent Reviews

A Dynamic List of the 50 Most Recent Reviews
CS-6035
Introduction to Information Security
Taken Spring 2025
Reviewed on 3/30/2025

Verified GT Email

Workload: 30 hr/wk
Difficulty: Medium
Overall: Liked

I just finished my 8th project in IIS, which was my final project. There were 9 projects this semester but if you get 100% on the first 8 projects, the 9th does not matter because you have an A in the class, even without a submission attempt for project 9. I took this class because I am working on a CS master's but I also plan on pursuing Georgia Tech's MS in Cybersecurity and this class satisfies a requirement for both programs. I felt that 9 projects, of the scope of these projects, in one semester was unreasonable. I loved every project in this course but there were too many of them. The machine learning project was 1 week long, which felt insane. The TAs are excellent, the projects are fun and interesting but they just crammed too much content into one course. I strongly recommend taking this course by itself. No individual task is too difficult but this class is an avalanche of projects.

CS-7637
Knowledge-Based Artificial Intelligence: Cognitive Systems
Taken Spring 2024
Reviewed on 12/31/2024
Workload: 9 hr/wk
Difficulty: Medium
Overall: Liked

Full review here! https://the11d.wordpress.com/2024/12/31/my-thoughts-on-kbai-omscs-review-6/

TLDR (Thanks GPT!)

CS 7637 (Knowledge-Based Artificial Intelligence) in OMSCS provides a deep dive into classical AI from a cognitive science perspective, emphasizing symbolic reasoning over statistical methods. The course features a rigorous workload, including weekly assignments, open-ended mini-projects, proctored exams, and a semester-long project to build an AI agent for solving Raven’s Progressive Matrices (RPM). Students need strong Python and writing skills, with challenges like Mini-Project 2 requiring significant logical problem-solving and creativity. While some content feels outdated and involves busywork, the course’s engaging lectures, unique problem-solving opportunities, and focus on foundational AI concepts make it highly rewarding for those interested in classical AI approaches. The reviewer rated it 3.8/5 for quality and 3.1/5 for difficulty, recommending it for students eager to explore cognitive science and symbolic AI.

CS-6300
Software Development Process
Taken Spring 2024
Reviewed on 12/30/2024
Workload: 4 hr/wk
Difficulty: Easy
Overall: Neutral

The full review is here: https://the11d.wordpress.com/2024/12/30/my-thoughts-on-sdp-omscs-review-5/

TLDR: (thanks GPT!)

During Spring 2024, I completed the CS 6300 Software Development Process course, a core requirement for the Interactive Intelligence specialization in the OMSCS program. As a seasoned software engineer, I approached the course to gain an academic perspective on software development. The course was project-based, covering topics such as Git, unit testing, Android development, and UML design. While the workload averaged 4.3 hours per week, time demands fluctuated, with some assignments requiring significantly more effort, especially the first individual project deliverable and the white-box testing assignment. The group project emphasized Android development with team collaboration, offering a practical experience of software engineering at scale. I found the course insightful but relatively easy due to my industry experience, rating it 3.1/5 overall and 2.1/5 in difficulty. While it provided valuable fundamentals, I felt it could benefit from modern practices like Scrum, CI/CD, and containerization. For students with limited software engineering background, familiarity with Java, OOP, and external resources will be critical to success.

CS-8803-O21
GPU Hardware and Software
Taken Fall 2024
Reviewed on 12/29/2024

Verified GT Email

Workload: 16 hr/wk
Difficulty: Medium
Overall: Neutral

TLDR: Definitely not terrible, but far from great. CUDA projects are interesting. Lectures aren't engaging. Same projects and weights as Summer 2024 semester.

Pros:

  • Access to H100 GPU - most people won’t get to use hardware this advanced outside of a class setting.
  • The second CUDA project is the highlight of the course - one of the most challenging assignments I had in OMSCS.
  • There’s a decent amount of extra credit (project 2, participation) - you’ll need it for the final exam.
  • No/little surprises with your grades: projects 3-5 use Gradescope, projects 1-2 don’t need it.
  • The instructional team was flexible when unforeseen issues came up. For example, they extended deadlines twice - once during a hurricane (while another infamous class didn’t bother moving its high-stakes exam) and again when PACE was down. Later, when performance instabilities affected some submissions, TA announced plans to re-evaluate those cases. They also added unplanned extra credit to make up for a bug in the last project.

Neutral:

  • Class size is untypically small for OMSCS at around 50 students. This could be good or bad depending on your cohort. Most students who manage to grab a spot typically have 7-8 classes behind their belt, so they tend to know their stuff. This can sometimes feel intimidating, especially if you’re struggling with the projects and it seems like everyone else knows what they’re doing.
  • Office hours almost made it to the 'Pros' section. It was great that the professor held them weekly, which is apparently a rarity in OMSCS. However, the timing didn’t work for most students, so attendance was very low, and the sessions were often quite short. Unfortunately, OHs weren’t very useful for the projects either. In the second half of the semester, the meetings were canceled frequently.
  • Projects 3 and 4 involved reading academic papers and implementing simplified versions of their ideas by completing specific functions within a provided codebase. (Think HPCA projects but simpler). While I didn’t care much for these projects or the papers, this format felt closer to a traditional graduate school experience.
  • Project 5 had potential but felt unfinished and rushed. It could benefit from additional tests with more interesting scenarios. Guidance on how to implement the project came too late, by which point many students had already finished without fully understanding how to use the approach taught in the lectures. As a result, many opted for alternative implementations that didn’t align with the class concepts.
  • The quizzes were mostly fine, but nearly all of them included a couple of ambiguous questions or answers. These quizzes didn’t do much to reinforce the concepts taught in class, nor did they prepare you well for the exam. The ones based on papers, in particular, felt like they were designed to be as convoluted and unclear as possible.
  • It seems this semester, TAs had to focus more on the administrative aspects of the course, which is understandable given that this is a newer class. Still, having a TA who is especially passionate about the subject and comfortable answering more in-depth or tangential questions could take the experience to another level. That kind of enthusiasm can make the course feel like more than just a class.

Cons:

  • I found it odd that they decided to forbid students from discussing closed quizzes on Ed. This completely defeated the purpose of collaborative learning. Even the infamous class allows students to discuss closed homeworks and quizzes after they are due. Private posts were technically allowed, but the repeated reminders that no information would be shared privately that wasn’t already shared publicly gave the clear impression that they were discouraged.
  • The lectures are dry and often skim through material too quickly. Even when the lectures provided additional context, it was so high level that it ended up being useful to no one - unnecessary for those familiar with the material (from a CS undergrad or other OMSCS courses) and unclear for those encountering it for the first time. It also doesn’t help that HPCA, which feels like a natural prerequisite, has far superior lectures.
  • A lot of the content in this new class already feels outdated. Most of the assigned readings are over 10 years old and focus on inferring GPUs' inner workings from older NVIDIA patents. This isn’t the fault of the course since much of NVIDIA’s GPU technology is proprietary. However, it would be great if the class dived into the latest trends in GPUs, compared vendors, or even speculated about future developments.
  • Final - they attempted an HPCA-style exam without offering HPCA-quality of instruction. The class mean was 40.8%, median 45%, with the highest score being only 75%. I actually don't mind this style of the exam with conceptual questions, but the provided material does not prepare you for it. Unlike HPCA that provides excellent lectures, lecture quizzes, multiple sample exams with solutions and explanations, this class has almost nothing - just poorly worded quizzes that are significantly simpler.

Overall, I don't regret taking this class. A lot of what I learned came from external resources (keep an eye out for helpful links shared by your fellow students). The class, in its current format, feels very frontloaded, with a steep learning curve for Project 2. Assuming the class structure will stay the same, I'd say this class is good for summer semesters or pairing with another course.

CS-7280
Network Science: Methods and Applications
Taken Fall 2024
Reviewed on 12/18/2024
Workload: 15 hr/wk
Difficulty: Medium
Overall: Liked

For background- I am a non CS person, and this was my 2nd course in the program.

I liked the material very much. The course format is basically to read the chapter in the book, look at the videos (the book was better than the movie), and then do the deliverables. There is a short answer/T-F quiz every week (7-12 questions), and 5 programming assignments over the semester. Personally, I struggled with the programming assignments. I am told that this was because of my non-CS background. The feedback that I received was that the programming was actually at the easier end of the spectrum for OMSCS courses. There is a fair bit of mathematical derivations presented, but one can skip them and just read the summary lines.

If you are looking for a course where you can work ahead, THIS IS NOT IT! The weekly quizzes are released one week before they are due, the assignments two weeks before. I found the TAs to be responsive to personal questions, not necessarily for general questions. The instructor seemed to be MIA.

I am glad that I took the course.

CS-7632
Game Artificial Intelligence
Taken Fall 2024
Reviewed on 12/18/2024
Workload: 28 hr/wk
Difficulty: Medium
Overall: Liked

Topics are engaging, difficulty is okay, the quality of lecture slides are very good. The only downside is the workload, the assignments can be really time consuming

CS-6035
Introduction to Information Security
Taken Fall 2024
Reviewed on 12/18/2024
Workload: 20 hr/wk
Difficulty: Hard
Overall: Liked

I achieved an A in the class but it tested me with its fast paced week to week change in topic of projects. Some weeks we're a breeze given my background as a devops/ swe eng but some weeks we're a brutal slog. I wouldn't say its hard to get an A in this class but its no cakewalk like some reviews make it seem.

The material is pretty interesting I liked the CTF style of the class. I think more so than anything else this class teaches you how to learn new concepts quickly. Overall I'm not sure I learned a ton about true information security but I definitely learned a lot of new tech.

If you like puzzle solving and have any interest in cybersecurity I'd say take this class.

ISYE-8803
High-Dimensional Data Analytics
Taken Summer 2024
Reviewed on 12/17/2024
Workload: 20 hr/wk
Difficulty: Very Hard
Overall: Neutral

I felt the course lecture videos did not cover all the details. I had to read a lot of supplementary material to make some sense.

CS-7646
Machine Learning for Trading
Taken Fall 2023
Reviewed on 12/17/2024
Workload: 10 hr/wk
Difficulty: Medium
Overall: Strongly Liked

The course covers the topic really well. And the lecture video is some of the best. The professor was an expert in the field and the textbook is authored by the professor himself. I enjoyed the course. The workload in moderate to easy. I took the course as my first course. The assignments might be a few hours of effort if you have prior knowledge of python. There was regular OH and round table discussion making this course very interactive.

CS-7641
Machine Learning
Taken Spring 2023
Reviewed on 12/17/2024
Workload: 24 hr/wk
Difficulty: Very Hard
Overall: Neutral

The topic was highly interesting and rigorous. I enjoyed the course and learned a lot as well. But the course videos are not of much help. The conversation style between the professors were not tolerable to me. I personally prefer more structured material to learn from. The course is heavily curved at end. For us Mid-term was removed as well. Be prepared to slog long hours but the reward at the end was equally good.

CS-7643
Deep Learning
Taken Fall 2024
Reviewed on 12/17/2024
Workload: 25 hr/wk
Difficulty: Very Hard
Overall: Strongly Liked

I want to say this is one of the best OMSCS course. I have thoroughly enjoyed this course and my knowledge in the topic increased many folds. Other OMSCS courses should be like this.

Pros:

  • The assignments were superb. Every assignment included coding, analysis and a paper review. It was very comprehensive to know all about the topic
  • TAs held regular OH and open to any discussions on the topic. This made the session very interactive
  • The material is most up to date and covered state of the art, which was amazing

Cons:

  • The Meta OH were of not much use to me, as many of the guest lecturers came unprepared and did not have a fixed agenda. The discussions were all around and mostly shallow.
  • Some of the lectures were on a high level. More detailed lectures would have been nice to have. I referred to other lecture videos and materials which were shared on ed posts by other students
ISYE-6420
Introduction to Theory and Practice of Bayesian Statistics
Taken Fall 2024
Reviewed on 12/11/2024
Workload: 12 hr/wk
Difficulty: Medium
Overall: Liked

I rarely write reviews for classes but I feel this one deserves more context. Coming off the back of passing ISYE-6644, I found the first half of the class a natural successor to the frequentist statistics that I had been introduced to in ISYE-6644, as well as in an applied undergrad course. While derivation/proofs aren't considerably involving, except for the odd completing the square requirement that popped up, being comfortable with reading math equations and basic differentiation and integration techniques is definitely required.

The second-half, however, wasn't as enjoyable for me. The PyMC library is continuously going through changes and it seemed the TAs had to fix code examples in real-time. Additionally, I felt a lot of integral concepts were glossed over for the sake of covering as much material as possible. This, however, won't be a huge deal-breaker for someone that has already taken a reasonably comprehensive frequentist statistics class.

As far as the faculty is concerned, the TA's are super responsive and quite lenient with grading; they are ever-willing to give 90+ scores for homework. the project and exams. The instructor is quite knowledgeable and, if you can get attend his OH, can easily clarify any doubts. Sadly, however, he didn't engage on Ed at all.

CS-6035
Introduction to Information Security
Taken Fall 2024
Reviewed on 12/9/2024

Verified GT Email

Workload: 33 hr/wk
Difficulty: Hard
Overall: Strongly Liked

I kept track of all the hours I put in. I started the clock as soon as I sat down at my desk, the time is inclusive of everything (setting up VM's, reading project docs, research, office hours). I ended the course with an A and roughly 442 hours put in. For background, my undergrad is CS, I have a full time full stack coding bootcamp under my belt, and have been a full time SWE for several years. Everything you learn in this course is self taught, google is your friend, there is a lot of guesswork with most of the CTF's. I don't have a cyber background, I enjoyed the course.

ProjectDatesHours
Man in the middle08/23 - 09/0147h
Machine Learning09/01 - 09/15100h
API security09/15 - 09/2217.5h
Log4Shell09/22 - 10/0637h
Malware Analysis10/06 - 10/1332h
Cryptology10/13 - 10/2757h
Database Security10/27 - 11/0651h
Binary Exploitation11/03 - 11/1783h
Web Security11/17 - 11/2417.5h
CS-6400
Database Systems Concepts and Design
Taken Fall 2024
Reviewed on 12/8/2024
Workload: 10 hr/wk
Difficulty: Medium
Overall: Liked

Honestly I think this course gets more hate then it deserves due to everyone's dislike of group projects. A group project absolutely makes sense for this course due to the exposure of git workflows which you may not get exposure to elsewhere (such as if you are in OMSA). Supposedly this course will be getting some rework in the semesters to come, so this might be dated for future semesters.

Overall, I think this course is pretty good and only have a few painpoints.

Pros:
  • Exposure to a diverse student group - as you may have students with experience with several different technologies (python vs typescript, frontend, vs backend) and different programs (OMSA, OMSCS, OMSC).
  • In depth knowledge of how databases work
Cons:
  • May have trouble with group teamwork.
  • Some material is only covered by the book which is difficult to read (esp. if you have ADHD...)
  • Plenty of project information isn't covered by the specification and is instead revealed by Piazza questions
  • Grading structure makes getting an A difficult, but easy to expect a B
Advice to Students:
  • Use practice exams to study, review office hours
  • Understand what sections of the book will be fair game on the exam
  • Review answers (or ask questions) on Piazza
  • Try to form a diverse group project and use git workflows (separate branches and merge your work, to prevent duplicated work)
Feedback to Faulty:
  • Provide more detailed specifications that won't require so much follow up on Piazza
  • Rework Exam 4 - the portions dealing with disk space calculations is archaic and not productive (if my undergrad physics course provided equations, I think a masters which should realize no job is going to have you manually calculate HDD disk space in an era of SSDs and NVMes without Google)
  • This course can also be incredibly difficult to get an A due to the grading structure - extra credit would be nice.
CS-6035
Introduction to Information Security
Taken Fall 2024
Reviewed on 12/6/2024
Workload: 25 hr/wk
Difficulty: Hard
Overall: Disliked

Honestly there was nothing "Introductory" about this course. Every assignment was in a completely different field of study and the assignments did not build upon each other AT ALL. The lack of cohesion on this course made it very difficult to bring myself up to speed and actually learn the information in a way that would help me outside of this class. I definitely could see that a lot of effort was put by the professors into creating the CTF's within the projects, but 0 effort in teaching the information. Some of the assignments were easier than others where some weeks I would spend 10 hours and then the next I would spend 100+ hours trying to figure out what specific syntax the grader wanted (even though most times it would still solve the problem). The lectures BARELY covered the information in the course and didn't help with the technical implementation at all. Most of the time it would give a very high-level idea of what you needed and wouldn't help at all with the technical implementation. I come from a pure Computer science background and have never used tools such as GDB and malware analysis tools and was hoping this course would give me some insight. I think this course would much better be placed as a follow on of a basic cyber computing course. I enjoyed the Machine learning assignment (only real programming one) and the Wireshark assignment but otherwise was pretty disappointed with the lack of instruction. I think if there was better introductory information on each topic it would be much better. I could see how some people would like the CTF nature of the course, but it definitely put the burden heavily on the student to self-teach. If you have a lot of experience with pen-testing I would say that this course is for you. But if you are looking for an intro course, I would definitely not suggest this one at all (maybe as a follow on). I still secured the A however it was at the cost of my social life and life outside of my office this semester.

CS-7646
Machine Learning for Trading
Taken Summer 2024
Reviewed on 8/21/2024
Workload: 12 hr/wk
Difficulty: Easy
Overall: Neutral

I was really looking forward to this class after all the positive reviews on Reddit and OMSHub but I have to say it fell slightly short of my expectations. I'll start with what I enjoyed about the class:

  1. The class is very well structured. Expectations are very clear for assignments, readings, finals, etc. There is no guesswork at all involved in this course, no unclear assignments with vague rubrics which is a breath of fresh air.
  2. You learn actual finance in this course as well although it is very basic.
  3. It provides a decent overview of ML.

The cons:

  1. Sometimes assignments are so pedantic it can be very annoying. I'm talking when you write your reports you are sometimes told what color lines your charts need to be. I think that level of specificity is useless and just a waist of time.
  2. There is A LOT of reading. Way too much reading I think. We had like 5 different textbooks that we used throughout the class. All of them were free but it was a pain remembering where you read what and going through all of the readings for the exams which brings me to my next point.
  3. The exams are very disconnected from the assignments. I feel like you could do the entire class without doing the readings at all. The only time they really help are during exams. Also the exam questions are very specific and in the format where you need to select all that apply so I found it actually very hard to get a good grade. I studied for a while and did all the readings and only ended up with B's on the midterm and final.
  4. Feedback takes weeks if not months. You barely receive any feedback on your assignments until well into the semester.

One last thing to note, a lot of old reviews talk about the format of the midterm being quick with 110 questions graded out of 100. Since summer semester that is no longer the case. This semester we had 90 minutes to complete the exam and we were scored out of 110 instead of 100. IMO I did not need the extra time (I finished in around 60 minutes) but I would've loved the extra 10 points of extra credit. Also if you do plan on taking this during summer there is no extra credit opportunity like in the other semesters. This double whammy seems very unfair to those who took the class this semester but that's life I guess. In summer you have a new assignment every week. It is all doable but you need to start assignment 8 early if you can.

Overall I probably spent 10 - 15 hours a week including lectures, readings, coding and writing.

CS-7650
Natural Language Processing
Taken Summer 2024
Reviewed on 8/18/2024

Verified GT Email

Workload: 5 hr/wk
Difficulty: Very Easy
Overall: Neutral

My Background: Bachelor of Science in Applied Math. When I started this course I had about 3 years of work experience as a a Data Engineer using Python / SQL / VBA

Summary: This was one of the easiest class I've taken as part of OMSCS. This would pair well with a second course. There are many weeks where I wasn't really doing anything except speed watching a lecture video and taking a multiple choice quiz. I think I spent less than 5 hours a week and got an easy A. I thought this course was a bit boring for someone who has done modeling before, but appreciated the easy workload and break from tougher courses as I was getting burnt out. I wish they would release all the work ahead of time, the slow pacing of having to wait for a quiz to be released each week was annoying. The projects are fun, but need more QA as the wording was sometimes referencing a prior semester. You will likely need to look at the provided test cases to code the model exactly how the professor wants it. The final project is more difficult than the others, but is very open ended and still doable in a week if you have been following along with the course.

CS-6515
Introduction to Graduate Algorithms
Taken Summer 2024
Reviewed on 8/10/2024
Workload: 20 hr/wk
Difficulty: Very Hard
Overall: Disliked
MGT-6311
Digital Marketing
Taken Summer 2024
Reviewed on 8/5/2024

Verified GT Email

Workload: 4.4 hr/wk
Difficulty: Very Easy
Overall: Liked

Introduction

Background

As of course start, I had around 3.5 years of experience working as a professional software engineer, specifically doing web applications (full-stack .NET + JavaScript). My previous degree was in Engineering (non-CE/non-EE) from early 2010s.

This was my fifth/sixth course in OMSCS (taken concurrently with AIES, CS 6603), within the computing systems specialization. I previously completed GIOS (CS 6200, Fall 2021), IIS (CS 6035, Fall 2022), CN (CS 6250, Summer 2023), and HPCA (CS 6290, Fall 2023).

High-Level Review

Overall, I enjoyed the course. It is essentially a business course, so it's not going to have the technical spin of a CS/CSE course; but if one doesn't know that going in, then they are beyond help (otherwise, knowing that going in but nevertheless still complaining about it later on is equally questionable in my view). From an applications development perspective, this is a very useful course for frontend-focused work (i.e., UI/UX), since it covers a lot of adjacent topics and terminology around UI design, SEO, etc. (albeit from a business/marketing perspective, but still relevant to that general line of work nevertheless), with particular focus on social media such as YouTube, Facebook, and Google (search), which is the most prominent advertising/marketing medium in the current-year landscape.

Course Logistics and Time Expenditures

The course is not curved, and follows a strict 10-point scale (i.e., 90.000-100.000% overall for an A, 80-89.999% overall for a B, etc.). The relative weighting of the deliverables is as follows:

  • 20% weekly mini-case discussions
  • 20% major-case reflections
  • 30% midterm exam (closed notes)
  • 30% final exam (closed notes)

I did not keep strict tabs on time expenditures across deliverables, but my best in-hindsight back-estimates are as follows:

  • 1 hour per mini-case discussion * 9 discussions total = 9 hours
    • Note: there are 10 discussions total, but the lowest grade is dropped, so I elected to skip the last one (i.e., neither opened nor attempted it at all), having gotten 100% on the preceding ones up to that point
  • 4 hours per major-case reflection * 5 reflections total = 20 hours
  • 1 hour per lecture module * 9 lecture modules total = 9 hours
  • 5 hours of prep per exam (lessons review) * 2 exams = 10 hours

Given an 11-week summer semester, this averages out to 4.4 hours/week [= (9 + 20 + 9 + 10) / 11].

DM is relatively unique within OMS, in that everything is released upfront (including the exams), so in principle you could work ahead "to your heart's content," which is great from a planning/flexibility standpoint. Otherwise, if following the schedule, the cadence was typically 1-2 mini-case discussions per week (in Summer semester). Furthermore, the major-case reflections and exams were relatively evenly distributed across the semester in terms of deadlines (additionally, major-case reflections and exams were on offsetting/non-overlapping weeks).

I mostly stuck to the weekly schedule myself, and my general impression of the workload was "steady churn" rather than "intermittent boluses" (but still a relatively low time commitment overall either way).

Course Deliverables

Mini-Case Discussions and Major-Case Reflections

The bulk of the weekly deliverables were focused around the content in the textbook ("eMarketing" 7th edition by Red & Yellow), as supplemented/summarized by the lectures.

Additionally, the major-case reflections did a deeper dive into specific topics, and also required purchasing a supplementary PDFs packet from the Harvard Business Publishing for around $20 USD, providing the relevant subject matter for commentary in the deliverable/writing.

For these manually graded components, grading was turned around fairly promptly, much to the credit of the staff (and given the large size of the course, no less), typically within a week or so of the submission deadline.

Exams

The exams tested a relatively comprehensive knowledge of the material, at least to the level of rigor in the lectures (including some of the more "oddly specific" factoids highlighted therein). I'd say roughly 70-75% was attainable just by "sheer intution," but beyond that, it did test some more specific details that would likely boil down to "educated guessing at best" otherwise in the absence of deliberate content review. Both exams were proctored via Honorlock in Canvas.

Given the relatively high weighting of the exams (i.e., 60% of the overall grade between the two), it does require some effort to land high grades on the exams, but not to an overly difficult extent. I ended up doing relatively poorly on the midterm (high 70s, below median), including second-guessing in the wrong direction on review of the questions prior to submitting for around 2-3 questions, but managed to clinch an overall A via the final (low 90% and slightly above median, right at the required threshold for me to clear the overall A hurdle, i.e., one more question wrong on the final would've cost me the A in the course!). Nevertheless, the median across deliverables is in the high 80s-90s ballpark in the course, so it's really "your A to lose" in that regard.

Closing Thoughts

Overall, I enjoyed the course, in terms of delivering what it intended from a subject matter standpoint. If you're not interested in UI design and/or marketing, then this is not the course for you; and if that's the case, then that's a personal choice/preference, rather than a fault of the course/staff itself. Otherwise, if you are interested, but still feel like you're "wasting a slot" by taking DM regardless, then I would personally recommend to simply independently read/study from the aforementioned textbook ("eMarketing" 7th edition by Red & Yellow), which covers the subject matter very well in my opinion and was a judicious choice for source material accordingly on the part of the staff. Additionally, I thought the lectures were extremely well done, in terms of presenting the information in a very coherent manner, and emphasizing the key points accordingly; despite not being a topic which I'm extremely enthusiastic over myself (but do still regard it to be relevant as a full-stack applications developer), I nevertheless feel like I've left the course with a reasonably solid understanding/foundation in the fundamentals of marketing (particularly SEO and social-media-focused marketing), thanks to the lectures and course content at large.

This is a pretty light course overall and should be amenable to pairing with another, even over the summer (DM and AIES paired together was less work overall than single courses individually that I had taken previously, e.g., GIOS and HPCA).

CS-6603
AI, Ethics, and Society
Taken Summer 2024
Reviewed on 8/5/2024

Verified GT Email

Workload: 11.5 hr/wk
Difficulty: Easy
Overall: Neutral

Introduction

Background

As of course start, I had around 3.5 years of experience working as a professional software engineer, specifically doing web applications (full-stack .NET + JavaScript). My previous degree was in Engineering (non-CE/non-EE) from early 2010s.

This was my fifth/sixth course in OMSCS (taken concurrently with DM, MGT 6311), within the computing systems specialization. I previously completed GIOS (CS 6200, Fall 2021), IIS (CS 6035, Fall 2022), CN (CS 6250, Summer 2023), and HPCA (CS 6290, Fall 2023).

High-Level Review

Overall, I enjoyed the course. While topical coverage was somewhat surface-level, I thought it covered a nice breadth of topics across the AI/ML landscape, which added some thought-provoking ideas around the subject matter within the general scope of ethics (which is often neglected or otherwise underemphasized in STEM in my opinion). Otherwise, even with some logistical hiccups notwithstanding, I thought the administration of the course and content curation was solid overall (though not flawlessly so, either).

Course Logistics and Time Expenditures

The course is not curved, and follows a strict 10-point scale (i.e., 90.000-100.000% overall for an A, 80-89.999% overall for a B, etc.). The relative weighting of the deliverables is as follows:

  • 40% projects (five, equally weighted)
  • 15% final project
  • 15% class discussions/exercises
  • 10% written critiques
  • 10% midterm exam (closed notes, timed)
  • 10% final exam (open notes, untimed)

I did not keep strict tabs on time expenditures across deliverables, but my best in-hindsight back-estimates are as follows:

  • 1 hour per discussion * 6 discussions total = 6 hours
  • 0.5 hours per exercise * 6 exercises total = 3 hours
  • 15 hours per project (mid-range average across the six projects, including final) * 6 projects = 90 hours
  • 3 hours per written critique * 2 written critiques total = 6 hours
  • 2.5 hours per lecture module * 4 lecture modules total = 10 hours
  • 6 hours of prep per exam (lessons review) * 2 exams = 12 hours

Given an 11-week summer semester, this averages out to 11.5 hours/week [= (6 + 3 + 90 + 6 + 10 + 12) / 11].

The cadence was typically 1-2 discussions/exercises assignments per week. Otherwise, the projects, written critiques, and exams were relatively evenly distributed across the semester in terms of deadlines. Additionally, it was generally possible to work ahead, on average around 2-3 weeks or so (including multiple projects available simultaneously), though I mostly stuck to the weekly schedule myself, so I'm not exactly sure what that "lookahead window" looked like more precisely in practice.

My general impression of the workload was "steady churn" rather than "intermittent boluses."

Course Deliverables

Weekly Assignments and Written Critiques

The discussions and exercises were my least favorite component of the course. It was pretty easy and mostly a matter of "checking boxes," but felt somewhat tedious nonetheless. Some of the articles examined were inherently interesting, to be fair, but among other things, having to comment on two other students' discussion posts to me felt more like "doing work for the sake of doing it" rather than an "added value" per se. That said, there are tougher ways to earn points, and so it really just boiled down to getting it done in a timely manner.

Along these lines, the written critiques were essentially just a slightly more involved discussion (and with more specific formatting), but not an overly imposing deliverable to complete, either.

Projects

I personally enjoyed the projects overall. I thought they covered a nice range/scope of topics, and was a good opportunity to get better acquainted with the "tools of the trade" (i.e., Python and related data-analysis-oriented libraries). There was also a report writing component for all of the projects, requiring Joyner Documentation Format (JDF), but it was pretty easy to implement if using Overleaf (accessible with your GT credentials); if familiar with using markdown, then doing inline LaTeX via Overleaf was not much different from that.

Additionally, the final project gave the option to work in a group or alone; I elected the latter. The scope/complexity of the project was on par with the other projects, so I personally didn't think that adding more "noise channels" to do somewhat linear/non-parallel data analysis would be net beneficial; I do contend that hindsight vindicated that assumption on completion/submission of the final project accordingly.

For the most part, the projects were pretty straightforward. There were some slight ambiguities here and there, but nevertheless I didn't have any major issues/blockers (as validated by the resulting grade) by simply "doing something reasonable" according to what was asked, and moving on from there; it seemed to me that others in the course had a lot of issues grasping this concept, for whatever reason. I basically spent around 2-3 "working sessions" apiece on the projects, first just getting acquainted with the data and doing subsequent data analysis on a step-wise basis through the prompts, and then separately reviewing the "raw analysis" and consolidating that into the actual formatted report for submission. I predominantly did the data analysis with Jupyter Notebooks, though the staff was not "opinionated" in terms of specifically dictating tools (other than generally requiring JDF formatting for the submitted project reports).

All of that said, there were folks wo relied mostly on Excel to do these projects (based on what was reported in Ed, etc.), which in my opinion was a self-imposed choice to avoid learning a useful skill (i.e., Python, pandas, matplotlib, etc.); but to each their own. For me, even with Python and data analysis not by my "main wheelhouse," I still found it to be a useful opportunity to develop/refine those skills nevertheless. (But I also do still think that it's somewhat disingenuous to criticize the course on that basis if somebody otherwise made a conscious decision to take a more expedient route, too, by actively avoiding the opportunity practice using these tools with a relatively well defined prompt and dataset as provided.)

Exams

The midterm was closed notes and timed, but for the most part just boiled down to having a general intuition around the core concepts from the lectures. The midterm was proctored via Honorlock in Canvas.

The final was open notes and essentially a pseudo-"seventh project," with similar scope and complexity as the other previous projects (though requiring less explicit data work/analysis), as well as the deliverable itself being a JDF report (i.e., rather than a timed/proctored Canvas submission).

Closing Thoughts

I do think the course catches some undue criticism, at least in certain regards. There was a lot of clamoring around "ambiguous instructions," but honestly from what I observed (i.e., Ed and Discord), there was a lot of "overanalyzing/second-guessing requirements," as well as a demonstrable failure to assess the provided material critically (including additional FAQs provided as needed), e.g., instruction says to plot in a certain way, and yet still questions on how it's supposed to be plotted; and so on. That's not to say that the instructions were stellar by any means, but also by no means completely lacking in clarity, either (or at least I've seen worse in OMS to date elsewhere, personally). For the most part, just do something reasonable that addresses what's been asked; it's really no more complicated than that. I can understand some unease around it for the first couple of assignments/projects while still pending grades, etc. in order to get a better gauge, but these types of matters/questions were still ongoing/persistent late into the semester from what I saw (i.e., well after grading was "battle-tested" by that point). However, the actual grading was not overly imposing (and regrade policy was relatively generous), and for the most part, if you did what was asked, then that was generally sufficient to score high marks (100% in most cases).

Additionally, I've also seen the (in my view) undue criticism of "it's too easy." I do think that this course in particular is very much so a "choose your own adventure" ordeal in terms of how deeply (or not) you decide to dive into the topics and tools. For me, being rusty with Python/pandas etc. (and particularly since I'm in the systems specialization and more generally applications development focused in my personal and professional work, as opposed to being more entrenched in the data domain), I thought the assignments were a good opportunity to gain more skills and explore some interesting topics in that vein, without being overly imposing from a time requirement standpoint. Otherwise, if you're not interested in ethics (and how it fits into AI/ML), then I'm not sure what the point is of taking a course on the topic, only to complain about it later... (That's not to say that criticizing administrative issues is off limits by any means; but even on that front, too, I did think some of the criticism was overblown nevertheless.)

This is a pretty light course overall and should be amenable to pairing with another, even over the summer (AIES and DM paired together was less work than single courses individually that I had taken previously, e.g., GIOS and HPCA).

MGT-6311
Digital Marketing
Taken Summer 2024
Reviewed on 8/2/2024

Verified GT Email

Workload: 5 hr/wk
Difficulty: Very Easy
Overall: Liked

Even in a summer semester, the course felt extremely light. The modules are highly relevant and provide extensive knowledge in regards to each digital channel in a marketer's toolkit. While the course if fully theoretical, I appreciated the identical structure in each chapter that went like channel statistics > channel benefits > channel considerations > channel best practices and so on. This structured course planning allowed me as a student to understand each tool to the complete extent. While we are on the subject of theory, I do wish that the course covered some practical aspects of digital marketing. I would have loved to see some assignments that involved analyzing and reporting insights from marketing related datasets.

The mini-cases should not take longer than an hour to complete; the 5 major cases throughout the semester were also fair and did not take a significant time dedication. It felt like a great opportunity to express my learnings by employing critical thinking and also utilizing the knowledge gained from the class. Finally, the two exams felt even easier compared to the assignments. The slides and video lectures were enough for me to perform great in the course.

CS-8803-O21
GPU Hardware and Software
Taken Summer 2024
Reviewed on 8/2/2024

Verified GT Email

Workload: 10 hr/wk
Difficulty: Medium
Overall: Liked

Review:

It is a nice class, especially if you like HW architecture stuff.

Lectures are a mixed bag.Some are quite good, but some are surface level and you need to go into the required and optional readings to get the most out of them.

Exposure to new concepts is splendid.You go really deep into GPU HW, SW and Simulation.

Projects are pretty good, except one.P1 and P2 that deal with CUDA are some of the best projects I've done in OMSCS.Especially P2!P3 and P4 are also quite good.Help drive the lecture concepts in.But might not as "exciting" as P2 for some.P5, however, isn't a pleasant experience in its current form.The instructions seem ambiguous, the expectations are not very well laid out, and the documentation is sparse.The use of dynamically typed python was also quite frustrating (no type hints + bad documentation = pain).It's a new class though, so I expect some changes here.

Quizzes are mostly easy, but there are a couple of challenging ones where you really need to read the papers.Exam is quite unlike the quizzes. If you don't understand the lectures, you'll not get a good score.

Workload is manageable.Even with the compressed summer schedule + changed weights (see below) + compulsory final v/s spring, it was doable.Some bursts of intensity around P2 and P5, but the instructors are planning on changing the scheduling further from the next semester onwards so that P5 and the exam don't sit so close together, so this should make things even more manageable.

Overall,TLDR:

  • Recommended if you want to learn more about GPU HW and SW, and liked courses like HPCA, GA, IHPC.
  • Easy-moderate workload.
  • Mixed bag lectures, but really good readings.
  • Pretty good projects, barring one.
  • Active, approachable, and involved, Professor and TAs.
  • Open book, open notes exams (for now). Open everything quizzes.
  • New class, so expect some changes in the next 1/2 semesters.

Changes from Spring 2024:

  • Exam is mandatory. No more choice between P5 and Exam.
  • Only one attempt per quiz (except quizzes 6, 7, and 8, which get two).
  • Current weights:
    • P1 (CUDA - Intro) - 5%
    • P2 (CUDA - Implement and Optimize Bitonic Sort) - 20%
    • P3 (GPU Simulation - Warp Scheduling) - 15%
    • P4 (GPU Simulation - Compute Cores) - 15%
    • P5 (GPU Compilers - Branch Divergence Detection) - 20%
    • Quizzes - 15%
    • Exam - 10%

EDIT: My notes. Hope they help!

CS-8803-O22
Security Incident Response
Taken Spring 2024
Reviewed on 7/30/2024
Workload: 10 hr/wk
Difficulty: Very Easy
Overall: Disliked

The course includes good material along with busy work. The valuable content, such as Splunk, is applicable to cybersecurity jobs. However, the busy work consists of weekly written assignments and two group projects. The course could not be delivered worse, and no one is accountable except for the professor and TAs. They set due dates on Saturdays, claiming it was so the TAs could have time to grade work and release grades on time, but they did not fulfill this promise. The group work was also a total failure. They assigned people from all over the world with different time zones without considering these factors. When classmates criticized the TA team, the professor did nothing except ask students to be understanding and compassionate. However, they were not compassionate themselves if a student was late on an assignment. This was by far the worst class I have taken during the entire program in terms of logistics.

CS-6340
Advanced Topics in Software Analysis and Testing
Taken Fall 2023
Reviewed on 7/27/2024
Workload: 6 hr/wk
Difficulty: Medium
Overall: Liked

I have written a separate post to review this course. Please feel free to view it here.

TLDR - This is a great course. Not that challenging but not that easy either. This is between the light-medium range with a skew towards the medium. Knowing C++ and debugging is a must. LLVM knowledge can be learned throughout the course but prepare to spend more time on it.

CS-6515
Introduction to Graduate Algorithms
Taken Spring 2024
Reviewed on 7/26/2024

Verified GT Email

Workload: 15 hr/wk
Difficulty: Hard
Overall: Liked

Video version: https://youtu.be/Azi7fpis-Hc

While this course isn't perfect, I really enjoyed it. Unfortunately, its shortcomings are amplified by administrative issues. If GA wasn't required for most specializations and wasn't so impacted, I think it would have much better reviews. As it stands, this is just about the worst class to have in your last semester because it's so exam heavy (read: stressful) and so different from other OMSCS classes; it's basically a math class.

I thought the lectures were great, as well as the required textbook. The weekly quizzes were OK. There were some ambiguous questions, but overall they were fair. The homework was a good barometer for what to expect on exams, both in terms of format and difficulty. One bit of advice--don't worry too much about your homework grade. Look at it as exam prep, and if you get any points off just make sure you understand why.

The exams are definitely stressful because they make up such a large portion of your grade and there are so few questions. With that being said, so long as you adequately prepare, they're not too bad.

Coding projects were easy and didn't take very long.

My advice: 1. Successfully complete all recommended practice problems under exam conditions 2. Watch all office hours (weekly and exam prep) and understand each explanation/solution 3. Actively participate in a study group 4. Don't stress

Yes, the class isn't perfect. The exams are stressful and some TAs can be rude. Still, this was one of the most interesting and enjoyable courses I took in OMSCS. I just wish the administration could figure out how to make it available to students earlier in the program.

MGT-6311
Digital Marketing
Taken Spring 2024
Reviewed on 7/19/2024

Verified GT Email

Workload: 3 hr/wk
Difficulty: Very Easy
Overall: Liked

Video version: https://youtu.be/kIWOmKljQqo

This class is extremely light, but a good introduction to digital marketing. It's well-organized with weekly modules. Lectures are clear and to-the-point.

There's a weekly writing assignment related to the lecture material, either a mini-case or a major case reflection (9 mini-cases and 5 major case reflections). Mini-cases involve reading a short (about 1 page) case study from the textbook and writing a short (about 3 paragraphs) response to 3 questions. Major case reflections are longer versions of mini-cases in which you read a case study (5-15) and answer 3 long form questions (about 2-3 in total).

The midterm and final are closed note, 35 questions each, multiple choice and quite easy. I studied an average of 7.5 hours for these exams and averaged an 93%. I just rewatched the lectures and reread the textbook chapters and case studies.

A very easy class, but very well organized and could be useful if you're interested in starting a business. I paired this with Graduate Algorithms while working full-time and I hardly had to think about this class.

CS-8803-O17
Global Entrepreneurship
Taken Fall 2023
Reviewed on 7/12/2024

Verified GT Email

Workload: 5 hr/wk
Difficulty: Easy
Overall: Disliked

Video version: https://youtu.be/pXluusB4CZ0

This class has a lot of potential, but unfortunately its current form feels very half-baked.

The lectures are very engaging and informative. They're targeted at someone with a technical background who doesn't have much business experience. I think this type of class would be very beneficial for many students in OMSCS, but they really need to improve the rest of the course.

The course centers around a semester-long group project. Your team generates an initial idea and conducts customer discovery interviews (15 per week) for 8 weeks. You also fill out a business model canvas and submit a short video presentation each week. At the end of the semester you submit a longer video presentation to summarize your findings.

The requirements for the presentations do not change over these 8 weeks and so they end up feeling very repetitive. Also, the requirements are very vague and our team received wildly different feedback and grades depending on which TA graded our presentation, even though we used the same format for each presentation. Sometimes we would get marked down for not including something that was not mentioned in the requirements. A few times a TA posted in the forum that many teams were getting marked down for the same thing that wasn't mentioned in the requirements, but this was always after the fact and we were never made aware of these expectations before they were included in the grading rubric.

The TAs were also very unresponsive in the forums, often taken many days to answer even simple questions, and unfortunately this usually meant that answers were given only a day or two before deliverable due date. In general, these responses were also very vague and unhelpful. The professor posted a few times and seemed pleasant, but he's just not very involved with the administration of the course.

This course is still relatively new, so hopefully the instructional staff can sort out these issues. I would love to see more detailed and varied deliverable requirements, possibly focusing on different sections of the business model canvas aside from customer discovery. Case studies would also be great assignments since this is a business course.

This course is well-situated within OMSCS and thus has a lot of potential, but the execution and involvement of the instructional staff really must be improved to make it worthwhile for students.

CSE-6040
Computing for Data Analysis: Methods and Tools
Taken Spring 2024
Reviewed on 7/9/2024

Verified GT Email

Workload: 5 hr/wk
Difficulty: Very Hard
Overall: Disliked

This was my first class I took in the program, and in general felt very unprepared. My background is basically having doing an honors math program in my undergrad, where I took 2 intro computer science classes (one in R, one in Python) my senior year. Then the last 3-5 years, I did a huge ton of python training on the DataCamp platform during covid when I was skill building for a job transition.

I have build and used some python skills in my current job heading into this course (working with modifying some pre-build automation tools), but came into this class feeling very unprepared.

This class for better or worse focuses on just doing practice, and less on the lectures. In fact, I think there aren't any mandatory recordings recommended at the first few weeks of the class except syllabus stuff. Although there are some short recordings, and a few saved full lectures from the in person course from a few years ago. To me, the videos felt not very useful, especially the ones that were based on in person lectures and were just tacked onto the course as supplemental materials.

You learn by doing the assignments. I will say in general the workbooks are detailed, and do go into a lot of depth. You basically get good at the homeworks by learning to google random comp sci terms, and get good at learning new syntax, and what to do if you're struggling with syntax. If you go to the additional boot camp seasons, they really try to help you with resources to become a self reliant coder.

In general, I feel very positive about the bootcamps. I never attended any of the ones live because of schedule except the first one, but they do put a lot of work in them. Unfortunately, it does feel like there is a huge skill difference in the kinda of basic things they help with review early in the course and jumping into the 2nd/3rd week plus of materials.

I quickly felt very behind. I managed to get through the homeworks all semester, but the exams were brutal. First exam I wasn't sure how to study, I was doing past practice exams and barely getting anything correct. There is extra credit on each exam, basically they are worth up to 14-16 points and 10 points on each exam is passing. 2nd exam our semester was complete hell. I got sick the week of and literally got a 0% after trying at it for 90 minutes. I think our class average was like 30-40% after the extra credit. They were nice and decided to curve it after, which they said they never do at the top of the semester lol. Final was a lot more reasonable, but still some impossible parts. I scrapped by getting all 1 pointers and most 2 pointers, never getting one 3 point question right on all 3 exams, and scrapped by with a C.

They give you some sample problems the 1st week and basically tell you if you can't solve enough of these problems, you might want to take some supplementary coding classes or self-study first. I would say if you're someone that thinks they have the time in their life to improve before taking the course, no shame in dropping first week to take an easier class first. I definitely plan on brushing up my skills a lot more before my next CSE course.

CS-6290
High-Performance Computer Architecture
Taken Fall 2023
Reviewed on 7/9/2024

Verified GT Email

Workload: 15 hr/wk
Difficulty: Hard
Overall: Strongly Liked

Video version: https://m.youtube.com/watch?v=ZYL1fKduJJU

This is a fantastic course, one of my favorites in the program. The lectures are extremely comprehensive, definitely the best set of lectures of any course I took in OMSCS. They cover a wide variety of techniques used in modern processors for executing tasks and optimizing performance. Each lecture goes very in depth, and overall they really feel like they come from a graduate-level computer architecture class.

The midterm and final emphasize problem solving, and while they are difficult because of the sheer quantity of material, the lectures provide all the material you need in order to do well.

The projects utilize the open source SESC simulator, written in C++. They are a combination of calculation, changing configuration variables, free response questions and modifying functions in the simulator code. They tie in closely to the lecture material. Because you work within an existing simulator, it's important that you feel comfortable working within a large codebase. You don't actually write much C++, but understanding the architecture of the simulator and what functions call other functions is very useful. The only downside of these projects is that they must be submitted by filling out a template Word document, which had the occasional formatting issue and obviously didn't have any auto-grading capabilities.

Nolan, the head TA, is extremely active in the forums and is one of the best TAs I've had in OMSCS. The professor also holds weekly office hours.

This course is great, and in my opinion is a fantastic course to prepare to GIOS or other systems courses that work at higher levels of abstraction.

CS-6035
Introduction to Information Security
Taken Summer 2023
Reviewed on 6/28/2024

Verified GT Email

Workload: 10 hr/wk
Difficulty: Medium
Overall: Liked

Video version: https://youtu.be/Fq9B3s6guIY

This is a fun, project-based course. Your grade in this class is made up exclusively of the projects. I took the class in the summer—there were 7 projects (one was extra credit). In a normal semester (fall/spring), there are 8. For the most part, projects are in a fun "capture the flag" style that is common in security challenges. My favorite project was Log4shell and least favorite was Malware Analysis. Each project is run by a different TA, and they normally supplemental materials and video walkthroughs. That being said, some TAs are more helpful than others. For the most part, expect that you will be interacting with other students more than TAs in the forums.

While lectures for this class are actually quite good--and the open source textbook has many great resources for students looking to dive deeper into particular topics, something all OMSCS courses should adopt--they are almost completely unrelated to the projects. The Cryptography project description recommended watching the RSA lecture, but other than that the lectures weren't mentioned at all. This was exacerbated due to the fact that there are no exams, so the lectures were completely unnecessary when it came to your grade.

This class is a good introduction into the field of InfoSec and is easy-medium difficulty depending on your background. If you come into this class expecting a (mostly) fun set of security challenges with a solid collection of lectures and supplemental material, you won't be disappointed. Just don't expect too much support from the instructional staff.

CS-6300
Software Development Process
Taken Spring 2023
Reviewed on 6/22/2024

Verified GT Email

Workload: 5 hr/wk
Difficulty: Easy
Overall: Neutral

Video version: https://youtu.be/Jwcl0iHCALU?si=vt6FsPlBPwfbCm3E

SDP is a fun, but very light course. I would only recommend this course to someone with no (or very little) professional software development experience. Most of what you learn in this course is what you'd learn in your first 3-6 months in as a software engineer. Things like version control, IDE usage, testing, the software development lifecycle and Agile methodology and OOP. There are few more advanced topics, like software architecture design patterns and different types of documentation like software design docs, test plans and UML diagrams, and static analysis.

The lectures are engaging, though quite surface-level. We had 6 assignments which ranged from extremely easy to fairly easy. All were done in Java. There was also a group project (building an Android app) and an individual project (command line file parser with flag support). There were no exams.

The group project was the highlight of the course for me. I was paired with two experienced software engineers and learned a lot from them. As a junior engineer at the time, I really enjoyed drafting the different design docs and designing the backend and database as these are normally tasks designated to more senior engineers.

Overall, a good class to take if you have minimal professional software engineering experience and want a light semester or looking to do multiple courses. Otherwise, I'd skip it.

CS-6601
Artificial Intelligence
Taken Spring 2024
Reviewed on 6/19/2024
Workload: 15 hr/wk
Difficulty: Very Hard
Overall: Liked

Background: minor in CS in undergrad, working as a dev for a decade. Second OMS class, first AI-related class ever.

The class material and assignments in AI were really good, but time-intensive. The class covered everything from classical search to game AI to ML algorithms. At its core, it's an AI survey class where you implement algorithms. The first half is doable with just good programming skills, but second half ramps up brutally with the math almost like flipping a switch, mainly (Bayesian) probability and some linear algebra. My math background is a work in progress and my last real math class was in the 2010s. I didn't prep much for the math beforehand and just picked up what I needed to on the fly. But the better you are at Bayesian probability and in general with reading and understanding arcane math notation, the easier the class will go. I found the second half of assignments more difficult than the first half, but those with a stronger math background got through them more quickly and easily than I did. Conversely, because of my background, I'm probably a stronger programmer than many of the students who are out of school or Jr devs and found the first couple assignments easier, though still quite time consuming. Start working on assignments the day they are released. I spent between 12 and 19 hours in-editor working on the code for each assignment.

The class is organizationally a mess, run 99% by TAs, and the midterm and final exam both had a week of corrections afterwards with much drama abound (TAs write the tests from scratch for each semester). On one hand, it's very clear the TAs try to make the tests fun, engaging, and relevant educational opportunities, so a round of applause to them for the effort. When the questions worked, they worked and felt like fun puzzles rather than test questions. But on the other hand, the questions and answers are riddled with errors. The staff claims they go through a QA process, but I suspect the process can be improved. Both my midterm and final grades went up by double digit percentage points by the time corrections were over because of errors the TAs made in either the questions or their answer keys. Additionally, the tests throw in questions about concepts that were not covered or expected knowledge, like Q-learning or the details of convolutional networks. Great idea in theory, but stressful and pedagogically questionable to throw on an exam without advance notice. The plagiarism/honor policy is weird and has a chilling effect on collaboration. But despite this, there was a super active Discord with a good sense of community and commiseration.

I skimped on the readings, but at least skimmed through all of them. The textbook is a good resource, but gets dense with math notation, especially in the ML sections. While using outside resources like watching YouTube videos, reading Wikipedia, or chatting with ChatGPT to understand a concept would have been a forboden violation of the class' plagiarism/honor policy and so I did not do any of those things, I certainly thought about doing those things but definitely did not act on those thoughts in order to better understand the material or get a better background for the material.

So overall a mixed bag with with challenging and interesting material where I learned a lot in spite of needless drama, frustration, and difficulty because of the class's implementation. Worthwhile? Ultimately yes, but be prepared to spend a lot of time and be a little frustrated. I spent 175 hours total on the class, peaking at 21 hours one week, but with most weeks being closer to 14 hours of effort on average. I got an A, but definitely didn't get everything I could have out of the material just because of time constraints with work/life.

CS-6750
Human-Computer Interaction
Taken Spring 2023
Reviewed on 6/14/2024

Verified GT Email

Workload: 12 hr/wk
Difficulty: Medium
Overall: Liked

Video version: https://youtu.be/G7gInGPA8PU

This was a really useful course. It covers both the principles of HCI as well as practical methods for developing useful interfaces. The last few lectures described applications of HCI in the real world across several different domains. The class is extremely applicable to anyone working in technology and really teaches you to think from the user's perspective. You don't have to work in product design or frontend for this class to be useful.

This is a Joyner class, so you can expect high-quality lectures, clear assignments, fair exams and overall a well-structured course. The course has been re-structured a bit, including the addition of a team project. When I took the course there was an 8-page paper due almost every week, two exams, and a month-long individual project at the end of the semester.

As for downsides, some of the Methods lectures were not very useful. I felt that topics like different datatypes (qualitative and qualitative) and basic statistics like p-tests were below the level of a Master's course and should be assumed knowledge. I also got very little out of giving and receiving peer feedback, and this got very tedious. Much more useful were the exemplary papers that TAs posted from the previous week.

Despite some of these shortcomings, this class is a great introduction into the world of HCI, and I'd recommend it to anyone in the OMSCS.

CS-6200
Graduate Introduction to Operating Systems
Taken Fall 2023
Reviewed on 6/7/2024

Verified GT Email

Workload: 17 hr/wk
Difficulty: Hard
Overall: Strongly Liked

Video version: https://youtu.be/gReO33VcgHk

This is a great course, especially if you've never taken an Operating Systems course before. It's very comprehensive and covers topics like system calls, processes vs. threads, multithreading and mutexes, pipelining, memory management, inter-process communication, virtualization and remote procedure calls. Lectures are clear and contain useful metaphors. The two exams are fair and emphasize problem-solving, so while there were relatively few questions they took me the entire time to complete.

The projects are only loosely tied to the lectures and are much more practical. You mostly work one level of abstraction up, so instead of working at the kernel level, you use C code to make system calls to the operating system. These projects were probably the most challenging of any I took in OMSCS. Project 1 took me about 90-100 hours, Project 3 took 70-80 and Project 4 took about 20 hours to complete the first half (I didn't do the second half due to burn out). I highly recommend getting hands on experience with C programming, especially debugging with tools like valgrind or gdb, because that was the biggest time sink for me. If you already have experience with C or C++, you can probably expect to spend about half as much time on the projects. Also, don't waste your time aiming for 100% on the projects, there are a few hidden edge cases that took a disproportionate amount of time to pass.

I think the quote "Nothing good comes easy, and nothing easy is good" applies to this course. As someone who didn't do a computer science undergrad, it definitely made me a much better programmer, but I also felt pretty burnt out at the end (outside life events also contributed). Still, I highly recommend this class to anyone, unless you took a very similar course in undergrad.

CS-6250
Computer Networks
Taken Summer 2023
Reviewed on 6/5/2024

Verified GT Email

Workload: 6 hr/wk
Difficulty: Easy
Overall: Neutral

Video version: https://youtu.be/htQPeOnEbO4

This class is ok, and a fine introduction to computer networks if you’ve never taken a class on the subject. You learn about the OSI model, common internet protocols, domain routing and router architecture, software defined networks, content delivery networks, BGP and a bit about security.

The content of the lectures are good, but the actual videos are extremely dry and boring. Definitely the worst lecture videos of any class I took in OMSCS. The saving grace is that there are written note versions of the lectures. After watching a couple videos, I ended up just reading the notes for the rest of the semester. 

The weekly quizzes do a good job of preparing you for the two exams, although the exams were a little bit too trivia heavy for my liking. When I took the course there were 40 questions on the first exam and 50 on the second, all multiple choice.

There were 4 projects. In the first two, we implemented algorithms from the lectures: Spanning Tree Protocol and Distance Vector. These were fun and not very hard. The second two, SDN Firewall and BGP data analysis, were more tedious with less programming and more sifting through data.

If you haven’t taken a networking class and want an easy summer class or double up course, I could recommend this class. Otherwise, you’re fine skipping it. There are plenty of good networking resources online.

CS-6200
Graduate Introduction to Operating Systems
Taken Spring 2024
Reviewed on 5/28/2024

Verified GT Email

Workload: 35 hr/wk
Difficulty: Hard
Overall: Strongly Liked

I really liked this course. I recommend it. A few pieces of advice I would give to future/current students.

  1. The slack channel is better than Piazza for project help. For a link to the Slack channel, check out omscs.rocks
  2. For project1, use Beej's guide and begin your implementation with a file type agnostic implementation. Your code should work the same for .jpg files as it does for .txt files.
  3. For the next project, you're given an option of using System V or POSIX. TRUST ME, use POSIX and use named everything. Named semaphores, named message queues, etc. Whatever you decide to use, make it named.
  4. The final project requires gRPC. If you're prepping for the class, a C++ gRPC tutorial is easy to google. Give a tutorial a read. It will save you time later.
  5. The exams are a fair knowledge check for anyone that watched the lectures and read the papers. It was my experience that the study guides, published by the instructor team, are a good indication of what will be on the exams.
CS-7638
Robotics: AI Techniques
Taken Spring 2024
Reviewed on 5/24/2024

Verified GT Email

Workload: 10 hr/wk
Difficulty: Medium
Overall: Strongly Liked

Video version: https://www.youtube.com/watch?v=qBqIph\_nwZM

AI4R was my first class in OMSCS. I didn't have a CS undergrad and this course was a great introduction to the program. Some of the math concepts (probability and linear algebra) were challenging, but the actual programming (all Python) was not too difficult. Overall, it was one of the most fun classes that I took.

The course covers traditional AI techniques related to robotics like localization, mapping, path planning and SLAM. The best part of the class is the projects, which are very visual and provide a deeper understanding of the material. The lectures are also very good, but maybe a little too surface-level. With that being said, the professor and TAs are very active in the forum and provide supplemental material to help students complete the projects. The course is very well structured. The midterm and final were fair, and on the easier side.

One small complaint I have is that there was no mention of more modern techniques. A brief introduction to computer vision or deep learning at the end of the course would have made the course feel less outdated.

MGT-8813
Financial Modeling
Taken Spring 2024
Reviewed on 5/23/2024

Verified GT Email

Workload: 2 hr/wk
Difficulty: Very Easy
Overall: Neutral
CS-8803-O13
Quantum Computing
Taken Spring 2024
Reviewed on 5/23/2024

Verified GT Email

Workload: 10 hr/wk
Difficulty: Medium
Overall: Strongly Liked

My favorite course thus far. Great intro to quantum computing.

I think a few things could've been explained a bit better and I wrote a blog post: https://medium.com/@david.bai/quantum-computing-gates-and-phase-82d0a1e9ef5c

Also I wrote out basically almost all the qiskit you need to know for the course here: https://github.com/gitgud/cs8803-O13-visuals/blob/main/qiskit\_basics.ipynb

TA's were great!

CS-6603
AI, Ethics, and Society
Taken Spring 2024
Reviewed on 5/20/2024
Workload: 5 hr/wk
Difficulty: Very Easy
Overall: Disliked

So yes, this class is quite easy. The assignments are very straightforward and the tests are fairly easy if you just watch the lectures. Grading is quite lenient as long as you check all the boxes. Now, some of the material is indeed worth discussing/interesting such as the laws and ethical considerations surrounding deployment of ML/AI. They also introduce you to some actual software tools and methods to mitigate bias and encourage you to think about the trade-offs when using these algorithms and what 'fair/unbiased' even means in some contexts.

I don't necessarily have a problem with a class being easy, my main gripe with this class is that some of the assignments/tests just seem poorly constructed. There were some questions that were clearly just asking the wrong thing or confused about the thing it was asking us to implement. Other questions were clearly going to return useless results, but the instructions from TA's were to just do it anyway and report those useless results. These questions should probably just be removed/edited? I felt that the intro stats material should just be made optional and dig more deeply into the bias/fairness techniques or something like model transparency/explainability. The final felt like a repeat of the final project, just a report of going through a use case of doing bias mitigation.

I'll contrast this with another class which I would also consider pretty easy (though I'd say slightly harder), but for which I gave a great rating: CS7632 Game AI. The assignments in that class are extremely well designed and incredibly fun, I actually cared about putting extra work in even though I didn't need to since the assignments were engaging instead of some....thing....that I would get out of the way in this class. A revamp/clean-up of the assignments to something more engaging/interesting would easily bump this class up to a 4.

CS-7280
Network Science: Methods and Applications
Taken Spring 2024
Reviewed on 5/8/2024

Verified GT Email

Workload: 8 hr/wk
Difficulty: Medium
Overall: Liked

This is a good class. Not too difficult, but not a walk in the park either. I enjoyed the projects, although you need to be careful and read between the lines on some of the questions - I lost a few points (especially on Project 4) because I didn't use the types of functions that some of the problems wanted me to use.

The only gripes I have are 1) the quizzes don't allow any retakes, which I thought was a little silly. However, they are open notes, can remain open until they're due, and you can find the majority of the answers in either the lecture materials or the required readings, so this is minor.

A more significant complaint lies in that the lectures have little to do with the programming projects. The lectures are, in fact, all conceptual and no coding, while the projects require you to do a lot of digging on your own to figure out how to program what needs to be programmed. On the one hand, I get it - it's a graduate class - there should be a lot of independent research and brainstorming on the students' part to find the answer, but this seems a bit too extreme. A *little* more coding groundwork in the lectures would go a really long way, even if we still had to explore new territory on most of the projects on our own.

But the class is fun, the material is interesting (it's essentially applied graph theory), and just like how Bayesian Stats equipped me with PyMC, which will almost certainly become extremely useful in my future AI/ML endeavors, learning how to utilize NetworkX (I know it sounds like a dirty website, but it is a real Python library) will likely also be invaluable. I'm glad I took the class, though I would recommend putting in more than 6-12 hours per week like I did. Maybe 10-15 at minimum if you want to have a comfortable shot at an A.

ISYE-6420
Introduction to Theory and Practice of Bayesian Statistics
Taken Spring 2024
Reviewed on 5/8/2024

Verified GT Email

Workload: 8 hr/wk
Difficulty: Medium
Overall: Neutral

I actually sort of liked this class, mostly because of how helpful Aaron was (his online book of PyMC conversions is invaluable), and because of my affinity for math, which made the first half the class interesting to me in a way that it probably isn't to most students who take this. Aaron's material and his office hours are imperative to getting an A in the course, unless you're already familiar with PyMC and have extensive experience with it (or are for some reason familiar with WinBUGS).

That being said, I got a B, mostly due to not putting the extra hours necessary into it to do well, as well as underestimating the workload and intensity of combining this class with Network Science (a comparatively difficult course, which is to say, moderate). There's a reason why it's recommended that you begin the program with one course, even if you're not taking a notably difficult class like AI or RL. Handling two medium+ classes that have little to do with one another simultaneously probably wasn't my smartest idea.

A couple of criticisms:

First and foremost, the grading is scattershot and seems entirely dependent on which TA you have grading your exams. I reconciled that even if I got my midterm and final regraded by someone else, I'd likely still end up with a B anyway, so I didn't bother with regrade requests, which admittedly are available. But it's quite annoying to have subjective opinion be so dominant in the grade you receive. It adds a lot of unnecessary stress. You basically have to make your answers completely bulletproof to ensure an A.

The second thing is, in the later half of the course, the non-coding lectures have less and less to do with the code you actually write. The professor explains the basic ideas, but beyond that there's almost no similarity, especially if you're using PyMC. It also seemed like a lot of things, like SSVS, weren't explained well at all, and I had to sort of memorize Aaron's notes in order to replicate it.

But at the end of the day, I liked how this class reintroduced me to probability, statistics, and calculus, which I hadn't worked with since undergrad, and I'm glad I learned how to use PyMC, which I'm sure will become more valuable as I advance with AI and ML courses. I'm giving this a Neutral rating, but you should really consider it Neutral+, or halfway between Neutral and Liked. This course has a great deal of potential, it's just not being harnessed super well outside of what Aaron does.

ISYE-6501
Introduction to Analytics Modeling
Taken Spring 2024
Reviewed on 5/7/2024
Workload: 10 hr/wk
Difficulty: Easy
Overall: Strongly Disliked

I have no idea why this class appears to be as highly regarded as it is. For the record, I got an A, and this is a terrible class.

The class is taught entirely by TAs and the professor, the director of the OMSA program, can’t be bothered to even show up for one class session. Most of the TAs provide good instruction but it’s hit or miss. Some are much better instructors than others. It’s tough luck if you get a TA with poor instructional skill because questions asked during the office hours are frequently met with “you can rewatch the video” or “you can ask that on Piazza”. Piazza is a whole other problem I’ll discuss later.

The video lectures are the primary way information is delivered and what will form the basis of the tests. Homework has nothing to do with the tests. The lectures are short and high level while the tests are detail oriented and confusingly worded. I feel sorry for anyone that doesn’t have a solid mastery of English. The class is also bizarrely organized. It starts with SVM then jumps around between supervised and unsupervised learning models. A cursory review of any intro textbook (and I have read several) will provide a logical flow of information. For example, SVM is always covered late in an intro book. This class should just use ISLR as a textbook, it’s right there.

The homework is time consuming and worth minimal to your grade. Most people seemed to spend their time learning how to code it than learning the underlying analytics techniques. Yes, a student is supposed to have “coding proficiency” for the program, but when OMSA routinely accepts people without such proficiency and tells them they can pick it up on the fly, they have implicitly altered the requirements of the program. This affects the peer review grading, which is a terrible and idiotic method of grading in grad school. For example, I had issues with RStudio crashing and was unable to complete one assignment. I went ahead and turned in what I had. I got 100 on it because two peers graded it 100 without any commentary. Another assignment received 90 as the final grade, but one peer graded it 75 because “I was interested in more explanation about the data” (which was the entirety of the comment). The data in question was “from your personal or work experience, what kinds of data might be used on a classification model?”, the HW had three more parts and no “explanation” of the data was asked for in the HW.

The point of all that, is that your HW grade will be a complete crap shoot with minimal to no reason as to why. You certainly will not receive any response that will be educational. Given that HW is also worth so low in the final grade, it’s best just to learn how to make the report look pretty and turn in the bare minimum. That will get you 90 to 100 almost every time even if you’re completely wrong. It’s much more worthwhile to spend your time understanding the lecture material in this class than doing HW.

Piazza is a terrible forum system and I have no idea why it’s being used by GT at all. There’s so many people in the class that it’s just flooded with thousands of posts. Everything from relevant questions to people that didn’t read the syllabus to questions out of left field. It was just too much to wade through.

The class is a fairly easy A, just focus on the lectures, Like really understanding them, and make your HW look prettty. The you’re all good.

CS-6290
High-Performance Computer Architecture
Taken Summer 2023
Reviewed on 5/6/2024

Verified GT Email

Workload: 15 hr/wk
Difficulty: Medium
Overall: Liked

The class is well run, the lectures are very clear (note: some of the best in the program), the TA provides very helpful information

Personally I found the class kind of dry. The way they want assignments to be done is annoyingly specific (type X into the docx, it must be red underlined, give 4 points of decimal precision, copy and paste this directly from docx into shell). It feels at times like the assignments are just testing your ability to follow instructions to a T

The tests are open book but very stressful. Assignments are an easy A, but the tests are what distinguish who gets what grade I definitely think I got a lot out of this class, but it was harder than what I was expecting. The final is cumulative, make sure to take plenty of notes for it

CS-8803-O12
Systems Issues in Cloud Computing
Taken Fall 2023
Reviewed on 5/6/2024

Verified GT Email

Workload: 20 hr/wk
Difficulty: Medium
Overall: Strongly Liked

Just some quick context before I jump into this review: I took AOS in spring of the same year. I work full time as a backend SWE. For this semester, we just finished the mapreduce module as I'm writing this

Compared to AOS, this class is very different. It isn't as lecture heavy, there are no papers, there are no exams. It's as if you took the AOS projects and tripled/quadrupled the requirements. And these projects feel most similar to the libvirt project in AOS: you have to sift through a bunch of documentation and come up with your own design in order to satisfy the requirements. It isn't like they give you a pre-implemented framework where you fill in the blanks, you will have to suffer through a bunch of documentation and start from scratch for a lot of it

Overall structure of the course: you have 4 modules. Each one is split into 4 weeks, first three weeks have a workshop due every wednesday, last week has a project that's due. Every week you present to a TA, normally the project demo is more involved than the workshop demo

I'll summarize the modules now:

SDN: this one assumes some knowledge of networking (high level understanding of ARP, switches/links in a LAN). You don't necessarily need a networking class under your belt to survive here (I didn't), but it might be nice to have. This module is very unique, you use linux's built-in network virtualization to virtualize a network topology of hosts, links, and switches, then use an SDN framework called Ryu to programmatically install traffic rules on the switches

NFV: ditto wrt networking stuff in the SDN module. This module isn't as hard as SDN, but it's no walk in the park either. It also builds on top of SDN, so if you struggled in SDN you'll struggle here too because it builds on top of prior knowledge. It's similar to the SDN unit with the hosts, links, and switches, except now some of the hosts use linux iptables to behave as network functions (e.g. host2 acts as a firewall between hosts 1 and 3). It also teaches you some docker stuff, SDN unit was using a tool called mininet to set up the network topology, in this unit you use docker instead (which is slightly more involved)

Systems: This one does a better job of spreading the workload out across the different workshops. In SDN and NFV the workshops are on the easier side and it ramps up a lot more for the projects. In this unit, you build a mapreduce framework (primarily for doing wordcount because of how they want you to shard inputs). The framework is deployed to k8s. You have to expose external APIs on the master for submitting jobs and deploy it onto azure k8s

Apps: In progress right now. Anyway you choose your own project for this one so YMMV In terms of difficulty (for me): SDN > NFV > Systems. I write this because I've done a few mapreduce projects. For someone not in that boat, I'd predict something more like SDN/Systems > NFV

Overall: a very fulfilling course. Very SWE heavy, most of the work in this class is spent on the projects. And they are large projects, some of the largest I've worked on in this program so far

CSE-6220
High Performance Computing
Taken Spring 2024
Reviewed on 5/6/2024

Verified GT Email

Workload: 20 hr/wk
Difficulty: Very Hard
Overall: Strongly Liked

This is a good course. Lectures are very good, albeit dense. A lot more math in this course than what I expected going in. The course readiness thing mentions calculus but you never use it (at least, not in lectures and not in our exams). Algebra and very basic linear algebra are good enough

Course is in 3 parts: memory-hierarchy-aware algorithms (e.g. external sorting), SMP multithreaded algorithms, and message passing distributed algorithms. Each section has its own mathematical model that's used for analyzing performance Would recommend taking this course alone. Getting an A is already hard, but even if you manage to get an A there's still more to understand

This class was the halfway point for me, best one I've seen so far in OMS. Grateful for the professor and TAs

CS-7638
Robotics: AI Techniques
Taken Fall 2023
Reviewed on 5/5/2024

Verified GT Email

Workload: 14 hr/wk
Difficulty: Hard
Overall: Strongly Liked

My Background: Bachelor of Science in Applied Math. When I started this course I had about 2 years of work experience as a a Data Engineer using Python / SQL / VBA Summary: The best thing about this course is that this course helped prepare me to take AI. I tried taking AI before this one but withdrew. After I took this course, I was able to get through AI the next semester. Some of the projects in RAIT were difficult for me even though I had Python experience. The parameter tuning sometimes seemed endless at times and a bit frustrating. Overall, I feel like I became a better programmer from these projects. I paired it with Cog Sci and got A's in both.

CS-6795
Introduction to Cognitive Science
Taken Fall 2023
Reviewed on 5/5/2024

Verified GT Email

Workload: 4 hr/wk
Difficulty: Very Easy
Overall: Neutral

My Background: Bachelor of Science in Applied Math. When I started this course I had about 2 years of work experience as a a Data Engineer using Python / SQL / VBA

Summary: This is the easiest class I've ever taken as part of OMSCS. I think a lot of the material covered is common sense. This would easily pair well with a second course - I paired it with RAIT and got A's in both. I think I spent less than 4 hours a week and got an easy A. I thought this course was a bit boring at the start, but appreciated the easy workload and break from tougher courses as I was getting burnt out. I liked the project at the end of the course because I chose to code and that made the work more fun!

CS-6300
Software Development Process
Taken Spring 2023
Reviewed on 5/5/2024

Verified GT Email

Workload: 10 hr/wk
Difficulty: Very Easy
Overall: Liked

My Background: Bachelor of Science in Applied Math. When I started this course I had about 1.5 years of work experience as a a Data Engineer using Python / SQL / VBA

Summary: If you have any experience as Software Engineer, I don't think this course will teach you anything new. I would recommend this as first course for starting OMSCS or if you are in the Interactive Intelligence specialization and want to avoid GA. Overall, I think it was fun despite nothing new to me and would give 5 stars if there was not a group project. It is a very easy A if you already have work experience and (you get a decent team group OR you can lead the team group and do most of the project yourself). There is a group project, so you may end up with a decent group or with a terrible group. Even with a terrible group, doing all the work yourself is not that difficult.

CS-6603
AI, Ethics, and Society
Taken Fall 2022
Reviewed on 5/5/2024

Verified GT Email

Workload: 4 hr/wk
Difficulty: Very Easy
Overall: Liked

My Background: Bachelor of Science in Applied Math. When I started this course I had about 1 year of work experience as an Analyst using VBA / Python / SQL.

Summary: This is the second easiest class I've ever taken as part of OMSCS. If you have any experience working with human data or enough logic and empathy to understand the basics of ethics, this should be a breeze. This would easily pair well with a second course. I think I spent less than 4 hours a week and got an easy A. It can be a bit repetitive and I don't think I learned anything new because I had experience with human data before, but I really appreciated the break.