Recent Reviews

A Dynamic List of the 50 Most Recent Reviews

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-6035

Introduction to Information Security

Taken Fall 2023

Reviewed on 11/16/2023

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

This is a good first class introduction into the program, as it got my feet wet but wasn't terribly difficult. The class is project-based, and there is no required lectures or readings, and no quizzes or exams. I don't miss quizzes or exams, but what was really lacking for me in this class was no instructor participation. There were optional lectures from previous semesters (probably the ones recorded for Udacity 5+ years ago), but they did not directly tie in whatsoever to the homework.

The TAs were pretty helpful, however there were definitely times when the assistance they gave was very vague and not conducive to us figuring out the assignments any easier. I think I managed to get an easy-A in this class only because I have a Computer Science background, and I work in the field of web development and information security. If you do not come from this background, I imagine it would be much harder to put together all of the pieces needed to figure out the assignments in a timely manner. Some of the assignments take a lot of guesswork and its not always clear what the right direction is. When you do figure it out it turns out that the answer was pretty obvious if you just stepped back and re-evaluated the problem.

Most of the assignments are capture-the-flag style, with only two out of seven being different from the norm. The highlight assignments of this class are definitely Cryptography, Binary Exploitation, and Log4Shell. Malware Analysis was the weakest of all of these, and was the only one I didn't get full marks on, mostly because you only get a limited number of attempts to try and classify behaviors of several malware samples. Then you followed up by training a ML model on classifying malware, but you only had to tune 2 variables to get the desired results, and I got it after the first or second try.

Would I recommend this class? If you want an easy class to pair up with a medium-difficulty class, sure. If you already have experience in information security, I think this is worth skipping, unless you are a Computing Systems concentration who is mostly wanting to take OCY classes.

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.

CS-7638

Artificial Intelligence Techniques for Robotics

Taken Summer 2023

Reviewed on 10/27/2023

Verified GT Email

Workload: 15 hr/wk
Difficulty: Neutral
Overall: Strongly Liked
  • interesting content
  • lecture videos are not boring
  • responsive teaching staff
  • enthusiastic course mates
  • fun, game-like projects

CS-7646

Machine Learning for Trading

Taken Spring 2023

Reviewed on 10/27/2023

Verified GT Email

Workload: 15 hr/wk
Difficulty: Neutral
Overall: Strongly Liked
  • interesting content
  • lecture videos are not boring
  • responsive teaching staff
  • enthusiastic course mates

CS-7642

Reinforcement Learning and Decision Making

Taken Fall 2023

Reviewed on 10/26/2023

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

CS-7642

Reinforcement Learning and Decision Making

Taken Summer 2021

Reviewed on 10/26/2023

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

MGT-8803

Business Fundamentals for Analytics

Taken Summer 2023

Reviewed on 10/12/2023

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

For the summer, 2 modules are dropped but the first 2 modules are the most difficult and worth the most. The course would be a lot better if the latter modules were worth more to even out the demands of the class. There is also slight overlap with MGT 6203. The class is effectively a mini-MBA, which can be helpful, especially if you are currently working full-time to help connect ideas to your own business.

CS-6675

Advanced Internet Computing Systems and Applications

Taken Fall 2023

Reviewed on 9/29/2023

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

The course is okay but I really want to slap some of the student reviewers that leave peer feedback. They write like they only have the write answers that now I am extremely critical when I leave feedback. Screw you too.

CS-7646

Machine Learning for Trading

Taken Fall 2021

Reviewed on 9/7/2023

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

CSE-6040

Computing for Data Analysis: Methods and Tools

Taken Spring 2023

Reviewed on 8/20/2023

Workload: 30 hr/wk
Difficulty: Very Hard
Overall: Neutral

I was majoring in EE, and took Matlab, C, c++ during my undergrad, and took CS 1371 and Python BootCamp on Udemy prior to CSE 6040 and thought I prepare pretty well for the course but I was wrong. This class requires lots of prior experience and strong mental health. The first notebook aka homework and 3 out of 6 "prerequisite" problems were relatively easy and gave you a false sense of your knowledge. Notebook 2 crank it from 0 to 100 really fast. The videos aren't helpful for your notebooks and tests. You need to know how to google things; that's the one skill I learn from this class.

To prepare for the first test, just focus on the 6 most recent tests as the old ones don't help you too much. I made the mistake of spending wayyy too much time on the older tests. The 1st test is definitely DIFFICULT sooo study 2 weeks beforehand. I did so badly on the first test.

As for the 2nd test, I learned to study the 6 most recent tests. My grade did improve but still not good enough

The final was as hard as the 2nd test I think. Barely passes the class with a C...maybe i was not as bright as other students in the class

CS-6035

Introduction to Information Security

Taken Summer 2023

Reviewed on 8/16/2023

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

CS-6340

Advanced Topics in Software Analysis and Testing

Taken Summer 2023

Reviewed on 8/14/2023

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

This was a relatively easy A for me, while still being a valuable course for which most of the material was novel to me. The pacing is a bit odd, at least in summer, and highly front-loaded. I got the most value out of the first half of the course, when we had to learn how to use the LLVM API to implement compile time checks. I have no interest in taking a class solely on compilers, but I liked getting some high-level understanding of how LLVM works. I also found it helpful to force me to stop using my C programming skills as a crutch whenever I have to modify some C++ code, and actually start learning C++ as its own thing. It would not be possible to write the LLVM API in C with its current object-oriented design.

The course shifts to more of a survey course on dynamic analysis techniques in the second half. The workload dropped substantially at this point for me. But these were all pretty interesting, especially Klee.

CS-8803-O13

Quantum Computing

Taken Summer 2023

Reviewed on 8/14/2023

Verified GT Email

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

I thought this was a very well done class on a topic I knew nothing about going in, so that alone made this an interesting class. This is still a pretty new class, and this is reflected in the lectures. They're clear and well done. Some of the better lecture videos I've seen in the program. Some of the required papers to read in the class are only a few years old, which makes the course seem very up to date. Also, it was encouraging to read a paper and get ideas on how to address some of the issues or on where someone might be able to pick up where the paper leaves off. For me, I would get ideas, then it would turn out the very next paper is on the idea I just had! Structure: There were 2 exams, a mid-term and a final. There were weekly quizzes on the lecture material, 4 labs to complete, and papers to read, with an associated review we needed to write on each paper. The exams were thorough and fair. If you've been watching the lectures, taking notes, doing the weekly quizzes, and review the practice questions, nothing on the exam will be a surprise. Projects were the most interesting part of the course, and where everything came together for me. Qiskit documentation is often sparse or incomplete, so finding help when you get stuck can be difficult. Fortunately the TAs are very knowledgeable and thorough. I took the paper reviews seriously, and got full points on all of them, but I sometimes wonder if they were just looking for you to turn in something and not really reading what you wrote. You have unlimited attempts at weekly quizzes, so no pressure there.

Pros: As I said above, the lectures are good and interesting. Take notes! They're full of details that will come up on exams. I liked the material and am excited about the direction of quantum computing.

