Recent Reviews

A Dynamic List of the 50 Most Recent Reviews

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: Neutral
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: Neutral
Overall: Strongly Liked

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: Neutral
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: Neutral
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: Neutral
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: Neutral
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: Neutral
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: Neutral
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: Neutral
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.

CS-8803-O21

GPU Hardware and Software

Taken Spring 2024

Reviewed on 4/17/2024

Verified GT Email

Workload: 8 hr/wk
Difficulty: Neutral
Overall: Strongly Liked

Note that this was the inaugural offering of the course so future sections could be different. The professor and TAs seemed very interested in what could/should change going forward as well changing course midstream as they learned more about how the course was going.

Pre-requisites None officially but you will need HPCA or the equivalent background in architecture. For example, instruction pipelining, cache implementations and branching knowledge is assumed. GIOS was helpful to me in that GPU programming is parallel programming. Threads and concurrency concepts translate. Others have said that HPC is an even better option since that deals with parallel algorithms.

Course Format Quizzes Weekly Canvas quizzes on readings and lectures and you really need to read the assigned papers to pass the quizzes. You get two shots as each quiz. Quizzes are 10% of the grade.

Exams The only test is the final exam and it is 10% of the grade. A week or two ago, we were also given a P5 that we can do in place of the final. It involves implementing GPU compiler optimizations.

Projects are the other 80% and weightings this semester are provided. I expect that this arrangement of projects may change for future offerings.

P1 - CUDA programming intro - problem to learn how to write and execute code on your GPU. Handy to have an NVIDIA card in your computer so you can develop locally. Otherwise, you have to work on your code on the ICE cluster. 10%

P2 - Implement a parallel algorithm - Points based on how much faster your GPU code is than running the same algorithm on your computer's CPU. 20%

P3 GPU Scheduling - Modifying a GPU simulator to implement various GPU scheduling algorithms. 25%

P4 GPU Instruction Latency - Modifying a GPU simulator to implement instruction latency in the GPU pipeline. 25%.

Lectures Lectures are middle of the pack. Very quick and surface level. Best use for them is to guide you in what to focus on in the assigned readings and papers. You do need to read the papers for the actual content. From my experience, If GIOS and HPCA were 10s and CN and DB Systems were 0, these are probably a 3 or 4. Th elater lectures were more useful than the earlier ones.

Teaching Staff The TAs are not as engaged as some other classes. I attribute that to still developing and bug-fixing the course as well as having to do the TA stuff. When there are problems with the projects and course materials they are responsive enough to get them fixed. Office hours are good and weekly. The professor participates in some if not all of them. They happily answer any questions. One REALLY nice thing about the TAs is that they will give hints and it seems the more effort and the more attempts you make to solve the problem on your own, the more helpful they are with hints. It is a far cry from ML4T where the standard/useless answer was "That is something you should explore further in your report."

It's clear they are still working out the kinks and they have asked for feedback on what they could do to make it a better course.

As I said at the beginning, this is the first-run of the course so I envision if being tweaked a bit going forward. I wouldn't be surprised if they condensed P3 and P4 into one project (P3) and then use P5 as the new P4 (with adjustments to weights, etc.

Overall, very happy that I took it and the content is timely.

CSE-6242

Data and Visual Analytics

Taken Spring 2024

Reviewed on 4/16/2024

Verified GT Email

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

Overall I liked this class. The homework assignments were challenging (especially the D3 heavy HW2) but interesting, and the army of TA's were generally very helpful and responsive with regards to clearing up homework questions. The lecture videos were interesting but could be ignored since they weren't needed to complete the homework. I think how much time you spend on this class will depend a lot on your Python coding experience and familiarity with D3. A lot of people see the first homework or second homework and panic due to the complexity of it, but if you break it up it's definitely doable if you're willing to struggle through it. Biggest recommendation is reviewing some of the suggested D3 learning tools like the free O'Reilly online book before the class begins. Your project experience (like most group projects) largely depends on your team and topic, so make sure you vet your team and make sure everyone is on the same page regarding project timeline and goals.

CSE-6220

High Performance Computing

Taken Spring 2024

Reviewed on 4/2/2024

Verified GT Email

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

DISCLOSURE: I dropped the course about 5-6 weeks in, with no plans of retaking it.

I attempted the course as #5 in OMSCS, but I didn't find it particularly useful, so I decided to drop accordingly.

The purpose of this review is not necessarily to discourage others from taking the course (or to disparage the course and/or staff, either, for that matter; on the contrary, both the students cohort and staff were very engaging and solid folks on the whole, for the record), but more so a "word to the wise" in terms of some due diligence I wish I had done before enrolling, in order to facilitate making a more informed decision if you're considering taking the course yourself. Part of what pushed me into enrolling in the first place was "blind faith," in terms of the generally overwhelmingly praising/positive reviews of the course here and elsewhere, against my own better judgment, in hindsight...

