Recent Reviews

A Dynamic List of the 50 Most Recent Reviews
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%
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
Artificial Intelligence Techniques for Robotics
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
Artificial Intelligence Techniques for Robotics
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.

CS-7637
Knowledge-Based Artificial Intelligence: Cognitive Systems
Taken Spring 2022
Reviewed on 5/5/2024

Verified GT Email

Workload: 12 hr/wk
Difficulty: Easy
Overall: Strongly Liked

My Background: Bachelor of Science in Applied Math. When I started this course I had about 6 months of work experience as an Analyst using VBA / Python / SQL. This was my first OMSCS course (but I transferred credit for 2 grad courses I took previously) **Summary:**This class is mostly fun - might not be the most useful material outside of school though! The mini projects and RPM project are the best part of the course. The homeworks were interesting and easy enough. I'm not a fan of timed exams, but the 2 exams were doable. The worst part is all the peer reviewing. It is a pain having to read and review so many papers every week. I think KBAI is a good first course. I put in about 12 hours a week and got an easy A.

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

Verified GT Email

Workload: 10 hr/wk
Difficulty: Very Hard
Overall: Strongly Disliked

This is easily the worst course of the ten I've taken in OMSA, both in terms of my experience and in terms of my learning. It's a shame, since I wouldn't consider my education in statistics complete without knowledge of Bayesian techniques. Now I wish that I 'd simply gone through a text such as https://www.oreilly.com/library/view/bayesian-analysis-with/9781805127161/ and taken some other, better-taught course.

What's wrong? The lectures lack depth, comprehensiveness, and signposting. The official instructor, who didn't record the lectures, assigns problems on topics not covered in the lectures, without providing supplemental instruction, for example, by writing up explanations. The instructor has minimal involvement with the students, so questions are left almost exclusively to the TAs, who aren't faculty-level experts. Some of the grading TAs clearly don't have mastery of the material.

What's good? Some of the TAs, especially Aaron and Greg, show exceptional commitment.

CS-7641
Machine Learning
Taken Spring 2024
Reviewed on 5/5/2024
Workload: 8 hr/wk
Difficulty: Hard
Overall: Liked

This class is certainly difficult, and this is coming from someone who has done stuff directly related to the material at their job for the past 5 years. The material/lectures/textbook is maybe a bit outdated (I didn't look at the textbook after about 2 modules), but I'd say it covers all of the core concepts of machine learning. The assignments are the real crux of the class, and the variance in student experience probably stems mostly from opinions about how fair the expectations/instructions/grading of the assignments are. My two cents: There is definitely a difference between the expectations for the assignments in this class vs others. They expect you to really dig into the techniques and discuss results in a way that directly links to the material in lectures/office hours. The TA's have made efforts to make what they want to see more explicit (they make an ed post for each assignment going into more detail), but there is still some ambiguity about when you have 'checked a box'. Make sure you include and meaningfully discuss everything they mention. If you spend like an hour just playing around with some hyperparameters and then briefly mentioned the results in the report (like I did a lot of the time) you are probably gonna get dinged. Use LaTeX (GaTech has free overleaf accounts) or a two column format, since it is sometimes near impossible to pack all the material into a standard google doc/word document. Use a ton of figures, every time there is an opportunity for a plot, include it.

Overall I think the grading is fair and matched my level of effort (I really tried to wing it, ~8 hrs/week), however it is somewhat ambiguous/opaque (you will pry that rubric from their cold dead hands). I do think this ambiguity encourages learning by digging into the algorithms and matching the results to the material, and the curve makes things feel more fair. The TA's are also very active in office hours (don't be like me, go to them) and the discussion boards.

The curve is harder than other classes, don't give up just because you got 50% on the first assignment. I was in a similar situation and ended up with an A after recovering a bit on other assignments and the final.

CS-6750
Human-Computer Interaction
Taken Spring 2024
Reviewed on 5/5/2024
Workload: 11 hr/wk
Difficulty: Easy
Overall: Neutral