Cons: I took this class in the Summer, which is supposedly compressed. They said nothing was dropped for the summer semester, but I felt like the class was too easy. For being a quantum computing class, math wasn't stressed very much. They easily could have added more material on complex variables and focused more on working matrix problems...even if only in python or matlab, but no. They also could have added an extra lab on an implementing a small-scale Shor's or Grover's algorithm. They explained large number factoring fairly well, but there was no work done on an implementation to really drive home how the algorithm works. I got an A, but almost got a B, primarily because the class was so easy, I just let things slide and didn't take it seriously enough. If this class were more difficult and required more consistent attention, I would have gotten more out of it and done better. I almost think the class was a waste of time for these reasons, but when I think back to when I knew nothing at all about QC, I realize I actually got quite a bit out of the class.

If you're looking for an easy, low-stress, interesting class for an elective over a summer or to pair with a harder class, this might be a good one.

CS-6265

Information Security Laboratory

Taken Summer 2023

Reviewed on 8/14/2023

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

The reviews here are spot on in my experience. I'm 7 courses in for OMSCS. I learned the most in this course out of any so far. This is also the most time-consuming and difficult course I've ever taken. It's second only to CSE-6220 HPC for my favorite course overall.

I threw myself into the deep end with this course, having almost no background knowledge on the subject matter, and struggled to get a C. That's on me, but I'm glad I did it. The juice is worth the squeeze. Some topics require a period of intense study to make any meaningful progress on, and I think this is one of them, at least for me. Things began to really click with Lab 5 for me. The course does a great job of using earlier labs as stepping stones to the next topics.

It always bothered me that I didn't have an understanding of how ELF binaries actually worked. Now I have (some) understanding of that. This course really helped me solidify my understanding of some of the higher-level concepts from HPCA and GIOS.

I think if this topic interests you, your life situation is compatible with the workload, you know what you're getting yourself into, and you can live with a C or a W, you should definitely register. This is grad school, it's supposed to be hard, right?

Three tips that would've made things easier for me:

  1. use a Docker devcontainer instead of a VirtualBox VM from day 1 for all tasks where GUI tools are not necessary.
  2. rack up points early on. the concepts start to make more sense later on, but the challenges don't get any easier.
  3. take Malware Analysis first

CS-6515

Introduction to Graduate Algorithms

Taken Summer 2023

Reviewed on 8/14/2023

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

This is the only course in OMSCS that I didn't learn much, considering that this is one of the core modules you have to take, this is unacceptable. You are basically formatting your work to be as similar as possible to the expected answer, if not you'll be marked down multiple times, especially if you make the mistake at the start, plus a lot of other huge issues with the course itself.

Graders are horribly inconsistent, some will give you full marks, some will give you a rolling deduction of 8/20 for a wording mistake. Office Hours are bad, they don't teach you how to solve the problems (they basically read out solutions) but instead how you should format it so you can have a chance of getting your assignment marked correctly.

This course heavily relies on your study group and student feedback, which is basically just the blind leading the blind. I've had multiple times where some person in takes an entire group down the wrong rabbit hole and then everyone gets marked down for the wrong assumptions after the homeworks are returned. The TAs will encourage you to join a study group, but I joined 4 study groups, 2 of which did not even speak for the entire semester. Graders will also only reinstate some points based on student or TA feedback, if your post doesn't get any comments, tough luck, the grader won't give your points back and will insist they are correct. Good luck asking for a re-regrade, because they only reply you towards the end of the regrade week, which means there isn't even time to ask.

I spent a lot more time arguing why I should get points back than learning algorithms, which is bewildering because this is Introduction to Graduate Algorithms, not Introduction to Gradescope Regrades.

The exams are equally horrible, if you don't get an Eureka moment to solve the problem, you're basically fxcked and you will get 10/20 AT THE MOST even if you have the correct idea of what to do but the wrong implementation. If you can't solve both, then you're getting 20/40 at MOST, which you better pray you get full marks on the multiple-choice questions because 40/60 is only 66.666% and you need to get 70% for a B.

The entire course is designed for you to retake to get an A, which is absurd.

CS-6264

Information Security Lab: System and Network Defenses

Taken Summer 2023

Reviewed on 8/7/2023

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

The projects follow what other reviews have said so I won't go over them. This class still feels like a beta test which is kind of frustrating. On the web exploit project the server was down for several days because nobody realized the server that was hosting it got repurposed. On a similar note the final AI project was totally un-usable and the server required frequent reboots so it was difficult for students to make progress since we were essentially working around the times TA's were available to clean things up.

If you've taken IIS or Network Security you should know what to expect with a Wenke Lee class. The instructor is totally absent and all of the readings in the course were published in part by him. All of the lectures are the same micro-lecture format as the aforementioned classes and some of the videos were directly from IIS or Net Sec so don't expect to learn anything new from the lectures.

The final exam is pretty straight forward multiple choice based on quizzes/lectures/projects. I didn't study for it and got ~70% which was fine because of the extra credit could make up the difference.

Considering the issues, the grading was fair. 5% extra credit for leaving reviews for the projects. I don't think this will be the standard but they dropped our lowest project score because of all of the issues we had with the AI project. The TA's have mentioned there will be a curve but the syllabus says grades are a straight A=90, B=80, C=<70. I don't have a ton of programming experience but after everything I ended up with a ~95%.

All in all, its a good alternative to 6265 if you don't have 35 hours a week to put into the course but it won't be as fulfilling.

CS-6200

Graduate Introduction to Operating Systems

Taken Spring 2023

Reviewed on 8/7/2023

Verified GT Email

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

I took OS in undergrad (albeit during COVID, so I kind of stopped participating in the second half of it), so I have an understanding of the ways an operating systems class could be run. In my undergrad, a majority of our projects were adding features to Xv6. Outside of Xv6, there were a variety of other assignments like making a unix-like shell, reading from FAT32 filesystem, rpc work - which like any good OS course, was a lot of work.

GIOS discusses these topics in lectures very well (honestly better than my in-person undergrad lectures), but had 3 assignments. They focused on multithreading, IPC, and RPC. As such, I think I remember the most about these topics, but feel like I’d be quick to forget things like scheduling, how memory is structured, COW, if not for my undergrad course. If I took this alone, maybe more knowledge would have stuck, but I did well just by watching the lectures, completing the projects, and skimming the readings. The professor is nice and the TAs are good. There is a fairly generous curve (based on fiddling with canvas, ~81.6 for an A).

This class still stands as a really good and interesting one that does a solid job of introducing you to operating systems. I was able to learn about memory/RPC and distributed systems, concepts which I had ignored when COVID hit. For students from a non-CS background will definitely have the additional component of “learn c” that will make the class much harder - but in my opinion, GIOS on the level of a junior/senior level undergrad class; a must take for people with 0 knowledge of operating systems, but probably a skip to AOS for someone who has had marginal exposure to these topics.

CS-7646

Machine Learning for Trading

Taken Spring 2023

Reviewed on 8/7/2023

Verified GT Email

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