For starters, bear in mind that high performance computing is a specific topic/niche within computer science (basically dealing with cluster computing, which is more so research-focused, such as doing large simulations). I would strongly advise to use Google, YouTube, etc. to search this term/phrase to get a better general sense of the topic. This recommendation is not meant patronizingly/sarcastically, for the record; on the contrary, I was none the wiser going in (as per the aforementioned "blind faith"), and accordingly failed to do this basic step of due diligence myself in the first place (i.e., a "rookie mistake," despite myself being no stranger to academia at this point in terms of cumulative experience/exposure, no less)...

HPC broadly covers parallelism, but in a pretty oddly specific manner, with heavy emphasis on algorithmic analysis of some rather specifically hand-selected/showcased algorithms (and similarly for the projects, too). My own intention for taking the course was to "improve my familiarity/competency with parallelism in general," but more specifically in the context of applications programming (i.e., running your application on a multi-core processor more efficiently, using a language-provided facility such as .NET Task Parallel Library, Java Virtual Threads, Go Goroutines, etc.). For this particular purpose, I personally did not find the material particularly compelling/useful (at least based off of the first 1/3 or so I had gotten through by the point of dropping, which was far enough into it for my own liking to constitute "cutting my losses" by that point accordingly).

Additionally, bear in mind that the course heavily focuses on research papers; in fact there are separate, dedicated TA-led weekly office hours just for going over the papers (i.e., separately from the "main" office hours with the lead instructor). This may be a plus or a minus, depending on your own particularities and such.

In summary, my recommendation to better prospect the course in order to see if it's the right fit for you would be to do the following:

  • Look up "high performance computing" to understand the basics of what it entails (i.e., cluster computing)
  • Watch the first few lectures* to get a general sense of the topical coverage and presentation style
  • Skim some of the papers* to see if there are any particular topics there that resonate with your own interests
  • Peruse the non-required-ish textbook*
    • While not "strictly required," there are a few chapters assigned as readings, and the book generally covers the same "subject matter at large" as the course, so it's still useful for "vetting" in that regard

* Requires GT credentials to access.

Lastly, on a logistics front, the course projects focus on C/C++, using specific libraries such as OpenMP, CUDA, and OpenMPI. So, whether or not that is of particular interest to you may also dictate your decision-making accordingly.

Hope this review helps!

CS-6515

Introduction to Graduate Algorithms

Taken Spring 2024

Reviewed on 2/25/2024

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

TA's can say don't trust the reviews but reviews never lie and the reviews are brutal because its true. The only ones that agree with the TA's are the one's that get A's, yeah, nobody cares about your 10/10. For people new to the material and work full-time jobs, this course is tough. The grading being inconsistent among TA's are correct and grading to targeted to ensure most points are deducted. You have to write your words carefully in the HWs and exams as the TA's are prone to deduct points even if you mean differently and write the remaining sections correctly proving that what the TA understood while reading is not what the writer meant. You're also at the mercy of a mean TA to really penalize your paper and deduct 2 points on every step to severly jeapordize your graduation, career and future. Imagine working with such people on a daily basis, I'd rather do their interviews the same way, criticize every step they write their code and strong no-hire !

CS-7643

Deep Learning

Taken Fall 2023

Reviewed on 1/29/2024

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

I took the class in Fall of 2023 as my 6th class in OMSCS.

Overall I really enjoyed the class and got an A but just barely.

The class consisted of 4 assignments and 1 group project project, and 5 "quizzes".

Prerequisites:

  1. Python proficiency, especially comfort with numpy python package since pytorch uses a similar syntax.
  2. Familiarity with machine learning. If you don't have this, I highly recommend taking the time to do Andrew Ng's machine learning or deep learning specialization on Coursera.

Assignments I had to work on the assignments almost every day. They were very hard but if you were consistently working on it, checking EDstem, and office hours you could definitely get through them and learn a lot.

Assignment 1 + 2: Deep learning basics and Convolutional Neural Networks from Scratch. I think the most useful thing I learned was how to do back propogation by hand and getting comfortable with using Tensors in pytorch.

Assignment 3: Shortest assignment. Style transfer and visual explanation of deeep neural networks.,

Assignment 4: NLP basics, RNN, LSTM, and Transformer Architecture. This IMO was the most interesting assignment. Language models like ChatGPT is built on transformer architecture so understanding them is very important.

Quizes: IMO these were more like exams and the most stressful part of the class. You absolutely need to study for them. I did about average on these but I feel like quizes don't always reflect the assignments or the lectures very well.

Projects: Your group has to do a deep learning project. My team did a kaggle competition where we looked at an image classification task for very large images (file sizes of >1GB). Kaggle is great because they provide free GPU resources (up to a certain amount per week). The class also gives you some GPU credits on Google Cloud but it is a very limited amount. We also had to submit a 6-page paper written in Latex document which is useful for those interested in publishing their results. The grading on this was very minimal. We had to submit the assignment within a few days of the end of the class so the TAs did not grade the report that harshly.

CS-8803-O13

Quantum Computing

Taken Fall 2023

Reviewed on 12/27/2023

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

This was my seventh course in OMSCS. I have a CS undergrad degree and 4+ YoE in software development. I got an A in the course.

