Overall Rating (5 / 5): ★★★★★
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (3.9 / 5):
Workload: 20 hours/week
Had no background in C++/C, took this class and learned a lot. Don't be scared, if you're able to spend a lot of time on this class you will get a world class education not only in exciting systems level languages but also concurrency and parallelism. This class alone makes the whole program worth it imo. Sometimes it would be 50 hours a week, sometimes, 20, sometimes 3. I'm saying 15-20 amortized. Anyway, if you feel like you can pull out all the stops every 2-3 weeks to get one of these monster projects done, do this class. It is one of the few things in life where the hours you put in pay off in dividends in terms of what you learn.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (3.6 / 5): ★★★★☆
Difficulty (1.4 / 5):
Workload: 15 hours/week
Pros:
1. Lots of implementation
2. Fun project at the end
Cons:
1. Homework heavy
2. Code heavy
Detailed Review:
If you are a code machine this is the class for you. Everything in this class is just straight implementation in kotlin. There is no exams but the homeworks do take some time to do so I would start on it early. There is also a final project at the end where you will have to create a video as a demonstration.
Overall Rating (5 / 5): ★★★★★
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (3.9 / 5):
Workload: 20 hours/week
This class took me from 0 knowledge in Deep Learning to being comfortable with reading the latest DL research and implementing models in fun projects where I had to go and collect the training data in a way that would work with the model I had decided to use. It's a great course to really get into the mechanics and what it means to do Deep Learning. Taking this in the summer, however, sucked so bad. If you don't really understand the projects and what's being asked, or if you don't train the model well, then the projects become a huge time suck. However, it's easy look back and see why that happened and then you can learn from your mistakes. Taking this class in the summer alongside with Reinforcement Learning was not good :( I mean RL was a great class, but this course took a lot of time. The compressed summer semester increased the stress to finish the projects on time. In total I needed to take about 6 vacation days from work just to work on these projects. Now I don't even think I'm up for another 2 courses in the Fall. Anyways, this is still a great course and I highly recommend it!
Overall Rating (5 / 5): ★★★★★
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (2.9 / 5):
Workload: 10 hours/week
Great class. The lecturer is decent, but the textbook is very good, and free! The assignments are easily painfully easy or quite frustrating; there were a couple of moments where I hit a roadblock and it was impossible to make any progression without TA help. Midterm and exam were fairly easy; just watch the lectures and make a few notes.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (0.7 / 5):
Workload: 4 hours/week
Pros:
1. Amazing lectures
2. Good coverage of content
3. excellent worksheets to learn material
Cons:
1. Grading system is almost "too" lenient (it almost de-values potential learning via peer grading since some students clearly put in minimal effort)
2. Workload is very light, requires additional external practice to master skills
3. Piazza had mandatory participation and was honestly a cluster
Detailed Review:
Professor is amazing, and the supplied course material is excellent. Highly recommend this course if you're trying to pair together two courses in one semester as the work load is the lightest in the whole program. This course also provides an excellent intro to R for those unfamiliar with it and tidyverse.
Non-project week workload is probably closer to 2-3 hours per week. Project workload also doesn't really ramp up till the second half of the course. At that point I'd recommend adding an additional afternoon for completing the projects (+6-8 hrs that week).
Students were required to make minimum contributions to piazza which led to a lot pointless clutter.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (5 / 5): ★★★★★
Difficulty (3.6 / 5):
Workload: 25 hours/week
Pros:
1. Well designed/written textbook and videos
2. Good TA support
3. Great for someone with a CS background since there is programming involved
Cons:
1. Time-consuming if you decide to work on every problem (including extra HW) and read all the enrichments
2. Workload varies from week-to-week (i.e. not equally distributed)
3. There aren't any other cons I want to cook up because I think this is such a great course!
Detailed Review:
This is the first course I have taken in the MSCS program after having the distance of 18 years from my B.S. in C.S. I looked at my previous transcript from Georgia Tech and noticed that I had only taken courses in Calculus, Prob. / Statistics, and Applied Combinatorics. No previous linear algebra course!
So, the first week 0/1 of this course was incredibly difficult for me. I took the ALAFF pre-test and didn't do so well. So, then I chose to cram a speed-read through the LAFF course only a week before the course started. The first week was hell for me, not having done proofs for so long. If I judged the rest of the course based on that first week, then I would have come to the conclusion that I would not make it to the end.
What unfolded after was "exceptional" to me, which is why I titled this review as such. I found Robert and Maggie to be quite welcoming and encouraging -- almost to the extent that I would say they treat us as extended family. I wasn't expecting this through an online course. The material itself is par excellence and weaves in the work that Robert and Maggie have done over the years professionally as researchers. So, although this is primarily a course on theory, the material is grounded in practicality, which I liked. Unfortunately, Robert and Maggie are retiring, so I don't know what the future will be for this course.
In the end, I worry that other courses won't live up to this one in the program and my hope is that what I learned sticks! Why? Because I put a hell of a lot of time into it. I took this course alone and would say that I spent 20-30 hours any given week to make sure I covered every homework problem, every "Ponder This", read or at least scanned every enrichment, and even worked the extra homework problems at the end. I wanted to be thorough since I judge this class to be so fundamental to many areas of research.
Overall Rating (5 / 5): ★★★★★
Professor Rating (5 / 5): ★★★★★
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (3.6 / 5):
Workload: 12 hours/week
Pros:
1. You will learn a lot. Course spans a range of material, from introductory concepts to advanced.
2. Indispensable skillset that will help you in coding interviews, and as a CS professional more generally.
3. Very reasonable workload, and straightforward exams.
4. Great TA support, including hints for coursework.
Cons:
1. You might need to supplement lectures with external sources.
Detailed Review:
I suggest you take this course. Bottom line is that it makes you a better problem solver/programmer despite not having any coding exercises. I think the past negative reviews are outdated now, the course has most likely been revamped as what they report didn't match my experience at all. For the homeworks you will need to put in more than minimal effort (obviously) and stretch the brain for a few hours each time, but the TAs are there to help with tricky homework parts and comprehension questions. This is inevitable as it is through this process that you become better at Algorithms. The exams were straightforward applications of material covered in class, basically simpler homework exercises which could be solved pretty quickly. The only con imho is that neither lecturer uses examples as a teaching medium. In most cases this is OK but if I hadn't watched a real execution of e.g. the Push Relabel Max Flow algorithm, I wouldn't have grasped the intuition and how it works just from the pseudocode. This is no big deal however, as there is plenty such material online. The two recommended textbooks are both battle-tested and I recommend them as well.
Overall Rating (5 / 5): ★★★★★
Professor Rating (4.3 / 5): ★★★★☆
Lecture Rating (4.3 / 5): ★★★★☆
Difficulty (4.3 / 5):
Workload: 10 hours/week
Pros:
1. Exposure to object oriented programming in python.
2. Challenging projects.
3. Not just learning to do loops and functions.
Cons:
1. Piazza was a slog at the start - lots of people trying to figure out how to set up the environment.
2. Too strict on discussion - weren't able even to discuss quizzes and projects after they were complete.
3. Grading was very slow.
Detailed Review:
This isn't an intro to programming. I'm trying to think of the best way to describe what level you should be and the best I can come up with is: if you don't know what an IDE is, how to use a shell, or what OOP is, then you'll probably struggle in this class. I think a lot of people came in knowing how to use python in a jupyter notebook, and that just wasn't enough.
I was afraid that the course work would be a large amount of simple repetition, but this turned out not to be the case. The projects were challenging without being impossible. I spent a lot of time thinking and figuring out how to get to the solution, within the framework of the abstract classes they provided.
The lectures were good - I liked the student questions gimmick that they had going, I thought it broke up the lectures in a good way. The TA's were also super responsive; there were a lot of them and they held a few TA sessions a day.
If you're in a broadly similar position as me - able to hack a solution together when you really need to - then this course is great for getting an actual foundation in programming. If you already have a background in CS, then this might be on the easy side. If you have no background, or just have only ever used jupyter notebooks, then maybe consider something like an "OOP in python" class or something before you start this.
Overall Rating (5 / 5): ★★★★★
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (3.9 / 5):
Workload: 10 hours/week
I personally really enjoyed this class. The teacher knows exactly what he's talking about and explains things very clearly. I have no background in OS and had to listen to certain parts several times to really get it. But the professor explains things very in basic concepts very well, quite helpful for me. Exams are straightforward short answer. Study the lectures and you will do great on the exams. Projects are more tricky. Not much introduction to xv6 is given before asking you to understand a lot. Google saved my life. There are Medium articles and Youtube videos about small things like adding system calls that were very very helpful.
Overall Rating (5 / 5): ★★★★★
Professor Rating (0 / 5): ☆☆☆☆☆
Lecture Rating (0 / 5): ☆☆☆☆☆
Difficulty (3.9 / 5):
Workload: 19 hours/week
I enjoyed the lectures! Professors are charismatic/engaging. The CUDA lab is the most work, as everyone warns, and definitely a lot of work for each lab, but worthwhile for sure. Rust might be a go-to language for me now :)