The general perception of this class is fairly accurate, but I think what is not mentioned is how much farther you can take the content if you want to. I didn’t do the readings and got an A. Exams are MC, straightforward, and weighted relatively lightly. I rate difficulty as easy when in reality the difficulty could be harder if you set yourself to a higher standard. The first week or two feels like an introduction to python/pandas/numpy, but after that the class is 50/50 between trading and introductory ML. the TAs (who predominantly run the class) are responsive in forums, provide clarity in office hours, and encourage discussion and deeper analysis whenever possible.

As someone who does not want to pursue ML, I took this class because I thought it would be a nice introduction to it (in addition to being interested in investing).

The content was really interesting. My biggest gripes were that I do not like writing reports (which is what I spent the most time on) and (and the reason for the lower overall rating) it took a while to get feedback on assignments (this improved after the middle of the semester, but we still waited on ~50% of our total grade until then). Follow up regrade requests also took a while to address.

CS-8803-O08

Compilers: Theory and Practice

Taken Summer 2023

Reviewed on 8/7/2023

Verified GT Email

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

I was interested in this subject, and the class did not disappoint. Really interesting content that makes you realize how applicable theory can actually be for something software engineers use on a daily basis. While previous reviews from years ago seem to indicate TAs gave ambiguous answers and the assignments are vague with requirements, that was not the case this semester (and is probably no longer the case); TAs were absolutely fantastic and the grading for the project was very fair - you could have a very good idea of your score with the autograder.

While many may understand the general phases of a compiler, there was a lot more to them than I expected; things like NFA/DFA conversions and minimizations, liveness analysis, (super)local value numbering/other optimizations, and NP-complete graph coloring problem for register allocation are examples of things I had never heard of.

This class does not delve too much into compiler optimizations because there is so much content to cover to just to explain what a compiler does at a high level. In the summer, the content is reduced even further (less requirements for the project). Unfortunately, the continuation of this class that dives into advanced optimizations is only offered in person, but I hope to see it for OMSCS in the future.

General advice:

  • Read the textbook if you want to maximize learning (and get the 2nd edition if they're still requesting that, since there is some content that has been removed/rearranged in the 3rd).

  • The homework and exam questions were honestly more difficult than the project. Building a compiler is a long process, but after you know what to do and as long as you manage your time it's fairly straightforward (and I think the LOC in other reviews are somewhat of an exaggeration; the amount of code I wrote didn't total to be over 5000 lines, and that includes very inefficient modularity). Free response questions are human error prone and most of the points I lost were from careless mistakes.

Ways this class could be improved:

  • I feel like making the final exam 35% of the grade put a lot of stress on me; potentially giving more weight to the homework (which are similar to the exam) could alleviate some of that pressure.

  • Perhaps the timing is made a little off in the summer just because of the shortened term, but there were cases where I had to watch/read ahead of schedule to finish homework at a comfortable pace. If the homework is opened earlier (or there was at least corresponding sections explicitly stated that we should read/watch before completing it) I think it would've improved the experience.

Probably the most interesting/fun class I've taken so far, but I think you kind of have to be interested in the topic to begin with. This class made me more interested in this topic.

MGT-6203

Data Analytics in Business

Taken Summer 2023

Reviewed on 8/6/2023

Verified GT Email

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

You can't avoid it, so the main question is how to approach it. Anyone who truly met the prerequisites for the program should be able to ace the course, so it could be taken at any time. The biggest part of the grade - and the largest time-sink - is the project. The grading on it seems fairly lenient, as long as the voluminous and inconsistent instructions are met, The few homework assignments are easy, although each might take a few hours to complete. As far as the lectures go, I watched many of them on 1.25x or 1.5x, which reduced my restlessness due to their rudimentary level. Some of the homework depends on the extra readings or, irritatingly, on the code from the TA sessions, but students could wait until they see the questions before delving into those sources.

It's not a horrible course (although the marketing section and the instructions are), and I especially appreciated the review of regression, which I found to be quite clear. But, if the assignments were harder, I would've studied more and thus retained more in the long term.

ISYE-6414

Statistical Modeling and Regression Analysis

Taken Spring 2023

Reviewed on 8/2/2023

Verified GT Email

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

I had a decent handle on regression heading into this class. I also worked with regression in R in 6501 and 6203. I was stunned - this class will test your ability to memorize arcane knowledge (how many degrees of freedom for this linear model, what is the underlying distribution for the pooled variance estimator). It will NOT tell you anything about building a model, making decisions/tradeoffs, and communicating those decisions. It will NOT tell you anything about regression except memorizing random facts.

I didn't learn a thing. Just copy the slides and shrink them down to a cheat sheet (you get a cheat sheet for exams) and memorize everything. Read exam questions carefully, they are poorly written.

Overall, be prepared to waste your money, time, and not learn anything.

CS-7650

Natural Language Processing

Taken Summer 2023

Reviewed on 7/31/2023

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

Since this was the first semester the course was offered, all of this could change! Excellent course design. Very well thought out assignments and exams. The lectures by Prof. Riedl were incredibly clear and well presented.

Prof. Riedl was very deliberate about designing the course to not cause undue stress. The exams were open book, notes, internet and we had a few days to complete them. The questions are carefully written to make the exam another learning opportunity, and succeeded in that goal. Super impressed.

Six assignments that made up most of the grade were fun. The first 5 were relatively easy, but definitely took some work and collaboration with classmates to get past hurdles. The grading was very fair and you should already know your grade when you submit. The last one was significantly harder. Make sure you allocate enough time for it. All assignments were coding except for a written report as part of the last one.

There was quite a bit of complaining about the Meta lectures in the second half of the course, but most of them were pretty good. Just one guest lecturer (2 modules) was pretty hard to follow. The second half of the course seemed more disorganized than the first half, but I suspect that will improve in future semesters.

CS-7643

Deep Learning

Taken Spring 2023

Reviewed on 7/31/2023

Workload: 30 hr/wk
Difficulty: Neutral
Overall: Strongly Disliked

I took CS7643 and would like to share my thoughts on the class. While the professor was friendly, I must admit that the course did not meet my expectations, and I would consider it the worst courses I've taken in OMSCS, i.e. 1 out of 7. Please not it is not one of the worst.

  1. DP is a challenging subject to teach, given the abundance of quality lectures available. After completing the course, I felt that it was only sufficient for earning credits purpose. For those genuinely seeking in-depth learning, I believe resources like Andrew Ng's courses might be a better fit, based on my limited experience.
  2. Unfortunately, I found the TAs to be lacking in their support, and many questions remained unresolved. As a result, I eventually gave up on seeking assistance. The responses received often felt inadequate, with explanations like "this is a graduate-level course."
  3. I found the lecture setup to be quite unusual and tedious. Unlike other OMSCS courses, the lectures were continuous 20-minute sessions without breaks or quiz questions to facilitate understanding. Additionally, the lecture slides were challenging to comprehend, and much of the content appeared to be copied from other sources, leaving me wishing I could have done the same.
  4. Despite taking other OMSCS courses and acquiring knowledge from them, I feel that CS7643 did not contribute significantly to my learning. Some OMSCS central reviews suggest that earning an A might be achievable with just 60% credit from the quiz, which seems to indicate that success in the quiz is just a coin tossing game. This resonates with my own experience.
  5. I found the quiz and grade release process to be immediate. I do appreciate the quick release of grade. Though quiz quick release could potentially facilitate cheating. The professor's kind gesture in this regard might have made the quiz less meaningful as a genuine assessment. The setup could potentially allow students to coordinate and secure an 80% credit by pooling their efforts, rendering the quiz less rigorous.