The course gives a great introduction to the world of Quantum Computing. It starts from the basics and is not very Math or Physics heavy. It focuses more on the computing aspect of Quantum and doesn't need any prior knowledge of Quantum Mechanics. It gradually builds on the basic concepts and moves on to more advanced concepts in the field. The material covered is a mix of basic concepts from the textbooks and concepts from interesting recent research papers in the field. The course does require prerequisite knowledge of basic linear algebra and matrix/vector operations (but it can be picked up while in the course too).

The lecture material of the course is very well done and Prof. Moin has kept it short and crisp with ample resources to explore more if needed. The course lectures compliment the textbook for first half of the course. It starts with the basics of quantum computing and introduces the concepts of superposition and entanglement. It explores quantum gates and circuits and builds towards simple and advanced quantum algorithms to solve problems. The second half of the lectures dive into the more advanced and recent advancements in near term and fault tolerant quantum machines and are based on research papers. Quantum errors and benchmarking, NISQ computation, error mitigation and error correction techniques are explored.

There are four programming labs in the course which uses IBM’s Qiskit toolkit to build and execute quantum gates and circuits. The labs are a lot of fun and you get to implement many of the concepts/algorithms learnt in the lectures and execute them on simulation or on real IBM quantum hardware. All the labs are very closely related to the lecture material covered and they are fairly easy and enjoyable. There is a lot of documentation and tutorial around Qiskit which makes it easier too.

There are four problem sets which test your conceptual/mathematical understanding of the material. Fall 2023 was the first semester Problem Sets were introduced. They were fairly simple and a good way to test your understanding of the material. You’ll need to go beyond the lectures and read the textbook to solve the problems in the first few problem sets.

There are five paper reviews in the second half of the course. These are the five research papers which the second half of the lectures are based on. All the five papers are recent and interesting reads – which talk about a novel approach to solving some problem. There are weekly knowledge quizzes which keep you on track and reinforce the material learnt.

Finally, there are two exams. The final exam is cumulative. Both the exams are closed book and closed internet but is not proctored. You are allowed to bring one sheet of handwritten notes with you. The exams test you on the concepts and techniques and are not memorization based. There will be a lot of numerical answer questions which require calculations. If you’ve understood the concepts, then the exams are fairly easy and you are given a fair amount of time to complete it.

The TAs of the class good. Ruixi Wang was the one TA who was pretty much running the class single-handedly. He did an excellent job. He was active on Ed and Slack and also held recorded tutorial sessions for few labs and problem sets (for the first time in our semester). All TAs held weekly OH but I didn’t attend any of them. Prof. Moin did hold an OH every week but it wasn’t recorded and I couldn’t attend any of them. But it would have been nice if he did come on Ed too and answer few questions.

Overall, I think this is a fantastic course and a great introduction to this new and evolving field of Computer Science. The workload is also on the lighter side and the grading is lenient, making it an easy course and a good one to pair in Fall/Spring semesters. I would strongly recommend this course to everyone interested and curios about quantum computing.

CS-7637

Knowledge-Based Artificial Intelligence: Cognitive Systems

Taken Fall 2023

Reviewed on 12/21/2023

Verified GT Email

Workload: 10 hr/wk
Difficulty: Neutral
Overall: Disliked

"Ashok ate/ingested a frog, and his stomach is happy" - [Dr. Ashok, CS-7637 lectures]

The displeasure one can have by hearing this statement, is similar the taste this course left to me (transferring the analogy.) Also, I see a trend of ratings going down from few years back, but let start with good stuff:

  1. Starts very well. Especially the first lessons are very interesting and helpful.
  2. Mini-Projects and Homework supplement the lessons, being the closest things to lectures.
  3. Joyner explanation is always on spot. I wish he had more of it.
  4. Some good concept are learned if faced with any future AI project.