This was my first OMSCS course. I am an older student, here for the fun of learning. I would consider myself non-CS background. I took this course because (a) reading the reviews and discussion on reddit, it seemed like a good first course to get me acclimated to the program, (b) I was looking for a foundational course to earn a "B" (I got an "A"), and (c) I was looking for a noncoding course while I took the "remedial python seminar".

This course has been revamped for this semester, so you should know the reviews from previous semesters are "out of date". Below is my take on the course.

Organization- Excellent. At the start of the course, we received a schedule for the entire course that broke down the semester by weeks, and what were the assignments/ deliverables for each week.

Lectures- informative and pretty good.

Readings- Some were good, some were bad. At the start of the course, the readings reinforced what was taught in the lectures. Towards the end of the course, it seemed as if the readings had nothing to do with the lectures, but were more of current research in the field, with very dense articles.

The grading is based on:

  1. Homework (20%)- there were four assignments for the course, reinforcing the concepts learned in the lectures. I believe that these were good exercises, making me think (I believe that in previous semesters there were 8+ such assignments).
  2. Quizzes (20%)- This is apparently a major addition for this semester. There were 4 quizzes throughout the semester. Each consisted of five short essay questions- four from the lectures, and one from the readings. These were meant to measure how well we learned concepts (possibly the types of questions one might receive on an interview). I felt that they were fair. The quizzes were proctored closed book/notes/internet.
  3. Tests (20%)- two tests for the course. Each was comprised of 150 T/F questions, grouped in fives. The tests were "open everything".
  4. Individual Project (15%)- A project where we applied what we learned in lectures to design an interface. I learned a lot from this. My major problem with this was it seemed that the deliverables we were expected to give did not match what we had learned in lecture (e.g. check-in #2 was supposed to have an evaluation plan, but that lecture was not scheduled to be viewed until the week after the due date for that check in). I am told that they hope to rectify this in the future.
  5. Team Project (15%)- this was my least favorite part of the course. I did not feel as if I learned anything new, and it felt very rushed. My team members were great, which helped.
  6. Participation points (10%)- We are expected to peer review our classmates' homework/projects. At times, this was actually helpful. I did get some good feedback on my progress (or lack thereof) on my individual project. When I read others' work, I got a sense of where I stood vis a vis my classmates. The easiest and cheapest way to earn points is to fill out surveys from the other students in the class. (I maxxed out on participation points at about week 12-13.)

In short, proctored quizzes/tests are 40% of the grade- the rest is done "at one's leisure".

The middle of the course felt very intensive. In a two week span, there seemed to be a homework, quiz, test, and the due date for the individual project. After that hump, things were pretty good, except for the rushed feeling of the team project.

Did I learn something from the class- yes. Was it material that I was interested in- sometimes yes, sometimes no. Did it meet my three objectives for taking the course- yes.

MGT-6727
Privacy for Professionals
Taken Spring 2024
Reviewed on 5/5/2024
Workload: 3 hr/wk
Difficulty: Very Hard
Overall: Liked

TLDR: Maybe an easy (low) B. Lots of reading involved with short weekly current event write-ups. Two big exams that should not be taken lightly. Course should be called "Data Privacy Laws and Regulations".


I'll preface this by saying that I rated this course a 5 for difficulty purely to offset the other reports of it being very easy. This course may be easy for those that have a surplus of time to study for the midterm/final or those that are simply exceptional test takers. If you don't fit into those groups, you may want to rethink taking this course. I wouldn’t consider this one to be an easy A, maybe an easy B at best.

The midterm and final count for 30% and 40% of your final grade, respectively. The exams require HonorLock, where your entire exam process is recorded, including a mandatory recording of the room, your face/ID, etc (how ironic for a course about privacy). Regardless of the curve applied to the exams, you will need to read the textbook in its entirety and take notes. I studied for the final and scraped by with a low B. The guidance provided for the exams is minimal and, while the questions are multiple-choice, they are convoluted descriptions of hypothetical situations to which you have to apply your knowledge of consumer/healthcare/workplace/etc regulations and how/when they might preempt one-another or state laws. Don’t expect to skim the chapters for an easy B. The exams are definitely challenging. The other 30% of the final grade comes from absurdly simple 200-word essays that summarize a news article and provide an analysis relating to the week's coursework.

Beyond the grade structure, it's worth noting that the course description might not completely capture what this course is. Put plainly, this is a data privacy law course heavily geared towards the IAPP CIPP certification. The content is an interesting departure into an important niche of cybersecurity, but is comprised of memorizing and applying state/federal/international regulations.

Would I take this course again? Maybe. I can certainly see how the subject matter could be useful. Especially when pressing for increased funding to ensure regulatory compliance. Ultimately, I found the course very interesting but would have much preferred weekly quizzes rather than two exams that account for such a large portion of the final grade.

CS-6750
Human-Computer Interaction
Taken Spring 2024
Reviewed on 5/4/2024
Workload: 20 hr/wk
Difficulty: Very Hard
Overall: Strongly Disliked

DO NOT take this class unless you have to for specialization. If you can write code in any capacity avoid the HCI specialty just to avoid this trash course. This is the worst class I have ever taken at any institution ever. I have learned absolutely nothing in this course and the material is ridiculous.

For what it's worth I ended this course with a relatively high A.

Below is a breakdown of some of the aspects that make this course terrible.

Quizzes:

For this semester, they decided to try adding "quizzes". The quizzes are closed note 2 hour free-response. They have 5 questions with many sub parts. Four of the questions are from lecture and one is from the readings. The readings are absolutely horrendous. They are very long and use many words to say absolutely nothing. After you get your grade you can't see your answers or the quiz questions presumably because they want to recycle them. This makes regrade requests nearly impossible.

Individual/Group Project:

This project has so many requirements that must be completed in a short amount of time. These requirements do not help with design but rather get in the way of any actual thinking. The project grading is completely up to which TA you get and they are VERY inconsistent.

Homework:

The homeworks are just busy work and they are subject to the same RNG grading as everything else. Homework 4 was especially lazy and terrible because they ran out of material to ask about.

Grading:

I started to mention this in the project section, but the grading has absolutely 0 consistency. You might as well roll dice to predict your grade. No matter how much effort you put in the grade is up to the TA's mood that day. There is no coding in this class so practically everything except the tests are subjectively assigned points.

Tests:

This is just a ctrl+f fest. Absolutely useless. Don't need to study it is just a waste of your time. Make sure your ctrl and f keys work before you take the test and you can get 90+ easily.

Regrades:

These are designed to actively discourage students from contesting grades. It it never worth it because they will do their absolute best to give you minimal to no points back. In some cases your grade will go down. The TAs might as well be bots because they cannot be reasoned with. They will ignore your regrades for weeks. They try to stall to the end of the semester because the regrade won't change your final grade and they don't need to do any work.

Teaching Assistants (TA):

This is perhaps the worst aspect of the course. These TAs can't read. I am not exaggerating when I say this. They legitimately lack basic reading comprehension skills. They will say the same thing again and again like a bot no matter what you say in your posts.

Participation:

This isn't actually that bad, although it is easily gameable. Just do 200 surveys in the first 2 weeks and you don't need to worry about it for the rest of the semester.

Overall, you will learn nothing useful and have to write a lot for this course. This course and the HCI specialization are a stain on OMSCS. The program should be CS focused not whatever this garbage is. If you can code at all just take a real specialization do not go by the reviews saying HCI is the easiest specialization. You will not only learn nothing, but will suffer the whole time.

CS-6250
Computer Networks
Taken Fall 2023
Reviewed on 5/4/2024
Workload: 5 hr/wk
Difficulty: Easy
Overall: Neutral

I have made a separate blog post for a review of this course. Check it out here.

https://the11d.wordpress.com/2024/05/04/my-thoughts-on-cn-omscs-review-3/

TLDR: I enjoyed this course and learned some networking concepts but the lectures can be improved with the text-based format. Projects require Python knowledge and some readings/research required for SDN and BGP.

ISYE-6414
Statistical Modeling and Regression Analysis
Taken Spring 2024
Reviewed on 5/4/2024

Verified GT Email

Workload: 7 hr/wk
Difficulty: Medium
Overall: Disliked

The only advantage of this class is that it covers the basics of regression analysis. THIS CLASS SHOULD BE FUNDAMENTALLY REDESIGNED. First of all, the assignments, the quiz format requires English reading comprehension rather than a fundamental understanding of regression analysis. Also, the coding assignments are not very long and not difficult, but since they are mutually graded by three people, there is a possibility that you will receive a grade that you cannot understand.

The biggest problem is the exam. Like the assignments, the quiz format depends on English reading comprehension, and you must pay attention to the small differences in each word. This class is a regression analysis class, not an English reading class. Also, the coding exam basically only requires copying and pasting sample code, so it is not really an exam. The exam system is also a problem, as you need to upload an HTML file within the time limit, but even if you are unable to output the HTML file due to some trouble such as Rstudio crashing, you will be penalized if the time limit is exceeded, so there is an element of luck involved. Another problem is that the exam includes parts that are not covered in the assignments or practice questions. You are not allowed to search the Internet, so if you don't know the code, you're stuck there. In this case, it would be better to make it an open internet exam like CSE6040 Computing for Data Analysis, or to replace the coding exam with a project submission.

Again, THIS CLASS SHOULD BE FUNDAMENTALLY REDESIGNED. You should know that your grade in this class does not necessarily reflect your understanding of regression analysis. Unlike this class, ISYE6644 Simulation and Modeling has clear lecture slides, and the assignments and exams are in quiz format but still test essential understanding, making it a world of difference. I hope that the design of this class will be fundamentally improved by following the example of ISYE6644.

CS-7280
Network Science: Methods and Applications
Taken Spring 2024
Reviewed on 4/30/2024

Verified GT Email

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

Interesting and engaging class! Lots of mathematics and interesting materials. I really enjoyed the textbook and lectures despite material being a bit dense at times. This class is well structured and ran, and most TAs will respond quickly to you.

Pros:

  • Cool materials and topic, with lots of subjects discussed (computer networks, social networks, neural networks, etc.)
  • Well structured assignments that allow you to work with the material with NetworkX

Cons:

  • Towards the end of the class the materials become disjointed and scattered leading to a sort of "so what" conclusion of the class in terms of how to use and apply these materials in the real world outside of community detection.
  • Quizzes are quite tricky
  • You can't work ahead more than a week at a time which I felt unneeded
CS-6603
AI, Ethics, and Society
Taken Spring 2024
Reviewed on 4/30/2024

Verified GT Email

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

This class should only be taken in conjunction with another to expedite one's graduation from OMSCS. I took this in conjunction with Network Science and found this class very manageable. Pros:

  • Learn Joyner PDF Formatting in a low-stake environment (systems like Overleaf and Latex Documentation)
  • Fairness Metrics and a clear and deep understanding of Bias
  • Generous grading and the availability to work ahead

Cons:

  • Boring, repetitive, and generally very little learning for anyone who is coming into OMSCS with any form of technical degree.
  • Assignments rarely work as intended. What I mean by this is that they will provide datasets or scenarios where bias should occur, and then no bias would occur. And you need to analyze it as if there was. I found this... unhelpful and uninformative and not great for finding real world use cases for such techniques.
CSE-6250
Big Data Analytics for Healthcare
Taken Spring 2024
Reviewed on 4/30/2024

Verified GT Email

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

This was my first course. I had prior knowledge (0 to 5):

  • ML: 1.5
  • Big data: 0
  • Python: 3.5

Considering the above, this course was pretty time consuming as many things were new to me. The heavy load was concentrated upon homeworks and project, all of which were done in Python. In homework/project times I expended pretty much all my spare time working on them reaching easily 50+ hours/week. I learned the basics about big data paradigm which was the reason I took it in the first place. After finishing, my knowledge is:

  • ML: 2
  • Big data: 2
  • Python: 3.7
ISYE-6420
Introduction to Theory and Practice of Bayesian Statistics
Taken Spring 2024
Reviewed on 4/28/2024
Workload: 16 hr/wk
Difficulty: Hard
Overall: Strongly Disliked

I'm coming into this class as my first ever course taken at Georgia Tech as well as not having taken any stats course since my first year in undergrad 5 years ago. I chose this course to be my first because I wanted to refresh my math as well as prepare for the ML concentration. After taking this class, I think it was largely a waste of time.

The course did make it so I had to refresh my calculus at the beginning of the semester which was helpful but most of the rest of it provided no value. I read previous negative reviews of the course but couldn't understand what makes this class so bad. Let me explain it in a way that makes sense to me. This course, is designed in such a way where you are taught how to solve the problems you are given, you are not taught any of the actual statistics. Let me walk through some examples.

The videos are very short, maybe 5 - 10 minutes in length. In those videos we cover some very specific and very math-dense topics. You are never provided an explanation into what these are, you have no idea why a certain technique is being used, it feels like you are missing a lot of the relevant information. To top it all off, I never once heard anything from the professor the entire class. I think this class is taught exclusively by TA's. I'm not sure if that is the norm for OMSCS but I was pretty surprised.

The class is structured in a way where it is very front loaded. The first 4 / 6 assignments are just math and the last two along with a project is only programming. The math for me was very difficult. I never learned multiple integrals (which I knew were required going in) so I had to self learn a lot of that stuff but I imagine if you come from a math or data science background it will be much easier. There is also a lot of stats knowledge that is required that I also didn't know. Once you get past that though, the course if fairly easy. I would say I averaged about 20 hrs/week the first half and the second half was probably about 10 hr/week.

The two best resources I found to make it through the math section was Ben Lambert's YouTube channel and probabilitycourse.com.

Overall I wouldn't recommend this course.

CS-7632
Game Artificial Intelligence
Taken Spring 2024
Reviewed on 4/26/2024

Verified GT Email

Workload: 15 hr/wk
Difficulty: Easy
Overall: Strongly Liked
  • probably the most fun course in OMSCS
  • most responsive professor in Ed Discussions
  • enthusiastic course mates - everyone enjoy playing / developing video games
  • some projects are especially fun: Minion Dodgeball and Fuzzy Racetrack; PCG Terrain allows you to unleash your creativity
  • a lot of flexibility given as assignments are published way in advance of deadlines (plus 24 hours grace period!)
  • some projects take a bit longer to complete if you are aiming for extra credit, but these are the fun ones
CS-7650
Natural Language Processing
Taken Spring 2024
Reviewed on 4/25/2024
Workload: 4 hr/wk
Difficulty: Very Easy
Overall: Disliked

Difficulty This class feels like an undergraduate introductory course. There is no way it is a graduate course. Undergraduate courses can be way more challenging than this.

Assignment It is so lightweight that I did all assignments under 3 hours the night before deadline... And since it is lightweight without suffering, I honestly did not learn much.

In 2016, I briefly enrolled in CS 224N from Stanford and I remembered the first assignment is on Skipgram and CBOW training and here we only do it in assignment 4. I remembered spending time figuring out hierachrical sampling to make the model properly train and in this class, we just code the toy version and forget about real training... This class is not helping you going anyway in this aspect...

The final project is very misleading. It uses a toy dataset which can be solved without using deep learning at all... Hence, it is very inappropriate for the KV-memory network we are implementing. The problem does not need KV memory network at all... Regarding the KV memory network, the professor claim that it helps you understand attention better... But HELL NO. It does not help you understand attention better. It helps you understand HISTORY of attention better(if you believe the theory that this paper helped the 8 folks coming up with transformer). And I gained zero in-depth insight after implementing the final project and filling the report.

Lecture The lectures are also not great. As I mentioned earlier, the professor is treating you as an undergraduate student hence he explained things without depth... The META lectures should not be called lectures because they are really just tech talks. Is it good to listen to tech talks? Yes. But it simply does not provide enough information density as a good lecture.

Overall Unfortunately, I felt like I did not learn much from this course.

Looking at Stanford CS 224N and CS 224U materials, which really helps you understand the field, I felt I need to enroll those in future to really gain some understanding.

Note this course also does not help you build foundations because it also does not explain those in depth...

Suggestion to Professor I am not sure what is the motivation for easy course. I understand there is a strong correlation between easy course and higher course ratings and that might help university evaluation if that is important at all. I did not come here to waste time on an easy course. I suggest professor to look at Deep Learning course and see how it is an amazing course that treat people as graduate student and has ample paper reading, critiques, very good assignment to code CNN and transformers from "scratch" and good final project. The easiest way to revamp the project is through reworking the assignments. They could be way better prepared. Why not just copy Stanford CS 224 assignments if you dont have time?

Random I would create better lectures, assignments if I make a NLP course myself than this version...

CS-6400
Database Systems Concepts and Design
Taken Spring 2024
Reviewed on 4/21/2024

Verified GT Email

Workload: 9 hr/wk
Difficulty: Easy
Overall: Liked

This course receives a lot of hate but I still took it because of no formal DB course in my undergrad. I was pleasantly surprised by the course and can recommend it. Sharing detailed pros and cons below:

Pros

  • Good database design is something often overlooked in software engineering. This isn't entirely the industries fault where the requirements change and new ones emerge requiring a change to schema. This course ensures that given well-documented requirements beforehand, you're able to design the entities, relationships (tables) and properties (columns) with logical database design principles.
  • The group assignment is a big component and each of the 3 project phases progressively build on the the next. 1st is about EER diagrams and planning database read/write tasks, 2nd is about translating it into relations (tables) and writing abstract code. While the 1st two phases of group project are great for learning how complex apps data model should be planned, the 3rd is about building an entire working app (backend + frontend) more on that in the Cons section.
  • They let you form your own teams by selecting team-mates based on skills in the starting week(s). This is huge because with varying skillsets of OMSCS students it is important to have dedicated team-mates who have experience in frontend, backend, SQL queries each.

Cons

  • The Exams were hit or miss. No matter how good an understanding you think you have, the way the questions are asked, you are bound to trip and fall into one of their traps. It really feels like they're trying to raise the difficulty of otherwise straightforward concepts by asking ambiguous questions. There was an instance where I asked for a regrade and linked to a course video supporting my answer. The TA literally just replied with a link to another video supporting a different answer. Frustrated, I never made another regrade attempt in the course because it feels they're really out to get you in Exams.
  • The 3rd phase of the group project is to build a working frontend, backend of the app and demonstrate it to a TA live. This is beyond the scope of the course and really comes down to how much experience you already have or how much you're willing to learn about new languages and frameworks on your own. Our initial choice was ReactJS frontend with Java backend because 2 of the team-mates had Java experience (including me). A week into phase 3, the other team-mates decided it was too tough to pickup Java (not entirely their fault) and we switched to vanilla HTML/CSS with PHP. I felt like I learnt more PHP in this project than SQL.
  • I felt a big disconnect in theory and practice in the topics of normalization and indexing specifically. The course talks about database normalization in lectures and is covered in Exam 4, but the Group project is finished long before it. So you're unable to apply the learnings to normalize your schema for data consistency or indexing for performance uplift. But the early phases of the project hint towards this and expect you to create a normalized database design.

Advice to prospective students

  • Take this course only if you haven't taken any database course in undergrad
  • If you have real world experience managing a database practically but want to learn the theory of designing a good schema, this might help. But so would a Udemy or YouTube video.
  • If you decide to take this course, please come prepared with at least few complete apps as personal projects under your belt. This is important for phase 3 if you want to contribute to building the frontend and backend of the team project. Picking up a language and framework on the go just means you'll be a burden on your team-mates even if you don't intend to.
  • This course will teach you some SQL but don't think of it as an SQL course. It is much broader, and hence gives less depth to SQL lectures.
  • This course is not relevant to NoSQL technologies like MongoDB

Feedback to course faculty

  • Revise the Exam questions into simple, unambiguous English please. We could do with less a-ha moments after looking at the answer keys after each exam.