In an attempt to remain positive, I must acknowledge that the professor is a nice person. However, I can't help but express my disappointment with CS7643. Normally, I participate in CIOS surveys only when I find a course to be truly helpful. The absence of my survey submission would typically indicate an average experience. However, with CS7643, my disappointment is significant enough to share my thoughts for the benefit of future students. In conclusion, while the professor's kindness is noteworthy, I believe the course has significant room for improvement. As an OMSCS student, it is essential to consider personal preferences and learning styles when choosing courses, and I hope my feedback can contribute to a more informed decision-making process for others.

MGT-8803

Business Fundamentals for Analytics

Taken Summer 2023

Reviewed on 7/31/2023

Verified GT Email

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

Coming from a non-business background, this class was definitely a grind and it required a lot of time going through the lectures, taking notes, and doing the practice assessments. I thought the material was interesting and well laid out in the lectures (for the most part), there's just a lot to memorize in a short period, especially with this being a summer semester. For the accounting and finance modules I was probably averaging 15 hrs./week of course work, then that dropped down to around 10 hrs./week for the supply chain and marketing modules, with the course work mainly being studying notes and practicing self-assessments. All the exam questions are very similar to the practice self-assessments questions, so as long as you're comfortable with all the practice self-assessments questions, you should be OK. It also helped a lot to get through the lectures early so that for exam week I could just study and practice assessments.

I can see why people don't like this class since it's very much a business crash course with not much analytics involved, but I found it useful to have a better understanding of business and could apply what I was learning to stocks, business decisions, what I read in WSJ, etc.

CS-6250

Computer Networks

Taken Summer 2023

Reviewed on 7/30/2023

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

This was my third class in OMSCS and I really didn’t mind it. As mentioned before, since we did summer, we didn’t do the BGP Hijacking lab, so I can't speak to that one.

Lectures Honestly, the only bad thing about this class was the amount of reading. There are very few lecture videos, and the reading can get quite lengthy, especially with the optional readings and all the recommended articles and papers that they want you to read. I read a couple that interested me, but skipped them for the most part. In general, I spent about 1-3 hours a week just reading and doing the weekly quizzes.

Projects Python is very helpful to know in advance to do the projects. I have a decent amount of experience using Python, and so that saved a lot of time. In general, you should be able to get 100% on all the projects. The first 2 projects are very basic (Spanning Tree Protocol and Distance Vector Routing). I think I spent 2-4 hours on each of them. SDN Firewall (4-6 hours total)- most of this was reading and understanding what they want you to do. The actual implementation wasn’t very difficult. The student test cases were awesome, and definitely saved a bunch of time with manual testing. BGP Measurements (6-7 hours)- Again, mostly spend time reading and understanding the project requirements and API documentation. The implementation was slightly more difficult, but not unreasonable or hard. I ran into a couple of roadblocks when trying to follow the documentation, but the Ed Discussion helped a ton for those, so I quickly found the answers I needed and moved on.

Exams Exam 1- I spent 2-3 hours studying for this one, mainly using the course and weekly quizzes. I ended up getting an 88%. Exam 2- I spent 1 hour studying for this one, just basically skimming the quizzes (I only needed a 50% for an A). I ended up getting a 76%. Overall, the exams were challenging, with the hardest thing being the pages and pages of notes that you need to comb over to study. However, they weren’t unfair or anything like that. And, if you do well on the projects then you can skip a lot of that study time and just do a quick refresh to get an easy 70% or so on them.

Conclusion Overall, I thought that the class was good but not great. I didn’t know a ton about computer networking coming into the class, and so it was a really good class that went over the basics and I learned a lot.

CS-6250

Computer Networks

Taken Summer 2023

Reviewed on 7/30/2023

Verified GT Email

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

Introduction

Background

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

This was my third course in OMSCS, within the computing systems specialization. I previously completed GIOS (CS 6200, Fall 2021) and IIS (CS 6035, Fall 2022), and also attempted HPCA (CS 6290, Spring 2023) in the semester immediately preceding taking this course (CN), but had to drop HPCA due to an unexpected/abrupt layoff and consequent get-a-new-job-ASAP scramble (which fortunately I did manage to do, around 2 months prior to starting CN).

Caveats

For full transparency's sake, a couple of caveats/disclosures:

  • I begrudgingly took this course over the summer to make up for dropping HPCA (CS 6290) in preceding Spring (2023), and do not plan to do any more summer semesters during my remaining residence in OMSCS after this one; despite the course being on the lighter side, it reinforced my disdain for summer school nevertheless
    • I prefer having a longer break in between Spring and Fall to recoup and recharge, rather than just being "free" for only 3-4 weeks at a time, and this was especially true here with summer-semester CN coinciding with starting a new job that required a lot of ramp-up due to the job being in a new industry from previously, which also compounded my stress/aggravation from the course, as well as derailing other previously anticipated summer plans prior to the layoff and at that point anticipating a "fully clear" summer.
  • I did not have much formal networking experience going into the course
    • Conversely, among those who did, they seemed to demonstrate more overall engagement with the material, as evidenced by their Ed posts/comments, prompt/in-one-sitting completion of projects, etc.

As a big pet peeve (for me personally, but presumably others as well), in the summer semester, three of the four projects were due over U.S. holiday weekends (Memorial Day, Juneteenth, and July 4th, with the projects themselves all due on the respective US-based time zones Monday mornings of these holiday weekends), which was an additionally contributing factor to my aforementioned disdain for the course (and summer school more generally). While not strictly the course's fault per se (i.e., based on how a compressed summer schedule aligned with these holidays), it was nevertheless still very much so "not a plus," to put it mildly (i.e., all three of those projects/deadlines ended up being rather stressful in terms of managing against other family obligations, etc.).

With those caveats out of the way, I attempted to stay reasonably objective with this review (and correspondingly attempting to stick more to "facts" than "opinions"), but it still seemed appropriate to disclose being somewhat "negatively biased" going into the course/review nevertheless, in order for readers (i.e., future CN prospects) to exercise appropriate discretion/discernment while reading this review.

High-Level Review

Overall, I did not find this course to be that remarkable, and probably the relatively worst one I have taken to date (certainly within the scope of the aforementioned fully- and partially-completed-to-date OMSCS coursework). The lecture content feels mostly like a patchwork of Wikipedia articles on scatterbrained topics, with only a few emergent high-level themes/takeaways at best (and otherwise forgettable post-review/post-cram). Content-wise/topics-wise, I do think the course would have been much better-served by simply following along more directly with Kurose & Ross or an equivalent textbook on networking, in order to facilitate a more coherent topical structure/organization.

Course Logistics and Time Expenditures

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

  • 60% projects (10% + 15% + 15% + 20% across the 4 projects, further discussed below in the next section)
  • 15% midterm exam
  • 15% final exam (non-cumulative, covering only post-midterm lessons)
  • 10% open-notes/open-resources lesson quizzes (12 total)
  • (optional) 3% extra credit project