That's pretty much. Now let's continue what I think is not very good with this course:

  1. Lessons start becoming way too general, especially after the Lesson 7. It's like overhearing on a bus a WWII story about a military tactic and you need to apply it when cooking your meals. Huge disconnect.
  2. Prof. Ashok may be a great AI researcher and academic, and a person too. But he is not not a good lecturer. Especially when things get a bit complex, his native accent get so thick, even transcripts go #*$ inaudible. I guess GaTech has this across most courses.
  3. RPM gets boring. We got the point, hello. I finished all the coding assignments 100%, all the RPM assignments 100%, and the final RPM 85/96 (if I didn't have two courses, I would have reached 90+/96). Too much energy for nothing. I mean B, C, D was enough. Let us say E too, but the Final RPM was too much trying to pass tests we cant see. With enough tries we can reach 96/96, but too much wasted energy.
  4. Mini-project, Homeworks, RPM milestones, these rotation of assignments made it very hard to focus in connecting lessons and assignments.
  5. TAs are the worst I ever have experienced. They love to get points off of your assignments, out of nothing . I haven't found them to be helpful in anyway at all. Here some examples. In requirements says:"We prefer efficiency in Big O terms". You go in detail and explain in terms of Big O the efficiency. But somewhere you forget to mention what N is. That is 1 point off, or 10% of that assignment, even though you went a bit more what's required. Another example, you get 100% in code in basic / test and say something like this in the journal: "My agent didn't struggle" because you stopped coding as soon as you got 100%, and you really didn't struggle to resolve more than what's required. The TAs take you 15% off of the grade. Almost every RPM case, or homework had a similar case. I can give you more examples, just got tired of them.

Overall I think Joyner dropped the ball on this one.

CS-6310

Software Architecture and Design

Taken Fall 2023

Reviewed on 12/21/2023

Verified GT Email

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

I enjoyed this class a lot. I have long time experience as developer, yet always there was something to learn. From UML, class design, state, sequential and object diagrams. This course requires people to be independent, and the biggest mistake one can do is to underestimate the needed work, easy to bomb an assignment.

I'm surprised that there are student who do not like this course. In software design field, it's impossible for TA's and instructors to babysit every single one of us. I'm impressed they are able to grade all of our assignments and pay proper attention to our detail implementations. Grading is fair which encourages students to keep up the work. Also, they have office hours, and address all the questions.

Also I appreciated Prof. Moss and the head of the TAs for postponing one assignment due date because of a hurricane letting my state without electricity for 3 days.

CS-6200

Graduate Introduction to Operating Systems

Taken Fall 2023

Reviewed on 12/17/2023

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

This is my first semester, and I took this class along with ML4T. It was a difficult pairing, but let’s focus on GIOS! Overall, I enjoyed the class. About me, I don’t have formal CS background or any C/C++ experience, but significant experience in Java and Python. The summer before this class, I studied C++ and made some very simple programs (like ls).

Good:

  • Well put together lectures. Seriously, I really enjoyed them. There wasn’t a single module where I left saying, they should have put more effort into that.
  • Interesting projects, I think they are a good difficulty to challenge you, but also be ‘doable’. They gave you exposure to relevant tech like gRPC and ProtoBuf.
  • The slack channel is great. It is always active, and students (and some alumni) are generally helpful. Expect to get more help from other students than TAs on this slack. Through the slack channel a sense of community developed, so for that reason I was glad to take this as one of my first classes.

Neutral/Bad

  • I will preface by saying I like all the TAs, and each have their own personalities and style of helping. That said, there were a handful of cases out of the whole semester that I think TAs should have just not replied to a student, rather than the reply they gave. Remember, don’t look to TAs as a source of information on Slack, it’s other students who are really the asset. That said one student absolutely went crazy after a slightly snarky TA response (because student was using slack like google)...which was interesting.
  • I think the README’s take way more time than the number of points they are worth. Again, no big deal but it’s a little demotivating when you’re spending all that time for 10 points. The grading of the READMEs is also a little opaque, but seemed fair in my experience.
  • Some projects particularly project 4 really had one style in mind for how to solve, which when it came time for testing was a little annoying. Specifically for project 4, while you are creating a stateful distributed filesystem, some of the tests do not mount the file system, so they need to also work stateless. This was kind of annoying to discover once I started submitting the assignment to gradescope.

Strategies to Succeed

  • Prepare in advance. If you don’t know C/C++ spend some time at least getting familiar. I recommend focusing on C++, because while only used in 1 project, most intros to C++ will give you the basics of C. I also recommend at least familiarizing yourself with unit testing C code (not required, but could help you).
  • Engage the slack channel. It definitely saved me when I couldn’t figure out why I failed a test case. It also helped alert me of watch-outs when planning my implementation. That said, don’t skip Piazza. Per post, the quality of info on Piazza is way higher than slack.
  • Don’t underestimate the time commitments for projects. Project 3 and 4 took a while for me.
  • For the READMEs even if you don’t have much to say for a section (like how you tested), stretch it out a little. Find something to say. The TAs do seem to grade a little just based on length in my experience. Additionally, if you have time make figures, do it! Make it easy for the TA to give you an A.
  • Don’t underestimate the exams. My strategy was I watched lectures once and took notes, which were essentially rephrasing every slide in my own words. Then before the exam I rewatched all videos at 2x speed and read my notes after each rewatch. Also don’t skip practice exams. I personally think people make TOO big deal out of the difficulty of the exams, but they are definitely not trivial.
  • Finally, the class is generously curved. This semester 84 is an A and a B is in the 60s. So, don’t sweat the little things. If you have time to devote to the class, I don’t think it’s too hard to get an A.

CS-7646

Machine Learning for Trading

Taken Fall 2023

Reviewed on 12/15/2023

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

I took this my first semester along with GIOS. The course content is generally interesting, and I would consider this a good survey course. While I got an A in the class, I personally wasn’t a big fan of how it was run. I have python experience but no numPy, pandas or data analysis background. If you do all the work, I think you will likely get an A, but the projects are non-trivial. The reports also take a while to write.

How to do well: • This is a rule following class, for the projects pay close attention to the details. Buy a ream of paper, print out the project requirements and read through them 2x with a highlighter. • When you write reports don’t worry about anything other than fulfilling requirements. Don’t make a ‘good’ report, make a report that checks all the boxes. • Look at student charts on Ed. I found some mistakes in how I formatted my charts through this (again rule following class). Also read through questions, I was able to figure out an edge case would have missed in final submission if not. • Exams are a wild card, questions reflect readings more than projects or lecture videos and too me were very nit-picky. I think the strategy to get an A with minimum effort is to do very well on the projects and YOLO the exams. • For the Q-Learner project, performance optimize like crazy, it will help for final project. • For MarketSim, also helps to have a reasonably fast implementation for final project.

Things I didn’t like: • I though the TAs on Ed generally did a poor job answering questions and did not give straightforward answers to simple questions (like what file should produce x chart). They answer questions like politicians. My guess is they don’t know what the auto-grader checks and don’t want to be on the hook if they give the wrong answer, so you get an intentionally vague answer. • I thought the projects were over-specified, turning what would be fun projects into slogs. 20+ page specifications were common, that sometimes even dictated the color of lines in a graph. Also, for some portions there were more possible points to lose than gain. • The quality of the videos in the second half of the class really declined. I understand there were technical difficulties 8 years ago, bus surely new content could be produced. • You have something due every week. Whether it be a quiz on reading or an assignment. • It was always such a struggle to fit reports into the minimum page requirements of the template. I found myself having to write the minimum possible and still fighting to meet requirements. The required word template for this class is pretty bad IMO. If you have LATEX experience, I might recommend perusing that route.

Closing Thoughts: I learned from this class while I’m interested in ML, it’s not something I’m interested in pursuing career-wise.

ISYE-6414

Statistical Modeling and Regression Analysis

Taken Fall 2023

Reviewed on 12/14/2023

Verified GT Email

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

Somewhat mixed feeling about this class. I thought the course content was interesting and definitely helped give a deeper understanding of the statistics behind regression and when regression will or won't be applicable, compared to 6501 which gave a much more surface level of the regression concepts. The homework was relatively easy if you watched the lecture videos and had already used R in 6501, and helped reinforce concepts from the lectures.

While the closed book (multiple choice) portion of the exam could definitely be tricky, as long as you made a good cheat sheet and studied a decent amount, you should at least get an 80%. Generally the open book (R) portion of the exam was taken directly from the homework's, lectures, or practice exams so as long as you downloaded all the material beforehand, you could essentially copy and paste for most of the exams and get 90-100%.

My biggest complaint is that the class could use a makeover to make the concepts more accessible and understandable (similar to how 6501 was done). The statistics used in the class honestly wasn't too difficult, but a lot of the time it wasn't explained in the lecture videos so if you wanted to understand the lecture video statistics, you'd have to do your own research outside of class. It was also kind of odd in it's pacing, first module was close to 6 hrs./week, 2nd 12 hrs./week, 3rd 8 hrs./week.

CS-7280

Network Science: Methods and Applications

Taken Fall 2023

Reviewed on 12/13/2023

Verified GT Email

Workload: 22 hr/wk
Difficulty: Hard
Overall: Strongly Liked
  • very interesting content; gave me a fresh perspective of the world
  • the written lecture format breaks from the norm of video lectures in other OMSCS courses
  • there are Python typehints in the last assignment template - TAs indicated they would incorporate typehints in other assignments to improve quality of life
  • without a strong grasp of the prerequisites (i.e. math), the difficulty and workload would be much higher than the average
  • no automated grading via Gradescope, and no local unit tests provided to help check if we are going in the right direction

CS-6601

Artificial Intelligence

Taken Fall 2023

Reviewed on 12/13/2023

Verified GT Email

Workload: 22 hr/wk
Difficulty: Very Hard
Overall: Strongly Liked
  • interesting content
  • lecture videos are not boring
  • responsive teaching staff
  • enthusiastic course mates
  • challenging projects
  • lots of errors and issues with exams (both midterm and final)

CS-7650

Natural Language Processing

Taken Fall 2023

Reviewed on 12/12/2023

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

Pros:

  • Easy and light. You can pair this class with anything.

Cons:

  • Lectures are locked and released week by week.
  • Many fundamental\conceptual\formula mistakes in Reidl's parts of lecture and there is no list of errata after students have been reporting for two semesters. His explanation to many concepts stopped at the "intuition level" ("just throw in a linear layer and see what happens") and did not go deep into the math. Does not feel like a graduate level course.
  • The Meta lectures are basically 5 or 6 seminars presented by different people from Meta. Each presenter had their own style and used different terminology, notation, etc, which make them hard to follow and understand. Those are supposed to be the part of the class where the cutting edge NLP aplication and research are discussed. But this part is terribly prepared.
  • Homework are poorly designed simple PyTorch API practice. The instructions are full of mistakes (e.g. you are asked to calculate posterior when training a Bayes model), and the unit tests are buggy and weak, which forced you to do things in the WRONG way just to get credits.
  • Homeworks are all in Jupyter notebook format. They used a plugin called "nbgrader" to automate the grading process, which tunred out error prone and 3 of the 6 homeworks grading were delayed because of this.
  • There is very little interaction between students and teaching staff. No office hour with TAs or lecturer. There were SIX 1-hour "recitations" for each homework, where they "tried" to answer students questions live. TAs rarely respond to questions posted in Ed regarding homeworks or lecture materials.
  • It is also amazing that Dr. Reidl could find time to defend his "Exam window is from Mon-Wed" policy publicly in Ed on a Saturday night but also left dozens of lecture-related questions unanswered for weeks on Ed at the same time.
  • Exams are open-everything take-home short answer questions. But most questions feels disconnected from the lectures and aimless. There could be questions asking you about a certain Pytorch API detail, which were never mentioned in the lectures and this simply became a Google search skill test. There could be questions asking you to compare A and B and explain which is better without any context, but the "correct" answer only accepts one "context". Cannot discuss exams on Ed even after grade release, strange policy.

This is probably the most disappointing class among the 12 classes I have taken with OMSCS. It feels rushed and lacks content and depth. The homeworks need a total overhaul. The Meta lectures might be more useful if they were presented by Dr. Riedl himself in a more consistent way.

CS-6290

High-Performance Computer Architecture

Taken Fall 2023

Reviewed on 12/11/2023

Verified GT Email

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

Introduction and Background

As of course start, I had around 3 years of experience working as a professional software engineer, specifically doing web applications (full-stack C#.NET + JavaScript). My previous degree was in Engineering (non-CE/non-EE) from early 2010s. I also did five CS prep courses online via Oakton Community College (2019), as well as a full-stack programming boot camp (2020) to switch careers at the time (my work experience prior to this was unrelated to software engineering).

This was my fourth course in OMSCS, within the computing systems specialization. I previously completed GIOS (CS 6200, Fall 2021), IIS (CS 6035, Fall 2022), and CN (CS 6250, Summer 2023).

Parenthetically, I attempted HPCA (CS 6290) previously, first briefly in my second semester in OMSCS (made the mistake of attempting together with AI, ended up dropping both), and more recently in the preceding Spring (2023), however, due to an unexpected layoff hitting at a bad point in the Spring semester at the time, I had to drop yet again in the latter. (Fortunately, I did manage to land a new job after the layoff, but it was very hectic at the time nevertheless.)

High-Level Review

Overall, I really enjoyed the course. I thought the content struck a very nice balance between breadth and depth with respect to an otherwise complicated subject. The course topics span from "micro" to "macro" levels, providing the "building blocks" along the way. This spans roughly three general themes/areas as follows (in respective order of appearance):

  • out-of-order processors and their internals
  • the memory hierarchy
  • multi-core and multi-threaded execution

Course Logistics and Time Expenditure

The course is not curved, and generally 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 50% projects and 50% exams, broken down as follows:

  • projects (5% + 10% + 15% + 20%)
  • midterm (20%)
  • final (30%)

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

  • 5 hours per lecture (videos watching and taking notes) * 22 lessons total = 110 hours
  • 5 hours for project 0
  • 15 hours for project 1
  • 25 hours apiece for projects 2 and 3 = 50 hours
  • 30 hours of prep per exam * 2 exams = 60 hours

Given a 16-week Fall semester, this averages out to 15 hours/week [= (110 + 5 + 15 + 50 + 60)/16]. The cadence was typically 1-2 (or incidentally 3) lectures per week, along with projects and exams, with the latter generally due Sunday by midnight AOE (equivalent to Monday morning in US-based time zones). The class is somewhat "middle-loaded" in my opinion, in the sense that the 5 (or so) week stretch spanning Project 1 (second project), midterm, and Project 2 (third project) is rather hectic, but otherwise the "flanking" parts of that are relatively more "placid" (but not "snooze mode" by any means, to be clear).

Course Deliverables

Projects

The projects all involved C++, more specifically the SESC CPU simulator, which was co-written by Prof. Prvulovic while in grad school. The projects span a few of the most critical/prominent topics in the course, and approach them more from a "lab" standpoint, involving tweaking the existing SESC code base (more so than coding a lot "from scratch"), and analyzing results accordingly. These topic are as follows (respectively in order of appearance):

  • Project 0 - general introduction/orientation to SESC app
  • Project 1 - branch prediction
  • Project 2 - caches
  • Project 3 - cache coherence

The last two projects (2 and 3) allow to work with a partner. This was helpful in my case, as my partner and I worked pretty collaboratively, and I suspect that we were able to finish faster between the two of us than had we been working individually/separately. Of course, "your mileage may vary" with these things. (There was an Ed thread to coordinate partners, otherwise we did not know each other going into the course, but subsequently became fairly well acquainted 🙂).

As a somewhat controversial/hot take, I thought the projects were actually pretty decent. Some of the typical criticisms going back to old reviews include (among other things) the somewhat archaic handout/form (with red boxes where you must enter your responses), and the "treasure hunt" in Ed for relevant information. However, neither of these were really as "obnoxious" as people tend to make it out to be in my opinion, as most of the relevant information is there, and head TA Nolan (in particular) was very helpful with directing accordingly as well. If nothing else, I personally much prefer this over courses with project handouts that are very vague and ambiguous, to a point of blocking progress on the project itself. Most of the relevant information is available in the aforementioned, and scoring in the 90-100 range is very manageable accordingly (as evidenced by the course-wide median grades falling within this range).

As another aside, having seen a couple of previous iterations of the course, one thing I can clear up here as of Fall 2023 (but I believe rolled out previously as of Summer 2022 or so), at least relative to older reviews, is that the project setup is much better after one of the more recently joining TAs (Joe) streamlined it by adding a Dockerized version (along with 64-bit VM) of the app. I can personally attest that the older 32-bit VM was a huge pain to work with, but fortunately that is no longer a relevant factor anymore. Thanks a lot, Joe!

Exams

I would characterize the exams as "tough, but fair." They are open notes, but they test a fairly sophisticated understanding of the material, involving a lot of "hand calculations" rather than just simply "rote regurgitation" of material. The midterm was logistically more challenging since it only allowed 2 hours, whereas the final was cumulative (i.e., including midterm content), but allowed for 3 hours and had heavier emphasis on the latter content (i.e., post-midterm), which was also more fresh by that point.

The staff additionally provides practice exams and (ungraded) problem sets to further reinforce the course topics, which are useful both for preparatory as well as for pedagogical purposes. Additionally, there are in-lecture "quizzes" videos (ungraded) which help to reinforce the "main" lecture content, as well as to highlight insights therein (e.g., to quantitatively demonstrate the assertions from the previous lecture videos with respect to "why A is more optimal than B," etc.).

Closing Remarks

In my opinion, this course complements GIOS (CS 6200) very well, covering similar subject matter but from the hardware perspective. I personally think the combination of GIOS + HPCA is the "quintessential combo" within computing systems, i.e., for somebody from a different specialization looking to "dabble" in computing systems, these are the two I would recommend to get a "big picture" (but otherwise thorough) sense of the pertinent subject matter; otherwise, for those within the computing systems track, these provide a strong foundation to explore further into other peripheral topics. In terms of ordering among these two, they are relatively independent, though I think some initial exposure in GIOS is helpful to understand the topics in HPCA, so I'm slightly partial to doing GIOS first in hindsight (though doing HPCA first instead will not be a "showstopper" in either, by any means).

With respect to difficulty and "pairability," I think this course was slightly less challenging overall compared to GIOS as a relative reference/benchmark, and I pinned it accordingly as an unambiguous "medium" difficulty (relative to GIOS being a more "medium-going-on-hard" for me). The projects in GIOS were relatively more involved/complicated, however, the more unique challenge of HPCA is just the sheer volume of material; the total lecture video time for HPCA is around 23.5 hours, and fairly info-dense to boot. If I were to pair with HPCA, it would definitely be something lighter (e.g., IIS), however, I would not recommend pairing something like HPCA + GIOS, especially not on top of full-time work.

Lastly, special thanks to the staff for making it a great course experience overall. Prof. Prvulovic is an absolutely brilliant instructor. The quality of the lessons is top-notch in my anecdotal experience with OMSCS courses to date (on par with GIOS for "best" overall I've seen among the courses I've taken thus far), and in particular I really appreciate Prof. Prvulovic's ability to distill such a dense/complex topic into a very well balanced breadth-depth trade-off, in such a manner that "told the overall story" without "missing the forest for the trees." I was able to come out of the course with a very comprehensive view of the subject matter, and appreciate that there was enough attention to detail to make the points stick, but without otherwise getting overly caught in the weeds with minutiae. Also, head TA Nolan is still the GOAT, and absolutely the star of the show. If you look at reviews going back years at this point, you will see them singing Nolan's praises along the way, and this is very much so merited accordingly.

Additional Resources

Here are a few things I put together during my stint in HPCA, which may or may not be helpful if you decide to take the course:

The notes are fairly comprehensive. I clipped out all of the figures (see here), if you prefer to simply use those for your own notes. I essentially turned each video into an outlined/notes form of a "transcript" (i.e., very few details left behind), with the general idea/principle being "one watch the video once" (i.e., let the notes be completely "standalone" subsequently thereafter). The figures are numbered by lesson prefix (e.g., 01-...), but otherwise the numbering is just sequential as appearing throughout the videos spanning a given lecture (i.e., -001, -002, etc.), but not otherwise correlated to the canonical "video numbers" (i.e., in Canvas/Ed). Additionally, suffix Q designates "quiz," while suffix A designates "answer" (i.e., for the preceding quiz), where applicable.

CS-6727

Cyber Security Practicum

Taken Fall 2023

Reviewed on 11/30/2023

Verified GT Email

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

It is a required course for the degree program, so there is little point in reviewing it. However, it is very bad.

You are given practical constructive feedback only 2 times in the entire course: first after proposing your topic, and second after you receive the final grade. There is no opportunity to discuss or refine your proposal with feedback from the professor. The only way to speak to him is during his office hours, which are held during day time working hours. In other words, he is inaccessible to you if you are full-time employed. You're on your own for the purpose of the course.

If in the future you have the choice to take 2 more regular courses instead of this disaster of a practicum, you should do that instead. It's that bad.

PUBP-6725

Information Security Policies and Strategies

Taken Fall 2023

Reviewed on 11/27/2023

Verified GT Email

Workload: 2 hr/wk
Difficulty: Very Easy
Overall: Disliked

Context: OMSA student, taking as elective for fun and easy workload.

Fun course, easy workload. Only spent about 5 weeks actively engaged with the course. Two of those were right at the start with Assignment #1 which requires research, infrastructure building and planning.

The lectures are 100% optional. Download the transcripts and word-search them for everything you need.

If you want to do well on the assignments, completely overshoot the amount of work they tell you that you have to do. WORKING TO SPEC WILL LOSE YOU POINTS. This is my biggest complaint with the course. The peer work held up in class as extraordinary/exemplary frequently overshot the very-clearly-defined scope boundaries (for Assignment #2) and/or content length limitations (for Assignment #3). And then if you didn't meet this artificial above-and-beyond standard, you were penalized.

This class is engineered so that most people will get a B. If you want to take it as an easy course, go in expecting a B, and then "B" okay with that.

CS-7650

Natural Language Processing

Taken Fall 2023

Reviewed on 11/16/2023

Verified GT Email

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

I learned a lot in this course.

However, NLP covers about 30% of what a modern NLP course should cover. It covers word embeddings, RNNs, LSTMs, Attention, Transformers and Key Value Stores. And Prof Reidl does a very good job of explaining the concepts in the videos.

However, the homeworks are a bit too simple. They also aren't very practically oriented. It would be more useful if we had an assignment where we were ask to do summarization, another where we were asked to do Question answering, another where we do translation. But unfortunately the assignments are less oriented towards specific tasks are more oriented towards particular techniques without much consideration to actual application. That being said they are fun and not to hard to work with. The course could do more in terms of depth with an orientation towards practical use. The class could also have much more in depth homework more appropriate for graduate level work that go much deeper into topics then they do.

Some things that are missing from the course would be to cover LLM training techniques such as Transfer Learning, Refinement, and RLHF. As well as well known techniques such as InstructGPT. The course seems oblivious of this.

The lectures taught by Prof Reidl are very good. But the Meta lectures are very poor. They throw around a lot of terminology without explaining it. It would be better if the professor simply re-recorded those lectures and explained them well.

Overall the class is enjoyable and worthy, but is a missed opportunity to do a lot more at a time that these topics are quite hot. The supposed reason Universities employ researchers to teach is so that they share the cutting edge with us, however, this class seems content with skimming the surface. It's easy to pair this class with others.

CS-7641

Machine Learning

Taken Spring 2023

Reviewed on 11/6/2023

Workload: 30 hr/wk
Difficulty: Very Easy
Overall: Strongly Disliked

The ML CS7641 course has been the worst class I have ever taken anymore. The lectures are genuinely interesting, and I've enjoyed gaining insights into topics previously unknown to me. However, the assignments, TAs, and the current teaching staff have made this course a nightmare for me. The assignments often feel like a guessing game with vague expectations, making it easy to lose points due to uncertainty. It's frustrating that some poorly written work can surprisingly earn good scores, which can be disheartening. Additionally, the inconsistency in grading when different TAs assess assignments adds to the problem and frustration. At times, there have been reports of hate post from students towards the TAs or teaching staff. Be honest, it is a frustrating as waste time copying code from sklearn and did not learn anything useful from the assignment. To be candid, it's been disheartening, especially when you feel like you're investing time copying code from existing libraries rather than truly learning. Occasionally, TAs have asked students to be more concise in their work. Perhaps it's a two-way street, and there could be a request for clearer subject instructions and grading metrics from the students. Just my 2 cents, I'd say this course is only useful for those seeking a specialization in machine learning.

ISYE-6420

Introduction to Theory and Practice of Bayesian Statistics

Taken Fall 2022

Reviewed on 11/1/2023

Workload: 20 hr/wk
Difficulty: Hard
Overall: Strongly Disliked

Grade Received: A (97%)

Background: UW-Seattle CS, graduated 03/2022 (thus, math concepts are still fairly fresh). Took upper level ML, statistics, and discrete mathematics courses. Current SWE II.

This was my first class of OMSCS. 3 classes later, this remains the class I disliked the most and found the most challenging (even more than ML). The class requires understanding of Calc 3 level integrations as well as recognition of statistical distributions, which will need to be integrated. If you are unfamiliar with basic integration concepts such as the chain rule, be wary of this class. The lectures were incredibly confusing and I "book-learned" this class (I should note that I found the textbook quite well written). The "professor" was practically non-existent: I only saw a few Ed responses from him throughout the course and no other trace of him. The saving grace of this course was the head TA who lead fantastic office hours and would essentially, for better or worse, spell out the assignments for us.

The class becomes significantly easier after the midterm: less math and a lot more coding. The class is taught with an archaic piece of software last updated in the early 2000s called WIN-BUGS - I opted to use some of the Python libraries and one of the TAs wrote up an extensive guide. In hindsight, WIN-BUGS is actually easier to use, though less applicable to modern day issues, and I used this on the exam to much success.

Primary Advice: This class is more for people who already have a solid understanding of Calc3 concepts and statistical distributions (mixture of gaussians, gamma, etc). Considering there are many other courses to take that are more CS heavy, especially for the ML track, I don't recommend anyone take this course.