N.B. In the summer, one of the projects is dropped due to time constraints (BGP Hijacking), so I cannot comment authoritatively on it in this review. Furthermore, there is an optional (ungraded) introduction/orientation to mininet (Simulating Networks), as well as an optional extra credit project (Internet-Wide Events) worth up to an additional 3% overall (which is relatively generous, enough to cover a borderline grade on a partially flubbed project or exam, or otherwise equivalent to roughly 2.5 lesson quizzes).

  • I did not attempt the extra credit project, as I was sitting pretty solidly at an A (~95% overall) in the course going into the final exam (by that point, I had achieved 100% on all projects, mid 80s% on the midterm, and around 90% overall on quizzes going into the final exam), and basically it was "my A to lose" (my critical score to keep an A overall in the course [i.e., >= 90.000%] was around low 50s% on the final exam, which I subsequently exceeded with low 80% upon completing the final exam, thereby securing the A in the course).

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

  • 1.5 hours per lesson (reading the text followed by completing the 30-min-limit quiz) * 12 lessons total = 18 hours
  • 18 hours per project (mid-range average across the four projects) * 4 projects = 72 hours
  • 15 hours of prep per exam (lessons review and study guides completion) * 2 exams = 30 hours

Given an 11-week summer semester, this averages out to 10.9 hours/week [= (18 + 72 + 30) / 11]. The cadence was typically 1-2 lessons/quizzes per week, aside from the midterm & final exam weeks (during which neither lessons/quizzes nor projects were assigned/due).

  • The busiest points in the course were around the projects' due dates, along with the exam weeks (i.e., cramming a ton of very oddly-specific information from the preceding 5-6 weeks' worth of lessons).
  • Otherwise, the "in-between" weeks (i.e., during which only a lesson quiz was due, and a released project was in-progress but not-yet-due) by comparison were not as intense, possibly with little-to-no required time allocation for that particular week (i.e., if completed project and quiz ahead of schedule by that point).

Course Deliverables

Quizzes

In general, quizzes were released weekly, so it was not possible to work ahead on those (i.e., as one quiz was due, the next week's lesson quiz would be released and was subsequently due by the following week deadline, etc.), though the all of the lessons' text/content themselves were generally open for all lessons as soon as the syllabus quiz was completed at the start of the course and henceforth from that point.

There are 12 total text-based lessons (with corresponding videos for some of the slides/pages, with the videos mostly just rehashing the text information, and consequently I largely ignored the videos in favor of simply reading the text), with each lesson having a corresponding open-notes quiz in Canvas. The quizzes can mostly be completed by referencing the lessons' text, though sometimes the quizzes questions' wording was a bit ambiguous/tricky. The quizzes are also time-limited to 30 minutes.

Projects

Similarly to the quizzes, the projects were not released in advance, but rather on a fixed-interval basis (i.e., as on project was due/submitted, the next project was then released).

Regarding the projects work, while this course is generally regarded as being on the "easier" side (which, compared to the likes of GIOS and HPCA, I did personally find this to be true, too), an advanced-beginner/early-intermediate level of proficiency in Python will be useful (if not outright necessary) to get through the projects, which difficulty-wise are on par with LeetCode harder-easy to easier-medium tier. The "happy path" is generally straightforward, but there are edge cases which require more refined techniques (e.g., using the debugger and/or print statements) to pin down and solve.

I did not keep tabs on total time expenditures on a per-project basis, but across the board, I can back-estimate an average of around 15-20 hours per project spread over the correspondingly allotted 2-3 week completion periods, which typically translated to a few evening sessions (including the occasional weekend in the mix, as necessary), working through a given project part/task at a time (i.e., per attempted-project-work session).

The four projects in the summer were as follows (in order of appearance):

  • Spanning Tree Protocol
  • Distance Vector Routing
  • SDN Firewall
  • BGP Measurements

A VM was provided for the course, though only strictly required for SDN Firewall. Otherwise, the first two projects could be done on your local machine (the staff provided a conda environment to configure the Python version, but otherwise used standard library features exclusively), and the fourth (in principle) could also be done locally, but that required unsupported setup of third-party dependencies to do this (I did not bother with this, and in all cases where VM was required, I simply set that up and sshd into it from my host machine and used remoted-in VS Code on the host to do the projects work).

The projects were mostly a slog/uninspiring overall (i.e., if stripping away the ostensibly relevant "networking" subject matter, it was otherwise effectively just implementing algorithms in Python), but generally "doable" once you figured out the intended instructions (the first two projects included video tutorials which were helpful for determining the general "gist" of the respective projects and how to formulate the "happy-path" solutions), at which point it was just a matter of covering edge cases beyond that.

I thought the SDN Firewall project in particular was incredibly tedious (no offense intended here towards the head TA for that project), as the project description had a lot of extra/superfluous information that felt like a distraction overall, making it feel like more of an exercise in interpretation of instructions rather than actually getting the project work itself done.

  • The Wireshark content seemed like it was shoehorned into the project for its own sake, but in reality, I think a lot of that could have been leaned out by simply doubling-down on the more recent test-harness-based setup at this point, in my opinion. If they want to keep the Wireshark exposure in the course for "general relevance" to networking, I think they should just move it into (yet another) appendix for the project, or just move it over to the Simulating Networks intro/tutorial (optional) project altogether instead.

All projects generally provided local testing suites, which were particularly useful for SDN Firewall, since that one was not graded via Gradescope, but rather only submitted as a .zip directly to Canvas for subsequent manual grading. Otherwise, for the remaining projects (for which Gradescope was available), Gradescope submissions were generally unlimited up to the deadline (i.e., generally, WYSIWYG with respect to the resulting graded project score in Canvas post-final-GS submission).

Course Exams

The most challenging part of the course is the exams, mostly by virtue of having to rely on rote memorization and "luck of the draw" (i.e., not blanking on the particular question(s) that appear). The exams are essentially a longer quiz (2 hours total test window), but without open notes/resources available. The exams also required browser-based proctoring via Honorlock to enforce during the test-taking session.

The staff provided study guide questions for the exams, and I strongly encourage going through those in tandem with exam prep (along with reviewing the lessons quizzes); that was the key to doing reasonably well on the exams for me personally (particularly with myself not being a "good memorizer," by any stretch of the imagination). The exams made me feel somewhat like I was back in biology courses from undergrad all over again (i.e., cramming slides and hoping for the best).

With all that said, from a points-maximization standpoint in the course overall, it is definitely advisable to max out points as much as possible on all of the other deliverables outside of the exams (i.e., lesson quizzes and projects), in order to cover potential shortfalls on the exams. I scored around the median on both exams, well enough to secure the A overall in the course, by virtue of getting 100/100 on all projects and near 90% across the lesson quizzes.

Closing Thoughts

CN is probably not the worst course you could take in OMS, but it is still otherwise unremarkable on the whole (for me, it fell flat / missed the mark overall). In fairness, I cannot say in good faith that I gained nothing useful out of the course, and it did help with elucidating high-level themes around the OSI model and a few specific protocols therein. But given that I took this course specifically in order to better-inform my day job (software engineering involving REST APIs & web apps), it was still pretty disappointing to come out of the course with not-an-appreciably-better understanding of the subject matter relative to going into the course. I probably would have been better off self-studying Kurose & Ross or equivalent (and/or going through equivalent CCNA certification prep materials), and consequently I will still have to do something along those lines in the near future in order to gain a better understanding of the underlying computer networking concepts.

Overall difficulty-wise, I would put CN at easy-leaning-medium. I decided to go with "easy" over "medium" in the difficulty rating for this review (relative to GIOS being an unambiguously "hard" but not "very hard" for me), with the caveat that CN does require some reasonable proficiency in Python, and that the cramming for the exams is pretty tedious and time-consuming (at least if you're looking to do reasonably well, i.e., near or above class median, or roughly low-to-mid 80%).

If you are diligent, CN should be reasonably amenable to pairing with another easy-to-medium difficulty course (provided you have the necessary Python skills for the CN projects), though that will probably make for a fairly busy semester, particularly around exams and projects deadlines (and also depending on how these deliverables' deadlines align with the other course's deliverables' deadlines). On a relative-to-other-courses basis (per my own personal/subjective experience with them), I would assess CN's pairability as:

  • "pairable" similarly to IIS
    • i.e., relatively similar difficulty and time-intensity, perhaps with a slightly larger overall time commitment in CN due to quizzes and exams in addition to projects
  • "not pairable" dissimilarly from GIOS
    • i.e., if you feel you could not pair GIOS with something else due to GIOS's high difficulty & time-intensity, CN is still otherwise comparably less difficult and less time-consuming than GIOS, and thus possibly pairable with another lighter-than-GIOS course

CS-6603

AI, Ethics, and Society

Taken Spring 2023

Reviewed on 7/16/2023

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

Simple course with low quality, but it is easy to get A.

CS-8803-O08

Compilers: Theory and Practice

Taken Summer 2022

Reviewed on 6/26/2023

Verified GT Email

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

This was the hardest thing I've ever done, and in the end I did not do well (I earned a D). I was struggling through assignments when I probably should have been working on the project. My programming skills were not up to par to get full scores on the project (I opted to do the project without a partner, huge mistake). And the exam was a beast. If I had studied just a little better, I could have gotten a C in the class with just a couple more points. That hurts. I usually do poorly on exams and therefore, try to keep my project scores high when possible.

I loved the material though, which is good because I'll probably have to retake it to replace the score (luckily we get once chance at that). However, it was so much work that I might just keep the D and hope I get a high enough GPA to graduate.

I used all my vacation time from work to attempt to complete this course, which was probably 3 or 4 weeks worth of time off of work to spend 16 hours a day on the project. In fact, I didn't sleep on a couple of weekends, just did homework/project for the entire weekend - Friday through Sunday with no sleep (It did make Monday very tough at work).

Another mistake I made was using C++. I don't know Java so I thought I would be better off, but the documentation for C++ is lacking. I might have had a harder time with Java since I haven't used it for years.

Pros

Excellent material, and lots of practice using it.

Cons

More work than any single class should be. I was stressed the entire semester, struggled to understand the material (though the assignments helped) and was devastated to earn a D. There should be some prerequisites or a programming test to make sure that you have enough experience.

However, if I earned two or three more points on the test and landed with a C, I would say it was a great, tough, but great experience. I loved the material.

CS-7646

Machine Learning for Trading

Taken Spring 2023

Reviewed on 6/9/2023

Workload: 12.1 hr/wk
Difficulty: Neutral
Overall: Liked

The full review can be found on this link.

CS-7280

Network Science: Methods and Applications

Taken Spring 2023

Reviewed on 6/1/2023

Verified GT Email

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

This is my favorite class I've taken so far. The subject was very interesting, the lectures were good, the readings illustrative, the homeworks really have you applying what you've learned, the TA's are helpful, grading is from the TA's and they give good feedback, etc. The only two negatives I encountered were:

  1. The homework questions can be weird sometimes. I remember there was one question that was like, "Plot this graph. What is the p-value of the pearson coefficient?" and like, what pearson coefficient? In relation to what?? The TA's are quick to clear up any confusion in Ed though, so it's not really a solid negative.

  2. Grades can be pretty late. Understandable since the TA's grade it themselves, and I'd rather late grades than peer grades, but it does make it harder to apply what you learned in hw2 to hw3, because you don't know how you did in hw2 by the time hw3 is due.

Besides those 2 (honestly minor compared to the high quality of everything else) points, overall I loved this class and I highly recommend it if you're interested in networks.

CS-7639

Cyber Physical Design and Analysis

Taken Spring 2022

Reviewed on 5/19/2023

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

This was my 2nd course overall. I found that this one wasn't that great. It seemed mostly a waste of time.

The lectures weren't interesting. I found that after the first couple of weeks, I just stopped watching them. They don't relate to the homework or projects at all. It seems to be mostly examples of cyber-physical systems and designs. I would have preferred lectures that talked about the topics in depth, instead of just talking about examples.

The homework assignments were pretty basic. For someone coming from a mechanical engineering background, I am already familiar with matlab, and so the homework assignments at the beginning were pretty easy. They became more difficult at the end, but most of the time is just spent learning about the environment and background, not actually doing much work.

The projects were somewhat interesting. The first one was a bit of a learning curve to learn about the robotarium system, which is pretty cool. And then the second one was a more advanced version of project 1. I thought it was actually a lot of fun.

Project 3 is a different beast. It wasn't that challenging once you learn a little bit of AADL, but learning it was just annoying, because you know that most likely you won't have to use it ever again. I thought you could have learned the material without learning AADL. Overall, it just felt out of place.

Overall, I thought that the course was pretty easy. The projects take some time, but otherwise you don't really have to worry too much about spending time on the homework or course lectures. I would say that this is an easier class that you could pair with something more difficult. To me, this class just wasn't interesting enough to recommend. I don't really feel like I got anything out of it, but maybe your experience will be different.

MGT-6203

Data Analytics in Business

Taken Spring 2023

Reviewed on 5/11/2023

Verified GT Email

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

Course isn't difficult by any means, most of the homework is in R and doesn't require anything too complex. The self-assessments all come directly from the lectures, with the exam questions coming directly from lectures and homework. For the group project, it's important to find people you feel like you can work with and who will share the load, but the grading on it is pretty lenient so as long as a decent effort is made, should get a decent grade on it. Some of the lecture sections were interesting (stocks, inventory management, advertisement ratings) others were very dull and just read off the slides. My biggest complaint was just the course didn't feel as tight and composed as other introductory courses such as ISYE 6501, quite a few errors on the homework solutions, informational exam posts not posted till day of exam, etc.

CSE-6040

Computing for Data Analysis: Methods and Tools

Taken Spring 2023

Reviewed on 5/11/2023

Verified GT Email

Workload: 8.5 hr/wk
Difficulty: Neutral
Overall: Liked

Overall I really enjoyed this class and thought it did a good job getting me more comfortable with python, and the different python packages associated with analytics as well as how to implement them. The difficulty of this class will depend a lot on prior experience with python and coding in general, if you have no prior coding experience and didn't take CS1301 or another python introduction class, you'll most likely struggle heavily. Otherwise, even though I didn't have much python experience besides CS1301, I was able to understand how to approach problems and just used google search to determine the best python syntax. For the homework, office hours, slack, and piazza are very helpful if you get stuck, and for the exams, studying prior exams is the best way to prepare.

CS-6310

Software Architecture and Design

Taken Spring 2023

Reviewed on 5/11/2023

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

Poorly designed class. TAs and Professor are there for most of it but one major flaw with the class is that the lectures do NOT line up with the assignments. The general ideas of the lectures are apparent in the assignments but the detailed minutiae that the assignments expect is not covered. There is a course textbook but even in there, some of the material is not readily available and you are at the mercy of TA’s releasing information on Ed Discussions. The lectures are connected to the quizzes and cover so much unnecessary information. Quizzes are primarily T/F and have two tries which, if left this way, quizzes will be an easy grade. The last two projects are team based. The requirements are vague and in our case, the assigned TA to help us define our group specific requirements was often not there. The final group project is coding based on a previous solo assignment in Java. It is reasonable but tedious.

Overall, I did not enjoy this course very much. The lectures are irrelevant and the projects are tedious. As for content that is actually learned, UML diagramming is really the only concept that is pushed. Other than that, if you have not used Java before, this course may be helpful if you wanted to learn. 

INTA-6450

Data Analytics and Security

Taken Spring 2023

Reviewed on 5/11/2023

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

I do not recommend this course. The course has lectures, quizzes, small coding assignments that require handful of line changes at most, and two large essays. The lectures are fine and informative. The quizzes are directly from the lectures and do not require honor lock so you can follow along while completing it. The coding assignments generally take less than 15 minutes for each one as most of them are “make one unique change to the code adding some new functionality”. You are allowed to make any change to it essentially.

There are two essays, one being a solo assignment and the other being a team project. As many of the other reviews state, your grade on any give assignment is completely dependent on the TA that grades you. Some hand out 100s without verifying the quality while some mark off points without specifying where. After the first essay grades were released, the TAs declared no form of regrade request but provided them on an individual basis for students that complained. Both essays are purely tedious the first having a 5-10 page requirement and the team essay have a requirement of 10-30 pages. The assignment requirements are succinct and vague, leading me to believe this is the equivalent of a creative writing course. I spoke with multiple other students who voiced similar concerns that there was not enough to write about since the requirements were so short so they were forced to include unnecessary details to hit the page requirement.

At the end of the course, they give a pretty significant curve to the extent that I believe very few students received a ‘C’ if any at all. I was given an arbitrarily lower grade on my first essay and with no regrade requests, I thought my chance at an ‘A’ was over but the curve pushed me up to one. Perhaps this is the experience that the teaching staff are trying to give to make it seem like a legitimate course - vague requirements, arbitrarily lowered grades, then a curve at the end to reassure students. Absolutely silly course that is simply busywork. Do not take it if you don’t have to. 

CS-6603

AI, Ethics, and Society

Taken Spring 2023

Reviewed on 5/11/2023

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

https://www.reddit.com/r/OMSCS/comments/11frnuo/cs_6603_ai_ethics_society_the_worst_course_ever/ Please read the above reddit post. Loosely, it summarizes my thoughts. The grading is the MOST lenient of any course I have taken in this program and I am 8 courses in. Sometimes I will leave portions of assignments half-finished on purpose if I do not believe I need that portion for my grade. I would often still get marks for it.

The lectures are fine and I enjoyed them quite a bit. The assignments on the other hand are pure tedium - I’ve had less than 200 lines of code be used for a 15+ page reports due to the copy and pasting of the code or plugging in of different values. The assignment instructions are vague, have grammatical errors, and required constant TA adjustment during the semester. The Taste try to be as helpful as possible and are great otherwise but I believe the amount of busywork could be cut down in this course with a higher emphasis on quality, not quantity.

ISYE-6669

Deterministic Optimization

Taken Fall 2021

Reviewed on 5/10/2023

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

I believe the professor for this course has changed since I took it so take this with a grain of salt. This course was exam heavy with weekly homework assignments.

The type of questions were quite different with the exam testing concepts and math skills whereas the homework had more practical questions along with programming applications. Overall it is a very useful course that helps introduce concepts that are used in later classes. I certainly think it is more useful than the Simulation class which has limited applicability to discrete event systems

CS-6310

Software Architecture and Design

Taken Spring 2023

Reviewed on 5/9/2023

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

My background: Chemical engineering undergrad, self-taught/bootcamp, working as a software developer ~3 years experience.

Bluntly: This course was useless and pedantic. The lectures are a waste of time and the head TA is unhelpful. The quizzes are a joke and are free points; high scores can be achieved by not doing the reading or watching the lectures. The majority of the points are in the projects, which have long and hard to read descriptions (poorly written requirements, unclear expectations). The grading is spotty, and group members reported points docked in different areas in their personal assignments where others had not had points docked for similar design decisions. The projects do take a fair amount of work, especially the final project which had me up till 230AM on two occasions as its deadline neared. You learn in the projects in the same way you would learn in making a personal project (as you are writing and designing software), but in my opinion for a course to be considered worthwhile, it needs to go beyond the very baseline of learning. SAD was sad, the only reason the difficulty is not listed as the easiest is because of how cramped the project timelines are.

Expected grade: A (~94% going into final project, grades are not posted)

Would not recommend.

CS-7210

Distributed Computing

Taken Spring 2023

Reviewed on 5/7/2023

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

About me: professional full stack developer with 7 YOE., married with a young child. Bachelor's was not in CS. Took DC as my 8th course. Prior relevant courses included GIOS, AOS, and SDCC.

Time Commitment: The course starts off fairly light. The first 2 projects can be knocked out in a weekend. You can easily get by with <10 hours per week until you get to project 3. Around project 4, I was averaging 20-25 hours a week and for project 5 it was closer to 30-35. This was to get all tests to pass for every project. Each project has a few tests that are very difficult to pass. This doesn't mean the tests are unfair. Distributed systems are hard.



I'm not going to go through the specifics of each project there are plenty of reviews that cover this topic well.

Spring 2021 is an outlier The class was radically changed based on the feedback from this first class. The professor and teaching staff are fairly open about how brutal that semester was. There is now more time to work on projects 4 & 5.

Search Tests are your friend This was one the best features of DSLabs. Search tests provide valuable information about what's incorrect about your implementation.

Start projects early Despite the reputation, many students wait too long to start the projects. Those that started late almost always ended up with the low scores.

Don't take this as your first class An alarming number of students were taking this or their first class or had no prior "hard" classes. I recommend taking at least GIOS or AOS prior to taking this class. It doesn't hurt to be over prepared like I was.

TA's were helpful, but don't expect hand holding I found the TAs to be responsive. Slack was fairly active with great discussion, but most students didn't really take advantage of this. There is light "hand holding" in this class. The TA's may suggest a high level strategy, but won't go beyond that.

CS-8803-O13

Quantum Computing

Taken Spring 2023

Reviewed on 5/5/2023

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

Overall, this is a good class, but there are some bumps I do hope will be ironed out after it gets another semester or two. In terms of content, this class is a wonderful introduction to Quantum Computing. You learn the background of what exactly a qubit is and why it offers advantages in computing, work on assignments using a popular quantum computing simulation library, build out algorithms which take advantage of the qubit, study ways that errors are mitigated in quantum computing, and read up on important papers in the field. You should end this course with a great breadth of knowledge. Some of the assignments had weird wording or outright mistakes in them, but everything important was quickly corrected.

The difficulty will vary depending on your mathematical background. None of the math is too complicated, but the course's attempt at shoving an entire semester of linear algebra into one week is certainly one of its weaker aspects. For me, as somebody who has not taken a number of the college-level mathematics courses that many CompSci students have, this was a struggle. I was always able to get it in the programming assignments where I had infinite time, but some of the problems on the exams got me a bit thanks to the time limit. Overall, I would definitely say that the overall difficulty is on the harder side of OMSCS classes I have taken, but never unfairly so.

That does bring me to my biggest gripe, though. Ahead of the midterm, there was essentially no information released regarding what it would look like. This was especially unfortunate considering the natural substitute was questions from the textbook (which one TA even said could be a good idea), which ended up not really resembling the format of the exam at all. Not that doing them hurt you or anything, but it would have been helpful to know whether the exam was more math-y, required more recall from the lectures, required us to do the same computations as the programming assignments or different ones, required us to memorize each algorithm's steps or just know how to carry them out when spelled out for you, etc. In my opinion, as the second semester this course was being offered, releasing just a handful of sample questions from last semester would have gone a long way. With that said, I do stress that the midterm itself was ultimately a fair exam.

The TA's in this class were pretty good. They were very responsive on both Ed and Slack, and generally helpful when they could be. It was a bit of an interesting experience being able to scroll up and see what pretty much all of these TA's were saying last semester when they were students versus what they were saying now that they were in charge; definitely some whiplash seeing a TA make a sarcastic remark about students speculating about how a dropout rate could affect a curve, and then seeing that same TA as a student speculating about how the dropout rate affects the CIOS completion rate for extra credit.

I'd recommend the course overall; there are some key points that could be improved, but everything was ultimately fair and I learned a lot, in addition to simply being an interesting topic.

CS-6035

Introduction to Information Security

Taken Fall 2022

Reviewed on 5/5/2023

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

My review doesn't have much to add - I'll double down on the person in Fall 2022 who reviewed each project. My experience was very similar. The C project took a lot of time but I enjoyed it a lot, I can see how folks get into CTF contests. It was interesting to learn about some of these topics, I don't plan to become a cybersecurity professional but I do feel it's good to have a decent understanding of each of the items covered. Agree my least favorite was the ML on CLaMP and that was the only one I didn't get an A, but I didn't try that hard for it.

I got an A in the course and didn't spend much time. If you want a low effort class and want to get familiar with various cybersecurity topics I enjoyed the course.

CS-7646

Machine Learning for Trading

Taken Spring 2023

Reviewed on 5/4/2023

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

This was my second course after IIS and I enjoyed this course. As someone with no ML background entering the program with the hope of getting a solid ML foundation it was a nice introduction to ML concepts. I have not yet taken the ML courses with tougher reviews (ML / DL / AI etc), but I suspect this was a nice introduction to those concepts. I feel I have a pretty good understanding of decision trees and linear regression, and surface level understanding of supervised learning in general. It was also cool to learn about RL and Q learning.

I will be getting an A and while I was never stressed about my grade, the course was far more time consuming than I anticipated based on the reviews. Coming out of this course I feel I:

  1. Gained a solid foundational understanding of some key ML concepts. I suspect it is not tremendously deep knowledge but I could sound intelligent in a conversation.
  2. Learned about stock indicators which was interesting but I don't feel will ever give me much value. I definitely plan to keep investing in index funds after this course.
  3. Went from medium to expert python ability.

I thought the course was interesting overall, the con I would say is I feel like the ratio of time I put in to the amount I learned is a bit off kilter. I suppose maybe an additional benefit was getting back into the groove of writing reports, it's not my favorite but I feel probably mentally ready to take ML which I know is very report based.

I would recommend this course to anyone who is in another specialization but wants to dabble in some ML knowledge without going for the more difficult ML courses, or anyone pursuing the ML specialty with no ML background. I also thought it was easy to get an A if you put the time in, but I would not recommend it as a "light load" course.

As an aside I thought the teaching staff was exceptional and clearly passionate on the topics and course delivery.

CS-6460

Educational Technology: Conceptual Foundations

Taken Spring 2023

Reviewed on 5/4/2023

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

I liked this class a lot. There was a lot of research and a lot of freedom. It was interesting to see everyone's projects and how everything came together. The research component was something I loved. I'd recommend the class. The hardness of the class really depends on how complicated of a project you take on. There *is* a lot of initial writing up front.

The TA you get will make or break your experience.

CS-7637

Knowledge-Based Artificial Intelligence: Cognitive Systems

Taken Spring 2023

Reviewed on 5/4/2023

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

Bullshit class with subjectivity up the wazoo. TA's on a power trip. The assignments weren't terrible, but the grading rubric for the RPM reports was atrocious and the TA's were out for blood. Too much writing in this damn class. If it were less about the writing and more time coding that'd make for a better course. Why is it useful to sit and restate the shit I did for everyone else to see? What is this, grade school? I do that at work as do most of us working professionals taking the degree.

CS-6675

Advanced Internet Computing Systems and Applications

Taken Fall 2022

Reviewed on 4/16/2023

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

If you enjoy in knowing the theory behind it with absolutely zero coding, this would be the course. Its a lot of writing. You need to write a 8 pager about a topic literally every alternate week. And the week in between, there's a smaller writeup - check other reviews for the formats.

This is my first course in OMSCS, a perfect intro to the course. Me being from a non-CS background, I enjoyed the course very much. Many topics are new to me and I learned a lot. I'm 15 years in my career, and coding is not my day job, so I'm not particular about a coding class. It gives opportunity to learn the topic, and since you are to write a 8 pager, you are bound to read a lot of articles and in the process learn the topic really well. Actual workload just to know the stuff to finish off the paper would take around 10-15 hrs, but I took the opportunity to go through a lot of material, youtube videos (from other universities like stanford, harward, IIT) and it was very interesting to me.

Again, a lot of writing that you'll be tired if you're not interesting in reading/writing. If you're looking to implement somehting via this course, this is not for you. If you're thinking of gaining knowledge on systems design (for a typical interview), this is not the course for you. This is more like an intro to various diff technologies, so if you are curious to know the underlying working of the tech, then this is for you.

CS-6300

Software Development Process

Taken Spring 2023

Reviewed on 4/14/2023

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

I do not like this course, Assignment 6 was the absolute worst with, most weightage, lack of material being given to understand and complete the assignment. Saying office hours are there to ask questions is not an acceptable excuse for not giving proper material to understand new concepts. I also have the problem with the grading and the TA especially, this Sinh person.

The course is easy if you know JAVA but it is made intentionally difficult and convoluted to reduce grades, etc.