Introduction to Graduate Algorithms

3.30 / 5 rating4.05 / 5 difficulty19.11 hrs / week

Quick Facts and Resources

Something missing or incorrect? Tell us more.

Name
Introduction to Graduate Algorithms
Listed As
CS-6515
Credit Hours
3
Available to
CS students
Description
Design and analysis of algorithms on a graduate level, including dynamic programming, divide and conquer, FFT, graph and flow algorithms, RSA, linear programming, and NP-completedness.
Syllabus
Syllabus
  • tv/GKYOiAJhkdJMobFMm2Q==2024-12-10T20:19:48Zfall 2024

    Overall the content of the class is good and I enjoyed it but the way the class is run itself could be improved. Finished with an A with an engineering background and this was my 9th class.

    Staff

    The professor is rarely seen except on a few responses on Ed time to time but the vast majority of the course is run by the various TA. Many people complain about the TA responses which in some cases could be true but the volume of posts in this course is pretty high both on Ed and the amount of activity on the slack channel compared to other courses and I found most of the comments to be sarcastic rather than rude but it can be hard for people to tell on an online forum. Also to be frank many students just don't simply read the instructions -- you can see on any Ed post for an assignment people asking questions that are very clearly explained in the instructions and when you have many posts like this I would probably respond the same way. There was a lot of discourse online that the TA staff needs to be replaced etc. but I don't really see many people lining up to TA this course considering every single mistake by a TA turns into a hate thread on Reddit.

    Homework

    The homework is split up into (written, coding, written+coding). I preferred the written but ending up doing the same on average on all types. The written homeworks are pretty straightforward there are some rules announced in an Ed post for each category (DP, Graphs, NP etc.). The coding assignments created the most amount of problems due either:

    1. Not having sufficient testing available and receiving a low grade afterwards or using banned Python structures
    2. Possibly being flagged for cheating.

    For 1 it can be frustrating thinking the code is working and then receiving 2/20 on gradescope so the only suggestion is to learn how to write a good unit test in Python. The actual code itself is usually pretty straightforward so there is always enough time to test thoroughly I found. There's also a performance element which can be pretty strict so time spent optimizing is good and also looking on Ed where people sometimes post Gradescope runtimes. The class provides wrapper classed for Python data structures like lists etc. probably for the performance case. I really don't see the point of this because other courses like HPC measured performance without enforcing these kinds of requirements. Just be careful to follow the instructions to avoid penalties.

    For 2 there were a lot of threads on Reddit/Slack about people being unfairly accused of cheating. There were 12? or so cases of this being true and being overturned in OSI. This is a pretty difficult topic to fix on both sides and I think the problematic assignment which there was just 1 should just be removed or re-worked. I recommend against joining a study group to avoid accidentally copying each others work but it can also be beneficial.

    Quizzes

    • The logistics quizzes are free points
    • 2 attempts per quiz with some showing the answers (format) and some hiding the answer (content). The format quizzes are free points just read them slowly. The content quizzes are harder but also not unfair.
    • Some advice is to do them near the due date. They are untimed so open the first attempt while watching the lecture and fill it in as you go. I found this way to actually make me stay focused on the lecture. Also read the Ed post for each quiz as TA/people may say something that can clarify a tricky question.

    Exams

    • The written portion follows a pretty good pattern. 1 written question is literally a homework question with a slight change. 1 written question will most likely be related to a textbook problem from the assigned problems. For these problems I found the best strategy is to study both the HW and the textbook problems over and over again. Do some other problems but make sure you can fully understand these problems.
    • The multiple choice are pretty fair. You need to read them carefully but they don't really try to trick you that much. For multiple selection only guess what you are 100% sure on.

    Rating: 4 / 5Difficulty: 5 / 5Workload: 15 hours / week

  • RuW3kVPIXMNseTxU8DcUoQ==2024-12-10T11:02:54Zfall 2024

    I thought this class was fine and the constant criticism was overblown, though not totally wrong. I don't have a CS background and I got an A.

    This was the stressiest class I took in OMSCS. It really should be more available earlier in the programme. The biggest stress was that you never entirely felt like you knew what they were looking for. Grading is done by taking points off for mistakes, rather than by giving credit for getting things right.

    However, that feeling got easier as the semester went on. If you watch the office hours, and pay attention to the model solutions and feedback threads, you see that what you need to do is more straightforward than you initially think. Complex solutions are a sign that you're going down the wrong path. I tanked the first homework, and didn't do amazing on some homework or quizzes, but it's really the exams that matter.

    I didn't do any of the practice questions or have a study group, but I did take the time to understand why and how I got things wrong. Office hours are particularly helpful because they give a chance to see the patterns in the problems they present. They're all looking for something. And to be honest, the exams were slightly easier than the homework. There are also some topics that will only come up in multiple choice questions and you can assess where you want to put your study efforts.

    The first two thirds of the course are about finding algorithms to solve problems, where efficiency matters. It starts with dynamic programming, which was the hardest to get your head around. Graphs were generally a bit more straightforward. The final third is about reductions and using one problem to prove to the hardness of another problem.

    Don't think of this is a leetcode class. It really isn't. It's a proofs class. They want to see logical arguments and being pedantic pays off. You can't just assert things, you have to say why they're true given the details of your solution.

    Rating: 3 / 5Difficulty: 3 / 5Workload: 12 hours / week

  • sLaWhsPRieq/5Ge4vSSc7w==2024-12-10T03:37:24Zfall 2024

    The overall course material is good, and there is genuine effort from the instruction staff to help students learn. This was my first experience with GA (non CS undergrad), and found every week challenging. There is an assignment due every week, and 3 exams overall. The worst part of this course, and which stops me from wanting to take it again, is the way evaluation is done on assignments and exams. Unless you match the exact approach used by the TA's, the chances of getting marks is very slim. Though they do say that anything that works is good with them, I have felt the evaluation becomes very harsh as soon a you deviate from the expectation.

    Since most of the assignment/exam is written problems/derivations, there is always a possibility of an error or typo for which you will be punished. One take away is to stick to the problems in HW and practice problems. Exams will have similar problems with a slight twist. Joves goes over other very challenging problems, which was never asked during the exam.

    Unlike other courses I have done in this program, nothing is definite. You will only know your marks, once you get it and will keep you in a state of constant anxiety.

    Overall I learned a lot from this course, will offer no shortcuts to genuine hard work. I was lucky enough to clear it in first attempt, but it was a close one !

    Rating: 3 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • xO0j62hv5u6kNyLgUFuw5w==2024-12-09T23:53:39Zfall 2024

    TL;DR: The content of this course was fascinating. It is ultimately marred by bullshit grading and constant drama on Reddit due to the course staff and some angry folks, but it's fascinating nonetheless.

    The Good: The course staff (the heads, anyway) make a good attempt at teaching the material live (via office hours) as well as holding Office Hours for exam prep. I want to shout out Joves for going the extra mile and willing to accommodate students -- his name was drug through the mud this semester, which is unfortunate, but this shouldn't cause us to ignore the effort he puts into his office hours.

    The Bad: Too much of the weight is on the exams, and the exams are held in a setting that is quite frankly unrealistic for aspiring computer scientists who set out to develop algorithms. In the real world, not the fantasy contrived nonsensical world of GA, you'd be able to reference material about prior algorithms and black boxes in your work. If you don't feel you can assess the understanding of a student in a way that isn't draconian, write better questions and tests. It is ultimately reflective of the course staff if they resort to "enhanced Gradelock measures" that go well beyond the measures that an already privacy-invasive proctoring setup does.

    The Ugly: A good chunk of this course is describing your algorithms in detail -- not coding (although those caused some heartburn for other souls who had to take the course.) Of course, this means that human TAs will have to interpret your algorithm implementations come grade time. And more often than not, the TAs will err on the side of only accepting algorithm solutions that match the model solution to a T, which is unfortunate. While I understand why (there are only so many TAs compared to the mountainous amount of homework to grade) I do not think this is a positive model for learning to say the least. Given this experience, it's laudable that the course staff complains on Slack about how being TAs for this course is an unappreciated and thankless job. If nobody is thanking you for the job you do and that is how you feel, maybe there is a root cause?

    Rating: 2 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • XD/oW6fEzRWbZM6AQpKFNw==2024-12-09T21:54:58Zfall 2024

    Introduction to Graduate Algorithms is a tough but incredibly rewarding course. To do well, you really need to prepare thoroughly and go deep into the concepts of algorithms. This isn't a course where surface-level understanding will cut it—spending time on dynamic programming, graph algorithms, divide-and-conquer strategies, and especially NP-completeness proofs is crucial. The NP-proof section, in particular, can be challenging, but it’s also one of the most intellectually satisfying parts of the class if you put in the effort to understand it. Office hours are a lifesaver, and I highly recommend attending them regularly. The instructional team provides valuable insights that can help clarify tricky concepts or homework problems. Even if you feel like you’re doing okay, going to office hours can give you a deeper understanding and sometimes even tips that aren’t obvious from the lectures or materials. Homework is another key part of the course. While not every problem is graded, it’s important to work through all of them and then review the evaluation threads where other students share their approaches. Seeing how others tackle problems can give you new perspectives and help solidify your understanding. If you think your homework or exam was graded unfairly, don’t hesitate to ask for a regrade. I found that as long as I articulated my reasoning clearly, my regrades were always justly awarded. The workload is heavy—it’s not uncommon to spend 15–20 hours a week on this course between homework, reviewing materials, and preparing for exams. But the effort is worth it because you come out with a much stronger grasp of algorithms and problem-solving skills. It’s definitely a challenging experience, but if you stay consistent and use all the resources available to you, it’s manageable and very rewarding in the end.

    Rating: 4 / 5Difficulty: 5 / 5Workload: 15 hours / week

  • KbSHBUPvkycTfVvkOrxq9g==2024-12-08T18:56:20Zfall 2024

    Conceptually, I wouldn't say the material is easy, but it's also not that difficult if some time is put in. It had been a while since I took an algorithms class and I definitely learned quite a bit in this class.

    That said, there are some serious, class-breaking flaws in how grading works. Primarily, the TAs stress that the order of importance for the HWs/Exams when developing an algorithm are 1. Correctness 2. Efficiency/Speed. Makes complete sense, but unfortunately, this is not how grading works. For future students - you are given a collection of black-box algorithms that are fair game to use for a HW or Exam problem - and you MUST find the most efficient of those if you want to get anywhere near a passing grade. If you pick a black-box algorithm that solves the problem and you design an overall algorithm with it, even though it is correct, they won't even grade or provide feedback - it's just an automatic 4 out 20 points for the problem even though the algorithm you designed is correct. This creates a ton of stress, especially on the Exams when time is in short supply to evaluate black-boxes. Getting a 4 out of 20 on a HW is recoverable. Getting a 4 out of 20 on an exam is a back breaker. Again, you MUST find the solution the Instructor/TAs want for the problem...not just a correct solution.

    Oh, and they removed the optional final this semester that replaces a low exam score in case you make a simple chose-the-wrong-black-box error. They say the data doesn't reflect any difference in outcomes...that's total BS. There are numerous students this semester that would have passed if the optional final was still available.

    Rating: 1 / 5Difficulty: 4 / 5Workload: 18 hours / week

  • /AO2b9uFNEUxLlYJ/EqCfQ==2024-12-08T00:28:55Zfall 2024

    tldr: this is a somewhat difficult class but not that hard if you come from an analytical background and put some effort into studying. The grading can be pretty unforgiving so be careful. I thought the material was interesting. TA's can be short with people but are mostly helpful.

    I come from a statistics background with a few years experience as a data scientist. Imo the material was challenging but not insane. Watch the lectures, take notes etc. and you will be fine. I can imagine if you are coming from a completely non-cs/non-analytical background it could be very difficult. The material is pretty interesting if you are into very clever things people have done with algorithms and has a lot of satisfying ah-hah moments.

    There are some complaints about the grading and I can confirm it is often pretty harsh. E.g. a single typo can knock 40% of your grade off of a homework (or worse, on a section of one of the exams). If you think they will give you the benefit of the doubt, think again. On some level I understand this, it is an algorithms class part of which includes being very careful about defining how things work and catching corner cases. Finish the homeworks early (imo they were not that difficult) and double check your work before the deadline. The exams did not throw massive curveballs at us, put effort into understanding the homeworks/lectures and you will have a good shot on the tests.

    Drama with the TA's is I think somewhat warranted. If you consider that they have to answer questions from thousands of students, grade (and REGRADE) their homeworks/exams, explain to them that no they are not changing the rules for them etc., then it may be easier to understand why they might be a bit short in their interactions. Could they also put some more effort into making their responses a bit more bubbly? Maybe. Or maybe this just invites students to continue to argue losing/unreasonable positions, I dunno. I had no experience with any of the OSI stuff so can't speak to that.

    Rating: 4 / 5Difficulty: 3 / 5Workload: 8 hours / week

  • TGQXTlmX1ZqBYjLy6i626g==2024-12-07T20:46:35Zfall 2024

    Get a nice study group or be hella intelligent to afford to lose marks on the assignments. Learning from other's mistakes has been a crucial part of me at least getting a passing percentage.

    Check out EdStem constantly for advice, try to connect with different students for help, and attend the study hours no matter how cranky Rocko might be. It is a good revision. Do not poke the bear.

    The best part of the course is the help from Aja, Emily, Joves, Tim, Christian and David. Some of their efforts go unnoticed but I can see that they truly care for us. Their posts and comments on EdStem have been helpful so far.

    Beware of Jamie, he is a double-edged sword. He helped me get through the first assignment but was a sarcastic prick on the rest of them. Try to overlook the remarks he makes and focus on the few times he has generously helped. I guess when you have so many helpful TAs, one or two of them get frustrated and vent out their frustration on us.

    I used to get overwhelmed and scared by how some students used to answer questions. You will be compelled to compare yourself and develop an inferiority complex. I have developed one but it is slowly going away after working hard. I am still not as smart as them. Some of them are helpful enough to share practice problem solutions and give advice. Learn from them, take their advice, look at their strategy, game the system, and work twice as hard.

    This might not guarantee you a B but it has been working out for me. If I don't pass the course, it is still fine, It has instilled some confidence in me to solve problems.

    I have been able to solve the assignments on my own after putting in 10-15 hrs a week on it apart from the extra 5-10 hrs I spend on learning the material. I am not the best but hard work helps.

    Rating: 3 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • QaHiGrgd+Pjfq59R17SqTA==2024-12-07T13:07:57Zfall 2024

    Got a 68%, so C in Summer 2024. I was really frustrated.

    Then I realised how tame the exams in Fall 2024 are. Got 90+% this time around while coasting and reading Ed posts. Gonna activate my grade substitution so that I can get a 4.0 GPA.

    Ignore Slack and Reddit drama. Many of them are just self-pwns. Just focus on yourself and only on yourself.

    Thank you for making this exam incredibly easy for everyone.

    Rating: 1 / 5Difficulty: 1 / 5Workload: 6 hours / week

  • bGMsiYUbTvuCh+jf02bt7w==2024-12-07T12:49:32Zfall 2024

    I've gotten an A in this course, scoring 89.9%: the cutoff for an A is 85%.

    I thought the material was interesting and useful and the lectures and book were great. The TAs were professional and showed none of the snarkiness that has been reported in the past. Most of the homework was not too difficult: my homework average was 98.5%.

    The main difficulty of the course is in its structure of having 72% of the grade determined by quizzes and exams. This poorly reflects the way in which students will be called upon to use the material in their careers and so exams and quizzes are poor pedagogical instruments.

    The TAs are also somewhat poor at writing exam and quiz questions, often excluding important assumptions, or varying from definitions provided in the book and lectures. Some other questions have the character of an IQ test and so don't gauge learning as much as intelligence: does the student have the capacity to think through some novel complex relationship? Despite the fact that there are regularly a 1000 people in the class so that there is ample opportunity to do trial runs of many questions, the TAs seem not to do this, but instead distribute brand new, unvetted and often poorly written questions leading to significant controversy. The poorly written exams and the fact that exams form the majority of the grade contributes to a high degree of grade randomness creating a high stress environment that is very unpleasant and sometimes overtly harmful to the students.

    The randomness of the exam outcomes leads many students to try to reduce randomness by studying for each exam for several days, many students taking days off work. I took an entire week off to study for the last exam. This worked for me this time: I scored way above the upper quartile. However, for many students, massive study does not seem to reduce the randomness of exam outcomes. Again, this contributes to an immensely high stress course that most students justifiably loath.

    Rating: 2 / 5Difficulty: 5 / 5Workload: 25 hours / week

  • Hwb1l3h3QDyr4faWANAkBA==2024-12-06T18:04:33Zfall 2024

    Finished this class on my first attempt, with a 88.26% which is an A. (You need an 85% to make an A in this class). Graduating from OMSCS, ML Track in Fall 2024!

    This class is no doubt the toughest class in the ML track. I wanted to distill the steps I took to make an A in this class, despite its difficulty level.

    1. Go through all the lectures and make your own notes, writing every word down to the T. This helped me solidify the concepts and helped a ton with revisions.

    2. For the coding homeworks, make sure you test your algorithm by generating randomized test cases which have been verified by your offline brute force solution. For example, if your algorithm uses a O(n) solution, write out the brute force solution also which may be O(n^2). Generate randomized test cases and get their answers from the brute force solution. Use these test cases to test your algorithm. This is important because gradescope does not provide all the test cases, when you submit your solution.

    3. For exam preparations, practice ALL the provided "practice problems" (solutions to these are provided in class) AND the "suggested problems" (you are expected to work on these with your peers for exam prep. Solutions will not be provided). Practice all the homework and quiz problems too. No need to do problems outside of these. Just do these over and over again.

    4. Attend all the weekly office hours!

    5. Attend all the 3 exam prep office hours. A lot of hints on how to solve the suggested problems can be obtained from these. These were a life saver!

    6. Make sure you stick to the suggested format of the theoretical questions! This is very important. There are 3 exams. Each will have 2 free form questions and 1 set of multiple choice questions. The format of the solution of the free form questions need to conform with the rules provided in class.

    7. Homeworks are 25%, Quizzes are 12%, Logistics quizzes are 3% and Exams are 60% (3 exams, so 20% each). There are 10 homeworks, it won't hurt you too much if you do poorly on 2-3 homeworks. Exam screw ups hurt a lot. So make sure, that you internalize the lessons you learn from homeworks and not repeat them in exams.

    8. A lot of people have bad-mouthed the TAs, but the TAs are actually very knowledgeable. People are frustrated by the difficulty level of the class and the harsh grading. If you stick to the rules, you will be fine. They have regrade requests which I have found to be quite reasonable.

    9. Be prepared to put in 25-30 hours per week. I'd advise against taking another class in the same semester when you take GA. I personally took Global Enterpreneurship in the same semester. Along with a full time job and a part time e-commerce arbitrage business, it was too much. I had to put one thing on the back-burner so wound down my ecommerce business to focus on GA. So give GA the time it deserves.

    10. Overall, this class needs a mindset shift to be successful in. If you choose to sit around complaining about the harsh grading, you will not succeed. Your mindset should be : test the F out of homework codes, follow format rules for the free form exam questions, internalize the practice problems + suggested problems + homework problems + quizzes, and crush the exams! You can do this!

    Rating: 5 / 5Difficulty: 5 / 5Workload: 25 hours / week

  • dkGbJ/23fOo1dX+pe6J8Qg==2024-12-06T16:34:48Zfall 2024

    Coming from an Engineering background, I lacked some prerequisites but found the material manageable. I actually quite enjoyed this class, but I had to be resourceful to really learn the material. The lecture materials are poor, and much of the difficulty feels manmade, and most of the TAs are aids combined with cancer. However, considering how cheap this program is there is no real reason to complain. It is important to just be resourceful.

    To do well on exams, keep your answers concise. Writing less reduces opportunities for point deductions, which is often how the rubrics are structured.

    In terms of resources, I definitely think George's Notes were very helpful, as well as some other texts such as Tim RoughGarden's Algorithms Illuminated. These really helped me solidify concepts for Exams 1 and 3.

    Rating: 3 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • xgSCz+dIfejoD8mJ5gT+GQ==2024-12-05T14:47:48Zfall 2024

    I'd like to show some love to the TAs and the course itself.

    I personally think it is a good course. I learned exactly as what I was expecting for a introduction level graduate course. On the contrary to many, I think the instruction for assignments/exams is pretty clear and easy to follow. TAs did a great job hosting office hours, explaining concepts, and providing supplementary materials. Rocko and Joves office hours are extremely helpful!

    Homework/exams are not too hard - Although it covers lot of topics but it does not go very deep on every each of them. Getting a B is pretty easy if the instructions are followed, office hours are attended and all homework as well as feedbacks are fully understood.

    Yes its demanding and I barely feel any break throughout the semester since every week there was something to due and learn. But it's not too bad compared to other courses that have much more workload (like AI/ML). I spent 10-15 hours for homework weeks and 20-25 hours on Exam weeks. I can easily cut off another 5 hours per week if I just aim for a B.

    I gave it a 4 only because some students were falsely accused of academia violation on HW4 (which later turned out to be not guilty) - I feel bad for them. That's must be frustrating.

    Overall it is not as bad/scary.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 17 hours / week

  • v9NUIlfgPsIu3SbY1R9d3A==2024-11-16T03:40:10Zsummer 2024

    P.S. I took this course in Fall 2024, but as of the moment I'm writing this review there is no option for Fall 2024

    I will start this review by saying that I am not a student who is a slacker, does not like to study, is irresponsible and does not take accountability for his results in a course. I was a head TA for my alma mater's DS & Algorithms course at one point in my undergrad studies for 3 years until I graduated. I am a CSE major and I took courses like Undergrad Algorithms, Automata & Complexity Theory, Discrete Mathematics, Probability & Statistics for Engineers, as well as Linear Algebra & Differential Equations. I have more than the background that is recommended to take this course and I got A's in ALL of these courses in undergrad.

    This course is run by so many incompetent people it's insane the this course needs to be a core course in almost every OMSCS specialization except for HCI and II. The course horror stories are true, it's a horrible course to pass, but it's not because of the course content. The course content is relatively similar to a mix of most of the courses I mentioned in the former paragraph. The reason why this course is so unbelievably horrible is because of three things:

    1. The insane amount of fear the TA's have for academic dishonesty: This makes every single evaluation a pain in the ass to even attempt. Exams have so many proctoring requirements that they are a chore to even set up (cover/flip all monitors except one, wrist scan, show laptop screen with mirror, show all sheets of paper, no one can be seen behind you, among many other ridiculous things they ask). Homeworks & Quizzes have so many retarded collaboration policies that to some degree they don't even make sense (e.g. not sharing any test cases nor discussing any with other classmates). They claim it is so that you learn more but that's bullshit. You DON'T, period. You also got TA's going crazy that they mass report students to OSI for no reason and with ZERO evidence. You should NEVER do something like that unless you have FULL proof of a student that is actually cheating. Anyways, at the end of the day those who cheat are shooting themselves in the foot.

    2. The sacrilegious grading of homework and quizzes: This is something that pisses me off on so many levels because the grading in cutthroat, subjective and opinionative to a level that I've NEVER seen. It's one of those things that you have to basically BEG for points in regrade attempts because they make it impossible to give you points on a regrade (they ask for you to post on Ed for feedback first but in reality it's to refute everything with some dumbass logic that doesn't even make any sense. If the feedback "merits" a regrade according to them it is submitted for regrade and it's not even a guarantee). The subjectivity of each TA is horrible, they take the wording if your answer however the fuck they want to take it and they get pissed off if you refute it, cuz YOU are wrong, they are NEVER wrong.

    3. The no-show act from Dr. Brito from this course entirely, as well as the arrogance and prepotence from the TA staff towards their students: I think this one is self explanatory as it's written. The professor is a complete no-show other than the first OH given in the start of the semester. Other than that, it's Rocko giving the weekly OH by himself basically, Joves giving the pre-exam OH, and the TA's answering nearly everything on Ed. And here is my main issue, the way they conduct these 3 things are so bad it's unbearable to even watch/read. You got TA's (I'm talking to you Jaime) that straight up mock, joke and ridicule students for not understanding something. There are other TA's that go on rampages of OSI reports (HW4 fiasco, go read about it on Reddit) with ZERO evidence that they cheated and they take an arrogant, thick-minded and stubborn postures towards this. There are others that, as stated before, will die on the hill that they're cutthroat grading is the only source of truth and will not even bother to try and understand you. There are others that are not even present at all. The common factor is that there is not a SINGLE TA that is willing to help out students, as well as teach them in a professional and positive manner. The main issue here is not them though, it's the fact that THIS COURSE SHOUL NOT BE TAUGHT NOR RUN EXCLUSIVELY BY TA's. Dr. Brito CANNOT allow this to happen or this course will continue to be the horrible mess it already is.

    Overall, if you are in any of the specs that needs this course, just prepare well to the format they force you to take this course in. The idea is to survive their gauntlet. The learning is little to none because how this course is ran, so I wish everyone the best of luck in their future endeavors with this course, you will need it.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • QaHiGrgd+Pjfq59R17SqTA==2024-11-10T22:48:37Zsummer 2024

    There's something sus about Prof Brito...

    Why is he putting up posters on a student who's well known in OMSCS Slack that holds extreme views on Israel?

    I think it's best for him to avoid such actions that could cause disrepute to GaTech, especially when he's got the effective power to deny student graduation since CS 6515 is required on most specs.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • cM6IxUjgv7FL6H8HbxeMZw==2024-11-08T04:58:35Zsummer 2024

    Ovoid at all cost. Such a bs course.

    Rating: 1 / 5Difficulty: 4 / 5Workload: 25 hours / week

  • 4kluWNzA+TUcEksL17C2JA==2024-11-05T19:55:02Zspring 2024

    Having taken classes like RL, DL, HDDA, NLP etc this class was certainly my least favorite and an unfortunate way to end the program. I came into the class really not wanting to believe the bad press it had but now that I'm almost done with the course (with likely an A) I can understand alot of the frustration with the course. The most ridiculous thing to happen were the multiple instances where quizzes had questions with either no correct multiple choice answer or did not give the student enough information to derive an answer. And when the staff was presented with multiple students asking if said questions were actually answerable some of the TAs replied with "there is a correct answer" only to later retract said statements when the questions were shown to indeed not be well formed. This indicates that the staff didn't even review the quizzes before giving them to students which is pretty unacceptable. I will say however that the reduction in the weight of exams and removal of the final was a good choice. Aja and Emily were great TAs along with Rocko, Joves and Jamie. I think the class will improve in the coming semesters, I'm just glad I'm almost done with it.

    Rating: 3 / 5Difficulty: 5 / 5Workload: 13 hours / week

  • Thq7rk1t5/+A7LMbsU3vHg==2024-10-22T16:36:17Zfall 2023

    This course is probably the worst class I have taken throughout my undergrad + grad at GT. The grading is extremely pedantic and does not actually help with the comprehension of class material. Although some TAs are very helpful and considerate, there are others that are rude, entitled, and extremely inconsiderate to the students. Whenever there is an opportunity to be reasonable towards students, they find a way to make unreasonable demands. For example, taking points off of a final exam score for incorrectly showing the surroundings for an exam is ridiculous, this merely warrants a notification. Another example is extremely vague language in the instructions of homeworks that upon asking for clarification, no additional information is provided. Inevitably, many students will fail to live up to their extremely pedantic and pointlessly exact grading requirements which leads to low scores and a general sense of frustration in the class. The grading is also not properly explained often times, with inconsistencies being present from student to student in how assignments are graded. Potentially, the worst thing about this course is that the course staff hides their laziness by making unreasonable demands from students. I have been in classes where course staff laziness is met with leniency (at least) when submitting assignments, but this is not the case here. To hide their own inability to properly create the right incentive structure in the class (by creating pedantic assignments, taking off points for things outside the exam content, banning certain exam review content, grading inconsistently), they make pointless rules and regulations that dock points for seemingly no reason and force you to ride it out in hopes of completing a degree. This course should and needs to be changed in order to give students a proper educational experience for this extremely fundamental course in completion of a Master's degree.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 12 hours / week

  • VgBZ5q2cK2PdyQCErWPMmA==2024-10-14T03:12:50Zsummer 2024

    Yes, half people got less than B which means fail. Contents are easy (TBH even covered less than ordinary graduate algo would), the difficulties are man-made:

    TAs have plenty of proprietary rules to grade. yes in quizzes there are questions like "Which of the following gets the highest grade in this course?" though all answers are correct.

    Yeah I'm in this fall again and it's even more legendary. People got OSI due to knowing the solution for a problem in the summer, which they reused for this Fall. Hope this gets "standardized" soon...maybe by fully MCQ( https://www.reddit.com/r/OMSCS/comments/1fuijex/why_6515_ga_assignments_are_not_mostly_composed/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button

    Rating: 1 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • dLcW+Gd8NYobOQsgrbFgZg==2024-10-10T22:15:10Zsummer 2024

    This was probably the hardest class I took in OMSCS (this was my ninth class). What another reviewer wrote about Jamie (he only posts memes taunting students asking for help) is sort of true. There were a couple of other things that made me think the TAs were not up to teaching this class. This was definitely the most stress I went through in any OMSCS class (needed a B to graduate).

    Don't listen to the people claiming that tons of people have to retake it. It's true that some people retake it, but your odds of getting an A or a B on your first try are about the same as any other class (I made a Monte Carlo simulation based on that publicly available Lite data demonstrating this). Also, it's true that many students just do not grasp the material, so they complain too much unjustifiably. You can tell many people have no idea what is going on by reading the regrade threads.

    The grading on homeworks was far harder than the grading for the tests, IME, but that may have only seemed to be the case because I learned from my mistakes on the homeworks and applied them to the tests. Anyway I did much better on tests than on homeworks.

    This was my ninth class and until my grades stabilized and I knew I was going to get an A or a B I wondered whether I would continue with the program and try again or just quit. I'm 37 years old and I don't really need this degree. It was kind of depressing. Luckily I got the B.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • 0w+Llg76gamuEtxFQAS/Gg==2024-10-05T18:38:30Zsummer 2024

    I come from a mechanical engineering background so this was my first algorithms course. I'm of average intellect at best and finished with over 96%.

    Struggle through the homeworks trying to figure them out yourself rather than looking online and you'll be fine, both in the sense of learning and avoiding cheating.

    I suspect the whining about this course is from those who never learned to solve problems from first principles and instead use Google/llms at the first feeling of adversity.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • z6RtzfxHcCnFa5KMd920Ag==2024-10-01T18:40:12Zfall 2023

    This is one of the worst courses I have taken. Grading is not clear, Instructions are just scattered everywhere through Ed. TAs are unhelpful and not skilled enough to teach such an important for graduation course. Also there's basically no option but to pass it in most of the specializations and by passing I mean more than a B since it's a core subject. I am repeating it for the third time just because it's the only blocker between me and graduation. MOST AWEFUL EXPERIENCE!

    Rating: 1 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • fqEC+EKjdsF3KG0KXcy/2Q==2024-09-29T18:40:36Zspring 2024

    If you're considering Georgia Tech's OMSCS program, specifically CS 6515 (Graduate Algorithms), take a moment to rethink. Despite the material not being inherently difficult, the course's structure, grading, and teaching staff create a frustrating and toxic learning environment.

    The teaching assistants (TAs) are, to put it bluntly, unhelpful. Many of them seem to lack the competency or willingness to guide students effectively. Communication is poor, feedback is delayed, and the overall support system feels like it’s set up to watch students struggle rather than succeed. Jamie R. McPeek, in particular, has been a negative presence. This individual should not be allowed on any teaching staff due to their contributions to the toxic culture of the course. Instead of fostering a collaborative and supportive space, they and the rest of the team seem to exacerbate stress and confusion.

    One of the most infuriating aspects is the lack of an autograder for immediate feedback, especially considering that nearly every other course in the program offers this. You’re left in the dark after submitting assignments, forced to wait until grades come back – which often feels arbitrary and inconsistent. It's astonishing that a program that prides itself on tech innovation can't implement something so basic for such a crucial course.

    Another glaring issue: the course is structured so that most students take it as one of their final courses. By this point, you’ve likely invested a significant amount of time and money into the program, which leaves you feeling trapped. It plays into the sunk cost fallacy, making students feel like they have to see it through despite the frustrations. Many end up taking the course multiple times – a setup that feels like a cash grab rather than a genuine educational experience.

    For prospective students, if you're eyeing OMSCS, I'd strongly recommend looking into the Interactive Intelligence specialization. It allows you to bypass this course entirely, preserving both your sanity and your wallet.

    In summary, CS 6515 is a masterclass in poor management and toxic educational environments. I cannot, in good conscience, recommend this course or any class associated with these professors and TAs. Proceed with caution.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 15 hours / week

  • OCFIzxthJxP6v2FNM4k2vQ==2024-09-26T04:52:47Zsummer 2024

    This course adds too much unnecessary pressure to students – for example, the staff told us that the grade has been released, but we may still be charged some penalty. When will we know? Within the next a few days. The cutting throat feeling just does not make sense, especially during the exam period. Not to mention the course workload is challenging itself.

    The Ed Discussion is like a battlefield every day and I can't avoid reading these intense messages because of the coursework, which has really a negative impact on my mental health. I really want to help my peer students or seek help on my own regarding the course topics, but my posts are just that easy to be deleted, judged as plagiarism or receive no responses. I feel helpless. My family starts to worry about me and suggests me to pause, so be it.

    If you must take this course to graduate, I strongly advise you to hold off until the last one, as it will affect your confidence for the remainder of the program – like what I am experiencing now, despite I have an A in my current grade and done all the coursework as suggested – I still feel that I have been subjected to a lot of unnecessary stress that has caused me problems in my life. Not worth it. Please, please improve this course. We are here to learn and not to be bullied or tricked. Some memes are just not funny but rude.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • rh2jpC5aK05qOGhRKUqa3A==2024-09-24T16:54:33Zsummer 2024

    This is one of the best examples of a course that's intentionally made more difficult than its supposed to be through grading and expectations sent through 10,000 chicken scratch ed discussion posts. You have to read all 10,000 after work and keep track of everything. Everything, from the condescending TAs to the unrealistic expectations makes this one of the poorly designed mandatory courses.

    Using the world class Graduate Algorithms grading to rate this scores as below:

    PROFESSIONALISM: 5/20 (5 being for the few that actually help) COURSE MATERIAL: 2/20 (2 for linking ed discussion threads, everything else is an incoherent chicken stratch for notes) GRADING: 10/20 (-10 for expecting answers matching model solutions through a discussion amongst TAs rather than defined answers from a verified source) OVERALL: 5/20 (Rounded down to match the gold standard rating) PASS/FAIL: FAIL

    We recommend retrying with 1 million attempts at syllabus changes but the grading standards will not change. For a student they can expect similar scores as above in exams and HWs.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • qe9J9yTwZwnGmriFvM46Bg==2024-09-17T19:43:30Zsummer 2024

    I feel like the TAs try to trick students and bully those who are in the CS track, there is the hundred way incentive student learn Algorithm, but they choose that toughest approach. You have to guess the purpose of the homework or quiz because it's not about helping students understand algorithms.

    Rating: 2 / 5Difficulty: 5 / 5Workload: 25 hours / week

  • dkGbJ/23fOo1dX+pe6J8Qg==2024-09-15T17:48:23Zspring 2024

    Class isn't difficult, but the way it is taught and the TA's who are head of instruction are honestly what make this class painful. However, i do understand given the size of this course there is no other way to handle it, but I do wish the TA's were a bit more professional. From my experiences in undergrad, I've honestly never had such a poor experience before, but I guess you get what you pay for out of this program

    Rating: 1 / 5Difficulty: 3 / 5Workload: 12 hours / week

  • DRhNRbP80f8K8JAh8aMKfQ==2024-08-23T19:26:08Zsummer 2024

    Sell your soul. Realize GT is one of top universities. Its not easy yes bear the crown.

    USE AI to help you study. if you don't really have time to study that much.

    this is not just leetcode easy or medium problem you saw from tech interview. nor IQ test from some startup companies.

    For exam. you have to absorb everything from lecture. your thought process have to be same with what lecture says to write solution.

    the reason why exam problems are confusing is. they want to keep it in black box. like unknown coding test problem.

    but still hard to believe since omscs program is designed for full time worker.

    Happy to pass this class. just wanna take a rest for years

    Rating: 4 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • vjTAghAYVf8qQ3jSGLg+fA==2024-08-20T13:19:43Zspring 2024

    I don't recommend this course, the grading is too strict & inconsistent. Solutions are not gone through properly & fully, do post more post-homework/exam solutions so that students can learn better

    Some exam questions were poorly worded causing confusion, and it's such a big percentage of the grade as well

    Rating: 1 / 5Difficulty: 1 / 5Workload: 20 hours / week

  • QaHiGrgd+Pjfq59R17SqTA==2024-08-19T06:57:42Zsummer 2024

    I would gladly take it, but I would consider not taking it if I knew Jamie was going to be a TA.

    That would be a personal attack too like how you critiqued another reviewer on Brito's heritage.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 40 hours / week

  • kcvYBtHvCTn3hwUoaXi/Fw==2024-08-17T16:32:31Zsummer 2024

    First, I want to address the reviews that mention Dr. Brito's heritage/nationality. That's bullshit, irrelevant, and undermines the rest of your review.

    There are very real things to criticize him for, like lack of involvement in Ed discussion, even when prompted by the TAs.

    I don't like the pacing of the course. Assignments were released one at a time every week, so it was impossible to get ahead of schedule in the class if you needed that kind of flexibility. I didn't need that this semester, but at other times it would have been frustrating.

    Jamie McPeek needs to stop being a TA. I can't remember a single time where one of his answers actually provided useful information. It was mostly memes and taunting of students that missed something while reading a course post or syllabus. The rest of the TAs were quite professional and helpful. If I knew they were TAs on another course I would gladly take it, but I would consider not taking it if I knew Jamie was going to be a TA.

    The grading was inconsistent and sometimes overly harsh. My homework scores barely seemed to correlate to my test scores, and all of my scores varied greatly. I got 100% on a test in one section and then about 65% on another section, and I don't think my understanding of the material was that different between the two sections. As further proof of the inconsistent grading, there are posts for every assignment where students are expected to discuss whether deductions on their assignments were valid, or if they should request the TAs try to grade them again. I passed this class on the first try -- I can't imagine the frustration of having to take it twice, knowing it was probably due to who graded your homework and how much coffee they had on the morning they graded it.

    A lot of students complain about the writing, but I don't think that's the problem with this class. The homeworks are basically writing proofs for some approach to solve a problem, which is different from the coding assignments we have in a lot of other classes, but fundamentally just as important for a computer science education.

    In summary, the material for this class is really fun, but the inconsistent grading and unprofessional behavior from one of the TAs make it much more stressful than it should be. It's good for Georgia Tech that it's the last class, because if it were the first, a lot of students would get a degree elsewhere.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 20 hours / week

  • QaHiGrgd+Pjfq59R17SqTA==2024-08-17T00:21:28Zsummer 2024

    If you don't really worry about the difference between an A and a B, because of how strict Dr. Communist Brito is about grades (12.2% A is a joke on this class, seriously), you will enjoy this class.

    If you're thinking only about A (which you shouldn't), this class will be a massive clusterf**k.

    Rating: 4 / 5Difficulty: 5 / 5Workload: 36 hours / week

  • 3eXrkhR5BL7TZ13Hm7YIHw==2024-08-15T00:02:29Zsummer 2024

    Everything that needs to be said about this class has already been said at this point.

    The material is essential for a Computer Science degree. It is a class worth taking, despite its numerous problems. Based only on the material, this course is easy to moderately difficult, depending on your background.

    The course itself is poorly organized, the graders are pedantic, and overall it's hard to see how the current iteration of the course is worthy of Georgia Tech. This causes a level of stress that is unjustified by the material. Despite this, you will be successful if you put in the effort, ignore the noise, and work at it.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 20 hours / week

  • QaHiGrgd+Pjfq59R17SqTA==2024-08-14T23:58:00Zsummer 2024

    Avoid Leetcode

    It is apparent from one of the HWs that one of the question was structured such that it is similar to a Leetcode question that people who have memorised got trapped into answering it directly and got sent to OSI for cheating.

    Fair enough, because it's a memorised code and not something that a student came up with on their own.

    Rating: 2 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • Rp+/iLY5IxXNMmn7CwtrJQ==2024-08-14T15:40:26Zsummer 2024

    This is a tough class. Partly because it is not structured the way other OMSCS classes are, many of us are usually taking this as the final class or one of the later classes. This was my 8th class. I struggled a lot adjusting to how the quizzes and homework feedback should be incorporated into your exams and assignments and was way behind early in the semester (My grades were 48% at end of HW4 and 55% on withdraw date, glad I stuck through and finished with a B).Only in the later half post exam 1, I really did figure out how the grading worked and what I needed to do to sail through. Also grading feedback takes its time, for example feedback for homework 1 came back after homework 2 submission deadline was over. So, I had points deducted for similar mistakes on both the homeworks and couldn't really incorporate the feedback for some of the assignments. For regrades, there is a bureaucratic process where you first need to elicit feedback for a regrade request from your fellow students and then make an official request. This was so inconsistent where for a same kind of issue some students agreed that it needs to be regraded and some did not. Programming assignments were introduced for this class, what was frustrating was students are not allowed to share their test cases. This is unlike many other courses for example HPCA or GIOS where it is allowed and encouraged to share testing framework. I do not agree with the TA's justification that the test cases are part of the understanding process for the algorithm design. Most of the cases in gradescope which were used to dock the points were fringe edge cases. Exam problems by themselves are not that hard as long as you interpret them the way TA's intended to :), which was a problem this semester. Being used to working in a professional courteous environment where written communication with colleagues is very formal and polite, it sometimes gets irritating when some of the TAs don't answer a straight forward question asked on the forums but reply with mocking undertones which would potentially be cases to report as abuse in my company. Shoutout to Joves for taking the time out for exam study prep, without which I wouldn't have passed this course. Also to Aja for the post encouraging people to stay on course after exam1, I was considering withdrawing and decided against. Overall I did still enjoy the course material, solving the problems on the exam and the ones behind the textbook. Dont be scared, put in the time and learn how to solve the problems in the textbook on your own you will sail through.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • f3jgHHOzhTaeyZL4My9S9Q==2024-08-13T02:12:57Zsummer 2024

    I got an A on this course. First time to take the course. Glad that I graduate.

    ** I dont have job so I spent about 50 hours on this course every week**

    The lecture videos are really intuitive and I truly enjoyed.

    Dr. Brito is nice. He frequently held office hours and he listened to students' advice/complaints on the exam and gave them points back.

    Shout out to Joves!! Great man willing to spare his own time to held marathon office hours for students even when he was not the TA this semester. I wish he was the head TA in summer semester. Kudos to him!

    However, I really had a very very stressful and anxious semester. I felt this was the most pressure semester that I had in OMSCS program even when just submitting a homework.

    Three things that make me feel sad about the course:

    1. TAs. I dont want to name some specific people and complain. I feel there were good TAs that were responsible and willing to help, like Tim W. However some TAs really didnt help at all. They often avoided to answer the questions like by reiterating students' questions in a sarcastic tone which is really condescending and made me feel so sad for the student
    2. I was flagged in the last HW. I dont need to do that HW to get an A, and I just wanted to practice my coding. One of the questions in this HW was from leetcode. I CITED the leetcode question, but still got flagged. Really upset to end my OMSCS journey in this way.
    3. Assignments. They used Gradescope for coding HWs. Only simplest test cases were given to students, and they had around 20 or more hidden cases. It understandable to have hidden cases, but I feel students were only notified "you got 4/20 in this HW" which did not help anything at all. We cannot really learn from the coding hws. They could have mentioned like "this type of corner cases is worth noticing", but not even one. Our purpose is learning, not just the grades.

    In general, I truly hope the course could get improved since most of OMSCS students need to take this course as the last course before graduation. It shouldnt be a bitter ending like this. I dont know if someone from the department could see my comment and help with the course. If not, for all students, try to avoid it or cultivate a strong heart to prepare for it.

    Rating: 2 / 5Difficulty: 4 / 5Workload: 50 hours / week

  • QaHiGrgd+Pjfq59R17SqTA==2024-08-13T01:15:26Zsummer 2024

    I don't have beef with the TAs and how they're run (in fact I did agree with some badass things Jamie did to some of the students) but how invisible Brito is with his f&*%ed up Exams (which everyone had seen on Exam 2), his weird grading regimes, and his unwillingness to work with students on a sensible path forward, despite constant reminders by the TAs to address student's concerns.

    OMSCS had been fun until this last course which I had to clear. Really makes a salty leaving from the entire programme which I am really ambivalent on recommending to others - not that they needed any more introduction these days.

    To that effect, I have decided to suspend my annual donation to the College of Computing OMSCS Fellowship Fund. The huge % of W grades in this semester is enough to buff up their coffers anyway.

    Rating: 2 / 5Difficulty: 5 / 5Workload: 38 hours / week

  • br09Dorz45zpn9ySp+NC7g==2024-08-09T17:11:44Zsummer 2024

    I completely agree with the other student on the rigid rules that you need master to succeed in this course. What shocked me the most is how the professor managed to turn an algorithm course from quantitative to qualitative.

    That's right, the homework/exams and grading of this course is rather qualitative than quantitative. To succeed, writing is more important than coding, saying the obvious is more important than deep thinking. And don't get me wrong, the TAs will not let go any chance to take points off your submission. During the course, you spend way more time to master these skills and to figure out what the professor and TAs actually want, than to learn algorithms.

    Avoid this course if you can. If you cannot, bend down you knee and join the gang.

    Rating: 2 / 5Difficulty: 2 / 5Workload: 8 hours / week

  • ex/+WEggftoEEjwISXXHLg==2024-08-09T03:43:40Zsummer 2024

    To preface - I have a 4.0 and I got an A in the course. I’m not a slouch that failed and came here to whine. What you’ve heard about the course is true. It SUCKS.

    This course doesn’t suck because the material is hard or because the workload is high. Algorithms aren’t that tough to figure out, and analyzing their correctness, runtime, and completeness isn’t hard either. It barely qualifies as math (in the way this course teaches it).

    This course sucks because of how Dr. Brito and his gang of pedantic shitstains have designed it. You don’t need to do a ton of work or study an insane amount to keep up, you just need to play their ridiculous game. They’ve created a network of rules and an entire linguistic framework that you need to master if you want to do well. In no way is this a productive or useful way to spend your time if your goal is to master algorithms.

    My advice - if you have any interest in the specializations that don’t require GA, just do one of those specializations. If you must take GA, master their game.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • CEIGYVyIqPsZQIhIgvrwmQ==2024-08-08T23:28:42Zsummer 2024

    Dr. Gerandy Brito, from Cuba's shores, Teaches Algorithms with tough, rigid cores. Grading metrics, oh so malicious! Leaves us confused, feeling fictitious.

    Student welfare? Left in the dust, In his eyes, succeed we must. Grading requests? A slow reply, Leaves us all, wondering why.

    Just like a tax officer, strict and stern, Fairness and empathy, hard to discern. Sending students, without cause or clarity, Straight to OSI, with cold severity.

    Oh, Dr. Brito, we struggle and strive, In your class, just to survive. Communist roots, with methods so rough, In your algorithms class, the going is tough!

    Rating: 1 / 5Difficulty: 5 / 5Workload: 40 hours / week

  • hZ8cIAXOZAXnAf1ZLWkMmA==2024-08-05T00:21:05Zsummer 2024

    This course requires significant improvements, starting with a thorough reassessment of the role of teaching assistants (TAs). I am extremely dissatisfied with the current level of involvement of TAs, who seem to be running nearly the entire course, from setting assignments to crafting exam questions. It is evident that these TAs do not possess the qualifications of a competent professor, and their dominant role in the course is inappropriate. TAs should assist professors, not replace them in core teaching duties.

    Furthermore, if the professor is already aware of this setup and permits it, then it must be stated that their performance does not meet the standards expected at Georgia Tech. In a course where the stakes of assignments and exams are so high, the presence of significant ambiguities in the coursework and exam questions represents a serious educational failure. The professor needs to take a more active role in overseeing and reviewing the coursework and exam designs to rectify these issues and ensure that the educational quality of the course is restored to an acceptable level.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • plbmwzcIJX9pB7AD3WS20w==2024-08-05T00:20:10Zsummer 2024

    I recommend not to take this course because exam have 66 percent questions subjective and TA are free to cut marks as much as they can. You can get 20 of 20 or 1 out of 20 even if you are correct. It all depends on how TA interpret it. Regrade request depends on whims and attitude of TA, If same TA reads regrade request, It is useless to get makrs in regrade request. MCQ questions and quizes have negative marking and form 33 percent in exam. Quizes are only 10 - 14 percent. Coding home work are restricted to special constraint of classes and uses, coding outside rules lands you to heavy peanlity.

    I recommend to go for Interactive Intelligence specialization to avoid this course. I got C grade in first attempt, and B grade in second attempt. I should get B grade in first attempt and A grade in second attempt. Course is getting tougher with time due to unpredictable grading, and introduction of new rules in homeworks. you can know it from https://lite.gatech.edu grade distribution in all years. last summer as per chart 11 percent student dropped the course and 20 percent student got grade below B which is needed as minimum for graduation in all specialization except interactive intelligence. Over all trend was in 2019 (dropped + grade below B) were 20 percent. Now it is 30 percent.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 15 hours / week

  • QaHiGrgd+Pjfq59R17SqTA==2024-08-04T16:55:31Zsummer 2024

    Thank the lords I escaped this class with a 70.67.

    Really, this class brings the worst amongst the TAs.

    Look, I think Joves did a great job given the circumstances. Unfortunately he wasn't an official TA in Summer 2024 and only hosted the Exam Preps. Rocko doesn't traditionally take Summers, so we are left with the remaining TAs.

    Surprised that Gerandy Brito took some of the Office Hours. Then again he's invisible everywhere else otherwise. One of the questions with regards to the Quizzes has yet to be resolved, even after the TAs tried to prod on him countless times to react.

    2 of the Homeworks were turned into Coding Projects, with the additional caveat that you are not allowed to share sample outputs with other students. The result caused a huge backlash in Reddit. Apparently they offered to replace one of the grades with another optional homework, but I didn't bother to bite it because I sensed there was a trap time-wise to take it. It turned out to be a smart move.

    When I did CIOS, I came across TA names which I swore to god which I never seen them before.

    All-in-all, I rather people take this during the summer. You feel less pain than the marathonic 16 weeks and dealing with additional lectures which are randomly tested in the MCQ portion of the exams - the importance of which is unfortunately downplayed even though it's "fair game".

    Rating: 1 / 5Difficulty: 5 / 5Workload: 35 hours / week

  • mECB6r1sPNaIC0cswoLfDQ==2024-08-04T08:58:39Zsummer 2024

    Probably the worst class so far for me at 8 classes. Unfortunately, it is a required class. Some TA's (mentioned a few times in other reviews) interactions are condescending, and unhelpful to students. Some refuse to answer questions surfacing due to ambiguous wording in homework (Exam 2, HW6), which was supposed to be their job to be clear. Grading is inconsistent and unnecessarily strict sometimes. Some students get away with missing answers while others are penalized. The final optional homework caused a large number of students to be marked for academic violation, which caused a great amount of stress. The problem with this homework is it is optional, and seemed to be designed in a short amount of time, so it's very simple to solve with known algorithm, which caused many students to have similar answers.

    Rating: 1 / 5Difficulty: 2 / 5Workload: 12 hours / week

  • rXqIfikWpIfFu8kzNGzVRg==2024-08-04T08:03:24Zsummer 2024

    • Overall, this course is an incredibly stressful graduation gatekeeper with good intentions but needs administrative intervention.

    • Exam Weight Imbalance

      • 69% of your grade is earned in the combined 7.5 hours of 3 EXTREMELY stressful exams.
      • The remaining 31% of your grade is earned over the other 1,800+ hours in the semester on homework and projects that keep you stressed all week over whether you're completing them correctly.
      • You can work your behind off for 1,800 hours on HW and projects that ill-prepared you for the exams and then blow 69% of your grade in only 7.5 hours.
    • TAs

      • Condescending and need to work on professionalism.
      • One TA, in particular, goes out of his way to respond to a good portion of questions with dry jokes or memes when the student they're responding to is not in a great place.
      • Another TA named Joves (who wasn't even officially working over the summer) still graciously hosted his 6-hour pre-exam prep sessions for us, only to have another TA comment in Ed that "Copying the Joves style is not necessarily the best strategy"—effectively diminishing the value that Joves spends so much personal time on delivering.
      • The TAs will say tone-deaf things such as "it's very rare for CS 6515 to deserve to be a students first, second, or third priority in life." and "Enjoy the exam!" when they well know that the stress of this course, THEY'RE ADMINISTERING allows it to be no less than 1st priority in our life and that the exams are of the most stressful 150-minute chunks of our entire OMSCS career.
    • HW, Project & Exam Question Quality

      • The questions are either of poor quality, lack detail or include too much extraneous detail.
      • When a HW thread has nearly 700 comments of questions and answers (looking at you HW 3) you know that the assignment outline is of poor quality.
    • Misuse Of Ed & Canvas

      • My last point above also leads me to this: IMO, staff misuse Ed. Everything is condensed into MASSIVE mega threads, making it challenging to find the answer you're looking for. This highly restricts the usefulness of Ed's search functionality. Instead, staff should make better use of categories and subcategories and allow new posts for every question.
      • On one assignment, course staff left Canvas misconfigured so some students could see their exam scores immediately, and others were left in suspense until grading was complete.
    • Health Impacts

      • I gained 20lbs+ of body weight over the duration of the few times I repeated this course due to the stress.
      • I heard similar stories of others gaining weight, going on medication, and attending mental health counseling.
      • None of the nine other courses I completed in OMSCS had this impact on my mental or physical health.

    In closing, I hope 6515 staff can take this feedback seriously and make structural changes to this course. In the meantime, I feel for those who must complete this course. There has to be a better algorithm to teach us algorithms.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 35 hours / week

  • zDItZBTNIhVmIEEic0jcsw==2024-08-03T18:41:35Zsummer 2024

    It was a roller coaster ride that didn't end on a high note. This is my final and 11th class and the 1st one where I couldn't maintain an A. Cutoff for A is 85, B is 70. For reference, I scored 82.

    Pros:

    1. Good study material even if you knew it before. Homeworks and exam questions are challenging and make you think. You will feel accomplished when you solve those.
    2. Lectures and office hours by Dr. Brito are useful and well put.
    3. There is a marathon OH session(>4-5 hrs) before each exam, I never attended them but skimmed through the recordings. It's quite an effort by TA Joves and props for arranging it.
    4. TAs on Ed try to respond to your questions or doubts promptly.

    That's the end of pros.

    Cons: There are 2 cons but are impactful dampeners to put it mildly.

    1. TAs have moved beyond simple goals of right or wrong and instead take pleasure and pride in trivial and pedantic details to dock points. Let me try to elaborate a little. For one homework, I was docked 4 points because I used the word "subroutine" in my explanation a few too many times and was called I relied on pseudocode. To TA's credit, he/she returned it after regrade but that actually indicates the mindset of the grading staff. Granted this is theory heavy class so you need to explain your point clearly or get penalized for handwavy explanations. But what happens when you have the pendulum swing to the other extreme? In another instance I was deducted points for giving 2 different runtimes even though I qualified what necessary conditions are needed for the 2nd runtime. Because TA doesn't want to see 2 different runtimes, thats the end of it. There are many other instances but I end with another gem of a reason to dock points. I was deducted for missing out the termination condition of algorithm in algo section but TA recognized that I did explain that in the correctness section of algo. Bottom line, TAs expect from students a clear and correct answer and if the sentence structure deviates from their image in minds, expect docking of points.

    2. "Practice what you preach". Graders and Dr.Brito expect students to write clear and complete answers but somehow think it doesn't applies on them with same rigor. In exam 2, one of the questions was worded ambiguously, which lead some minority students to take a course that Dr.Brito (lecturer of the course) recognized wasn't his intention but called valid interpretation given the circumstances. One may guess that since the author of question has accepted his mistake, the grading will be reflective of his own mistake. You are incorrect. In their infinite wisdom, all they did was award entire class +4 pts or 1.3% of total grade to all the students and yet punish the minority students who took the other interpretation which made the problem unsolvable using any lecture algorithms. This is the lamest way to correct their gross mistake by bumping up entire class average and leave behind the real victims of the confusion.(i.e. give victims +4 pts with one hand but took away 12-16 pts with the other). If I were to apply their own standards, they completely botched up exam 2 question and shouldn't let any student fail that question which contributes around 7.5% of total grade. Finally, graders apply double penalties such as Algo is incorrect ( major penalty) and secondary penalties of any dependent steps of failed algo because, you guessed it, incorrect algo can't prove whatever subsequent explanations you made there after.

    Lastly, borderline harsh on my part when I say it but I believe its true that this is probably the only space where some of the graders may have any authority in their lives and are too full of themselves. Right or Wrong answer is just a part of the grade when in fact it should be the only thing. You have to read the mind of graders and if you share the same bandwidth as graders irrespective of correctness of your solution, you will sail through with less heartburn.

    Rating: 3 / 5Difficulty: 4 / 5Workload: 18 hours / week

  • nkIdCh5DU4CklZZD2TmZdQ==2024-08-03T05:04:20Zsummer 2024

    It took me a second attempt to pass, but in the end, I enjoyed the experience! (yes, I must be sick). I feel that the previous reviews summarize the class fairly well (both the good and bad ones). Yeah, the grading isn’t entirely fair and you will lose points on problems that are ambiguously defined, but there’s a lesson learned there – that life isn’t fair! I would have never learned as much as I did through this experience if the assessments would have been normal, so as long as you can take a utilitarian approach to a single grad school course and just go with “the end justifies the means,” you may be satisfied like I was. I appreciate that the degree has this last hurdle to pass.

    Rating: 4 / 5Difficulty: 5 / 5Workload: 25 hours / week

  • vjTAghAYVf8qQ3jSGLg+fA==2024-08-01T18:55:42Zsummer 2024

    I was excited to learn for this course but ended up disappointed. This course is harsh & students are penalized heavily. For homework, referencing online sources are allowed and after citing sources, solutions were flagged for academic dishonestly (not a direct copy, but the logic follows a similar format as online sources). The solution has to follow parameters set by the question (e.g. it must be a divide and conquer approach), hence the solution approaches are already limited

    Rating: 1 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • tetCdLOcmhTWCuaat2HjAg==2024-07-26T22:52:01Zspring 2024

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

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

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

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

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

    My advice:

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

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

    Rating: 4 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • AKIULDq0TCEmiKRoPhhUHg==2024-07-25T02:40:13Zsummer 2024

    This was the worst course I took in the entire program. The TAs were incredibly unhelpful, and the grading seemed completely arbitrary. When confronted about their inconsistent practices, they would deny any issues and continue with the same behavior. Jamie should not be in a teaching position or have any interaction with students. This was the worst TA experience I've had in my extensive academic career.

    I had high hopes for this course as it was in a new area for me, and I had plenty of time to dedicate to it. Although I am familiar with algorithms, I found that 30-50% of my time was wasted on figuring out obscure formatting rules, creating responses that were either too brief or too lengthy, and getting marked down pointlessly. The problems were often intentionally misleading. For instance, many students lost 2 points on a homework assignment for not "posing it as a ***** problem," even though it clearly was one. The reasons behind such grading decisions were never explained, suggesting that the marks were intended to punish rather than educate.

    The model solutions provided were often incomplete or incorrect, which is problematic for students who learn through mimicry or memorization. The regrade process was ineffective, and the TAs did not follow through on their promises. I also discovered that the TAs are active moderators on Reddit, which made me question their priorities and commitment to the course.

    The tests were similar to Leetcode challenges, but with the added stress of ensuring your answers matched the model solutions, all in written English. There were multiple instances, like the summer midterm, where errors in the questions led to several valid interpretations, requiring a complete regrade. This course does not test math or logic skills but rather focuses on solving trivial riddles and assessing your English prose skills.

    With a 75% pass rate, it's clear that a significant number of students are retaking the course. I estimate the first pass rate (B or higher) to be around 50-60%, which is unacceptable. The course design and grading practices show a lack of interest in improving the learning experience. Even the new coding assignments reflect Jamie's inability to self-reflect or innovate, as evidenced by a course average of 50% on the first one, which was blamed on the students' lack of testing.

    TL;DR: Avoid this course at all costs. Georgia Tech should be ashamed of it, and most of the TAs should be replaced. I maintained a 4.0 GPA before this course, including in ML and DL, so it's not a matter of slacking. The effort you put into this course will not be reflected in your grades, which fail to accurately measure your understanding of algorithms. The staff is resistant to criticism and self-improvement, preferring to congratulate themselves instead.

    Rating: 1 / 5Difficulty: 4 / 5Workload: 35 hours / week

  • 95z/4tVH2/qnkcBddQrlbA==2024-07-16T19:40:25Zspring 2024

    tl;dr: Do not take this in the Summer, if you can avoid it. Really tough, but mostly fair.

    I sat for this course for the Summer '24 term. I figured I'd submit this review while I still remember to. I'm probably not going to pass the course and will likely switch specializations to avoid (re-)taking it.

    The Course

    Graduate Algorithms is a course that analyses and surveys a variety of problems and classical algorithms used in computer science. This past summer section covered dynamic programming, linear programming, divide and conquer algorithms, NP complexity class analysis, and graph algorithms.

    The Work

    Over the course of the term, aside from watching lectures and assigned reading, we were tasked with several assignments: logistics quizzes (course onboarding and acknowledgements), quizzes on content and answer formatting, written homeworks, coding homeworks (new), bite-sized coding projects, and the exams.

    In other reviews, you'll see many complaints about homework grading. In many cases, these are valid. In some cases, there are exaggerations. Sometimes, my peers would find deductions for either nits or details that were not clear in the reference material; when this occurred, as long as their solution was correct overall, they were able to request a regrade and get points back. For what it's worth, this did happen pretty regularly. But generally, you are able to gain points loss for minor "issues."

    The complaints about formatting, though, are usually meritless. Sure, following a particular written format is annoying... but that's just the requirement. If they say "don't just express your solution pseudo-code" and you do that anyway, you should expect a deduction. If they say "don't use a Python list, only use this container class we've created" and you use a Python list anyway, expect a deduction.

    At this point I've only taken exams 1 and 2, but I would say they were mostly fair--despite me bombing both. There was one question on exam 2 that was particularly gnarly and many students had a mixed interpretation of how to write the problem... But since there were students who achieved a correct answer, the TAs addressed the discontent with the ambiguity by giving +4 pity points. IMHO, while it sucks that so many people misunderstood the problem, I guess this is kind of fair. If nobody had the correct interpretation, then this would be a problem.

    The "Culture"

    I have mixed feelings about part of the course. While the TAs have great insights on the course topics, seem somewhat sympathetic to students' situations, and genuinely seem to want students to succeed... everything they say and do screams the opposite. Case-in-point, the point deductions for nits, ambiguous wording for assignments. Or just interactions in general. When a student is unfamiliar with some concept, has given a solid attempt, still needs guidance on course topics, and asks for help in a public forum of 400+ other students, the absolute worst thing you can do for their confidence and morale is give a snarky, cheeky, or sarcastic non-answer.

    I can understand not wanting to answer the same question(s) dozens of times. But you know what can be done instead? Compile a FAQs section, direct students to that--or just answer the question, as it probably could've been answered in less keystrokes than whatever quip that would be typed up. To their credit, there are times where TAs do answer questions without any passive aggression. But it's not very often.

    Another thing that felt kind of bad, is that it feels as if much of the difficulty of the class is artificial rather than from the course material itself. The lectures clearly present the material but then the homeworks and exam problems prompt us with scenarios that we wouldn't get an intuition about based on what we've read from the book or watched in lecture. The "if-you-didn't-get-the-right-answer-you-didn't-understand-the-material" mantra seems irrelevant, when we're not clearly exposed to concepts that may lead us to these novel intuitions we were supposed to come up with.

    Final Thoughts

    Overall, this course is really vigorous and tough. Especially the summer section of it. If you are not great with math or logical thinking, you will have a hard time and need to do studying to compensate. If you cannot dedicate a LOAD of time to this course to catch up where you're lacking, you will either have a bad time and barely pass or find yourself having to retake. I definitely would not recommend sitting in summer section nor pairing with another course, if you want to live a stress-free life. If it's an option, just take it alone during Spring or Fall.

    There are some folks who are built different and/or are just really smart and can pull it off without breaking a sweat. Some of them have posted reviews here, making light of the course with statements like "I didn't do CS in undergrad and yet I passed with an A"... but then they turn out to still be a STEM major or someone who went to Kumon through grade school and became a math wiz who finished completed "calculus BC" or linear algebra during high school. Do not take their advice and do not underestimate this course. If you are a working professional whose background or skill-set does not align much with GA's topics, you WILL need the time to study and prepare adequately for assignments.

    And finally: if you take this course and end up having to repeat... do not fret or let it break down your spirit. It's a tough course. If it were easy, everyone would do it. Hundreds of super smart people, over the course of years, have dropped it withdrawn to recoup their sanity and try again later. And that's okay.

    Good luck.

    Rating: 2 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • LuKUs5u420lvJ47kkgqWZA==2024-07-14T05:15:34Zspring 2024

    Review for 2024 Summer This course was a complete disappointment and fell drastically short of expectations. To begin with, my grades were decent enough that achieving a B was feasible without even taking the third test. The lecture videos themselves are excellent and do a good job of explaining the content. However, the course structure is deeply flawed and seems almost intentionally designed to prevent students from fully understanding the material.

    Let’s start with the textbook exercises. Only a tiny fraction of the explanations are provided. How are students supposed to learn anything if they can’t see how to solve the problems? And then there’s the issue with Joves' notes. They’re clearly helpful, yet there’s so much reluctance to share them. Why? It makes no sense and only adds to the frustration.

    The TAs are a whole other problem, especially Jamie. His behavior is rude and unprofessional. Instead of helping students, he responds with sarcasm and never gives a straight answer. It’s infuriating to deal with someone like that when you’re just trying to learn.

    Then there was the second exam. One of the questions had a significant problem, and instead of fixing it properly, they threw a 4-point bonus at us. Really? That’s their solution? It’s a poor way to handle mistakes, especially in a graduate program at a top university.

    Overall, this course needs serious improvement. The way it’s run now, it’s hard to believe this is a graduate-level course at one of the top 10 universities in the world.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • JgIQZTsFTDyeKSxNb68frA==2024-07-03T04:17:03Zspring 2024

    For everyone worried about this course, don't be. For context, I have zero CS background and had not taken any undergraduate algorithm courses. I started with absolutely no knowledge of algorithms. My undergraduate degree was in a traditional engineering field. I finished this course with an A and if I can do so can you. I’ll share as much as possible about how I studied for this course in hopes of helping someone out there. If you're like me and have no background, you'll need to dedicate 14-17 hours a week to gain a good understanding of the course material.

    1. Check Prerequisite Knowledge: Before starting each chapter or topic, make sure to understand the prerequisite knowledge needed. For example, before Chapter 1, understand binary search and merge sort; for graph topics, understand DFS, BFS, and Dijkstra. Pre-reading or watching YouTube videos on these topics before the lectures really helps with retaining the new concepts taught.

    2. Answering Format: The format in which you answer is as important as your understanding of the content. At the start of each chapter, there is a format quiz designed to introduce the required answer format, not test your knowledge. Many people lose points because they don't follow the required format, affecting exams, homework, and quizzes. Practice answering in the correct format to avoid losing points.

    3. Do Optional Textbook Questions: This is crucial because the course provides only one graded homework question per week, which is not enough to deepen your understanding. Attempt as many additional textbook questions as possible, which are found in the ungraded section of the homework assignment brief. You don't need to do more than what is recommended, but make sure to complete the suggested ones.

    Exam Prep:

    • Create a Study Plan: The week before the exam, create a checklist of things to study to perform well. The exam will have questions similar to your graded homework assignments and suggested practice questions.

    • Watch Joves' Exam Prep Office Hours: Joves, one of the TAs, hosts exam prep office hours where he goes through almost all the optional practice questions from the textbook. These sessions can be 6-7 hours long. I usually watch the recordings at an accelerated speed. This is invaluable as he explains how to solve each problem.

    • Redo Homework and Practice Problems: After watching Joves' sessions, redo all homework and practice problems to solidify your understanding. Type out the answers in the exact format required for exams. This practice not only helped me with understanding and memory retention, but typing in the required format in practice also helped me in answering the exam questions a lot faster.

    Rating: 4 / 5Difficulty: 5 / 5Workload: 17 hours / week

  • YV91FNDGHOdnjuu9ReCaLQ==2024-06-01T19:57:04Zspring 2024

    This material of this course is interesting though I do not need it. However, the course is necessarily complicated by how it is structured. It brings unnecessary pressure to student and has a lot of unnecessary or even stupid rules on formatting, which does not help students to learn but prevent the student from getting the core concept.

    What makes thing worse is the TAs and professor does not listen AT ALL? Throughout the semester, they are trying to justify themselves to show how correct they are to penalize student. To be honest, I cannot believe this is a graduate course as graduate courses are suppose to inspiring idea and teach core concept rather than focus on formatting, rules and penalization.

    This course has to be complete re-structured and heavily simplified to be successful, and the TAs and professor should think from students' perspective rather than spend 100% of their time and energy in justifying themselves.

    Rating: 1 / 5Difficulty: 4 / 5Workload: 30 hours / week

  • auRMWmf3yZIwbFZE+9H1ZA==2024-05-27T16:53:51Zspring 2024

    This class was a bitter end to what was a great program for my ML track (10th class). I'll keep this review straight to the point and constructive to try to help future students:

    My background:

    • Mechanical Engineer undergrad
    • Working in Aerospace
    • ML track 10th class, straight A's coming into this class

    My experience with the class:

    • I passed the class on 1st go but for the fight/effort I put in, I should have been fighting for an A and not just to pass.
    • The topics I really enjoyed. You have to abstract high level problem-solving skills to solve these puzzles of problems. I do think that if people took this class without the stress of a grade, most would find it enjoyable.
    • I do not have a CS background, and I recognized that this class assumed that you have more background knowledge than any other OMSCS I've taken. This was not a huge deal, just a bit more time sink, and occasional VERY precious points missed on the tests from a left field question.
    • This brings me to the point on time... I am like most a working professional with 40+hr/week schedule. I unfortunately had to burn through my PTO very early in the class just to keep up with the content of: lectures, OH, ed posts (must read and very lengthy), practice problems, weekly HW, weekly quiz, weekly study group. This class demands unrealistic time constraint for working professionals and is way beyond what a 3 credit class should require. Due to the time demand, I had to take an Educational Leave of Absence from work after 3 weeks of burning through my PTO.
    • I did really well on all assignments except for the tests which are the most important by weight; 69% of the class. My issue was not due to lack of knowledge or prep, but reading comprehension / understanding what the questions were asking. The problems have cascading penalty effects, so if you mess up at the start, you are pretty much done for. The multiple-choice grading was brutal as well. Your correct answer point is the same as wrong answer minus (so on 1 problem of 5 selections, selecting 1 right 1 wrong will be a 0).

    Suggestions for success

    • [TIME] This class was no joke on dedicated time, you'll know where you sit after week 2-3, but be prepared to burn your PTO. Talk to your employer so they are prepared for you missing days, or take Ed Leave if you have the funds to support it.
    • [MIMIC / COMPREHENSION] I did well on HWs and never felt the need to ask for regrade. My best advice here is to mimic the example formats from practice problem solutions they give out. Comprehension will be hard to figure out what the problem is asking but unlike the test setting, Ed and study groups are you friend to make sure you are solving the correct problem.
    • [FORMULATE AVAILABLE TOOLS] The amount of content throw at you is intense so it's hard to formulate the higher-level picture on how to solve these problems, but in my opinion it's 100% key for strong foundation. For example, for DP: understand that there is LIS, LCS, Knapsack, Windowed, each of them utilizes previous table values differently whether its 1D look-back, diagonal relationship, budget enum, or diagonal window respectively. Write these methods out yourself and use it as basis for problem solving. This goes for all other topics of DC, Graph, NP.
    • [DO THE PRACTICE PROBLEMS / COMPREHENSION] This goes back to time constrain but you really gain the most by working out these problems. I would HIGHLY suggest not to passively practice these problems by burning through them, but instead deep dive into how the problem was asked, the words they used (do you really understand each word - this class is so much about comprehension that attention to detail is key). Some of my best exam preps were from practice problems that I put a twist on - these are the easiest to do from a simple question that you write a formal solution for instead of the simple question that was asked, or ask another similar question (ex: if the problem was asking for finding 1 SCC, how would I find if there was 2 SCCs instead?)
    • [EXAM / COMPREHENSION] It's not worth complaining that the time constrain of the test sucks and adds stress to taking the already memorization heavy closed book/notes test, but what is worth noting is how to go about it. Start with multiple choice and DO NOT select an answer you are not 100% sure about. The penalty grading system is brutal, and you will do better if you only select things, you are 100% sure on. For the short answer questions, you no longer have an aid or seeing what's on Ed, or talk with your study group or ask for TA clarification and misunderstand the question in my opinion is the biggest issue here. I did all the practice problems, had a study group, read Ed, watched OH and still struggled to understand what their exam questions were asking. If I could go back, I would write down the question word for word to try to slow me down and maybe help better comprehend each and every word, as just 1 single word could completely send you down the wrong path even if you are the smartest person in the class. What sucks is that this is really hard to do with the time constrain and the stress of the exam but believe me slowing down to understand the problem 100% is worth more than solving the wrong problem.

    All in all, this class did break my spirit and it was a serious mental health challenge that will make you question if you should even have started this program or peruse this field. It is extremely taxing, and I respect anyone that tried their best. I'll leave this note by saying that this class does not define you nor does it define how smart you are. You can completely understand the topic and clearly demonstrate it by explaining to your fellow classmates but bomb their tests - do not let this class define how smart you actually are. Take a look at all your prior accomplishments, lean on your family and friends and draw happiness for these sources as you battle through this class. Best of luck!

    Rating: 2 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • zyMvNSLna3bljjRku1nfEQ==2024-05-17T16:13:52Zspring 2024

    Pros: Interesting and fun material. OH are very useful with Rocko. Cons: You see the prof only first week of class. Grading is not fair and not consistent. Yes like many students said formatting is important to them. Although they wont admit. If you mention a key concept at the start of the answer and don't state it again in the justification you WILL lose points so be careful esp. in the DC section. Regrade requests are more like nope we graded correctly and you are incorrect even if another student wrote the same thing and received points. They will claim that HWs and quizzes aren't important since they are account for little grade. This could be a reason why you retake the course spend alot of time on quizzes and HW since they are open book and notes THEY ARE VERY IMPORTANT to learn concepts and obtain a higher grade. Fight for every point of your grade, some students fail with a 69.9% overall. They do not sympathies with you no matter what you go through example I went through a miscarriage (after 8 years of trying for a baby) during exam 2 and just continued writing the exam, I was not sure if they would believe me. (They do mention that there will be no extensions for HW and exams regardless of your reason)

    Overall, if you understand the material and follow their examples and practice a ton you will get an A or B.

    Good luck!

    Rating: 2 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • /v3mupSHG7HtFqvdkNUE2A==2024-05-13T16:54:52Zspring 2024

    I'll begin on a positive note. The material covered is very interesting and the lectures (for the most part) are very well-made. The practice/HW problems are also a lot of fun and do a great job reinforcing the concepts. That being said, this course needs a lot of work. While most of the lectures were not like this, some of them (like FFT) were extremely unclear and needed to be supplemented. The lectures were also very proof heavy, but most of the proofs could be skipped since you are never asked to reproduce them and questions directly related to them are absent on the exams (some can't be skipped because you'll need to know the technique for proving correctness of HW/Exam problems). This professor is absolutely obsessed with formatting. They ask for a very particular format on HWs/Exams which is never clearly outlined and they only provide a few example solutions. If you deviate from this format even slightly, you lose a bunch of points. Your algorithm, proof, and analysis can be completely correct, but you can lose almost all of the points if the formatting isn't exact. That's ridiculous. I lost more points on formatting than anything else. They claim they are harsh regarding formatting when they grade HWs so you don't make the same mistakes on the exams. Unfortunately, since the format is never clearly explained, you might make a different mistake and lose half the points on an exam question anyway. I've never had a B in my academic career, but I received a B in this class. It wasn't because the concepts were too difficult (they weren't) nor because I dislike algorithms (on the contrary, I love algorithms). No, I got a B because of formatting issues. Now, in general, I don't mind getting a B, but I got a B based on something trivial and pedantic. To the teaching staff - seek help! Let's talk about the exams. They are needlessly stressful, mainly because of the formatting issues I described above. Moreover, two questions are worth 2/3 of the grade, so you better figure out the answer (or get close) and pray you don't violate the sacrosanct formatting constraints (since that's about all you can do since they never clearly explain the formatting - is it getting through yet?). Even worse, exams are 69% of the grade. Overall, this isn't a difficult course, but the execution is poor and it's made unnecessarily stressful by the professor's obsession. This could have been a great class, but it turned out to be a stressful nightmare instead

    Rating: 2 / 5Difficulty: 3 / 5Workload: 20 hours / week

  • FssHc8josd5Jyp3BJuuGkQ==2024-05-09T14:43:04Zspring 2024

    My background includes a solid undergrad data structures and algorithms course, some theoretical maths, and some technical writing. The dynamic programming section of the course was very new to me, though. I got a 75% (B) in this course with about 8 hours per week of study.

    I'm not going to describe the details of the course here as it's well covered by other reviews. I'll just give my tips for passing the class.

    Each non-test week I watched the lectures and focused specifically on the graded work. I only completed the ungraded work if I thought that was necessary to come up with a good understanding for the graded work. During exam weeks, I rewatched all of the lectures, studied the solutions for all graded and ungraded work, using 20-40 flash cards to memorize the solution approach for each problem, algorithm names, runtimes, etc.

    The written work for this course is by far the biggest factor in your grade, and passing the class will depend on your ability to come up with a correct solution and describe it according to the requirements provided by the TAs. Following those style requirements is very important. Once you've come up with a correct algorithmic solution, you should consider your next task to be to find examples in the sample solutions and guidelines that you can copy to stuff your own solution into. I would even go so far as to say that if you were to find a correct solution but you couldn't find any good examples of how to express that in the provided materials, you should throw that solution away and find another one. That's how important following the guidelines is.

    Like many other commenters, I found the written questions on the exams to be very like the homeworks. Though I didn't take the final and can't report on that. I tended to get about 80-90% of the points in this section of the exams.

    For the multiple choice content, which consists of all of the lecture material not covered in written homeworks, I probably explicitly studied problems for 1-2 hours during exam prep weeks. I tended to get about 50% of the points in this section of the exam.

    My final suggestion would be to study hard during the first section of the course, which focuses on dynamic programming. I studied much harder during this first section than the second and third sections, and consequently I went into those sections with a comfortable grade and a good understanding of the structure of the course. I found a YouTube course on Dynamic Programming (Andrey Grehov), programmed up lots of solutions, etc.

    I tend to sympathize with the criticism of this course as being stressful and "risky" in the sense that so much of your grade relies on so few test questions. That said, the wide grade bands help compensate for this.

    The one criticism I don't agree with surrounds regrades. Of course it would be ideal if grading were good enough to not require regrades, but I personally appreciated the open regrade process. There was one really clear incident of "you solved it but not the way I wanted you to" during the course where lots of students lost half their points for a completely legitimate homework solution, and I'm the type of person where if I hadn't seen the overwhelming consensus that the solution was correct then I probably wouldn't have requested a regrade; on regrade I got full points.

    Rating: 3 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • 2eEQQot0U7f1Fk2pKkCFxg==2024-05-08T18:04:19Zfall 2023

    Spring 2024 and want to offer some insights if you are tired with the program and just want to graduate. Finished with 80% -> B with 4hr/wk workload. A passing grade is very manageable for this class given the resources provided by TA and the instructors. Was taking another class at the same time and did not want to invest a lot of time in. Did not take the final.

    The grade breakdown is heavily exam (23% each) so really you should put more focus on the exam. There will be 4 exams and the highest 3 will count towards grade. My suggestion is that do well on the first 3 because the final one would be more difficult while the previous 3 is fine as long as you understand the homework problem.

    The exams contain 2 problems with a few multiple choices. Usually(5/6) the 2 problems would be an alternative of the homework problems, so make sure you know how to score full points for every homework problem you had. Multiple choices for exams are for topics other than the 2 big problems, you just need to make sure you know how each algorithm works.

    For homework problems, rely on the sample solution provided by TA. Use the sample solution as a template and fill in the answers, and you should be fine.

    For coding projects, use the test cases provided by students to verify correctness.

    I never opened a single lecture and used https://monzersaleh.github.io/GeorgiaTech/CS6515_GraduateAlgorithms.html as an alternative. Read pinned posts in Ed. These two should be enough for study material.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 4 hours / week

  • ez0lTQV4fFak5YD/MdOPIg==2024-05-06T02:13:02Zfall 2023

    Spring 2024.

    Take this as early as you can in the program, because if you end up with a C, you can always switch specializations and still graduate in 10 semesters.

    The design response format sounds like a big deal, but the hardest part is designing a complex algorithm in an hour on a exam for 7% of your grade. I don't think you can just "memorize" the answers.

    Most deductions are legit. Most regrade requests had no case. Some deductions were way too harsh. The student clearly understood a lot and ended up with 8/20. A minority of deductions were flat wrong. I had 18 points returned this semester. I didn't find regrades to be a problem.

    In the past few years 73%-75% of people got a B or better, so I guess I'm in the minority, but I found prioritizing the content to be an issue. There are lectures, five hour office hours, and some questions are answered in forums by students.

    Exam2, Exam1, Exam3, Final are the order of difficulty, least to most. Final was 3 free response questions out of DP, DC, graphs, and np-complete. Two questions were between medium and hard. One question was the most difficult question I saw all year.

    Rating: 3 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • GAxmweE1NxDZsRMTrJO5Kw==2024-05-01T14:36:58Zfall 2023

    Please note that I took this course in Spring 2024. However, there is no option to select Spring 2024; the closest option available is Fall 2023. This is my final course of the program, and I will complete OMSCS after Spring 2024.

    While the course content itself isn't particularly challenging, the way the course is administered often makes it seem much more difficult. Many students, including myself, have found this course to be challenging, and some have needed to repeat it. It's worth noting that even the TAs encounter difficulties with the management of this course. While I empathize with the TAs, I don't necessarily agree with all aspects of their approach. Allow me to summarize the issues I've observed with this course.

    Firstly, the course boasts over 1000 students, making it a foundational requirement for many tracks. However, most students are unable to enroll until later in the program. Consequently, by the time they take the course, it's too late for struggling students to switch tracks. For those who find themselves repeating the course multiple times, this delay can result in graduating empty-handed after investing 3-4 years in the program. I believe this issue stems from administrative oversight and warrants immediate attention and rectification. I am hopeful that the OMSCS administration will implement changes to prevent future students from facing similar desperate situations.

    The course, despite its size exceeding 1000 students, is managed as if it were a small class. Free-response question (FRQ) problems are graded without transparent grading rubrics, leading to subjective evaluation. While multiple algorithm solutions exist for the same problem, deviation from the model solution often results in penalties or necessitates a re-grade/argument process to attain deserved grades. The primary issue lies in the expectation of cookie-cutter answers for FRQ problems without clear grading rubrics.

    The re-grade process stands out as the most frustrating aspect of the course. Students are required to post re-grade requests on EdPost and await a minimum of two supportive comments before formally submitting the request to GradeScope, along with the EdPost link. This convoluted procedure is unique to GT OMSCS and is widely seen as both burdensome and unnecessary. While I can appreciate the rationale behind implementing this process to reduce TAs' workload, it ultimately proves unfair and unreasonable for students. It's important to remember that the majority of OMSCS students are working professionals with familial responsibilities, making their time equally valuable.

    I won't delve into the course content, as numerous reviews have already covered lectures, homework, exams, and strategies for success. Instead, my goal with this review is to highlight areas needing administrative attention within the GT OMSCS program. By sharing my experiences, I hope to catalyze changes that will benefit future students, sparing them the frustration of unforeseen challenges and track misalignment. It's my sincere wish that this review contributes to a more streamlined and supportive educational experience for all GT OMSCS participants.

    Sincerely, Anon

    Rating: 1 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • B2R/DEtMZGuUBgdcFgzLTQ==2024-04-29T21:50:43Zspring 2023

    I took this class in Fall 2023 and Spring 2024. I will be passing on the 2nd attempt. Having taken this twice, here is my advice to do well on 1st attempt...

    First, understand the pace of the class. There's 3 segments of this class: 1) Dynamic Programming and Divide & Conquer 2) Graph Algorithms and RSA and 3) NPC Theory and Linear Programming. You do roughly 3 weeks of coursework, then the 4th week is exam week for each of the sections. You have HW and quizzes due every week with a couple of quizzes. That means the pace is fast and you have to stay on top of it while also watching lectures and reviewing the OH on a weekly basis.

    Second, understand the most important resources available to you and prioritize them accordingly. Not all course materials are equally important for your success. The most important is lecture videos and Rocko's OH. Use Rocko's OH to understand what the staff wants you to focus on most. Use the lecture videos as your primary source of content. The textbook is supplementary. Don't waste cycles studying items in the textbook that are not in the lecture. Use Joves' OH to do exam review. This is going to really help you during your exam week. Yes they are very long OH but a wise investment!

    Make sure to memorize and nail down the core algorithms from each section, especially if its covered in lecture. For DP, I found it crucial to memorize LIS, LCS and to be able to reproduce those from hand. For D&C, I found it crucial to practice the binary search practice problems over and over. For graphs, I found it critical to memorize the runtimes, common input/output transformations. For NPC, I found it necessary to memorize and understand SAT, independent set, vertex cover, clique problem-solving approaches. Your HW should guide you where to over-index your studies. If your HW involves a binary search technique, you should 100% practice as many of these as possible and do them cold! If your HW involves LIS, make sure to know LIS inside-out, draw out the tables quickly and make sure you nail the salient points in a correct solution.

    If you are short on time for exam preparation, focus on your free-response question preparation. In the worst case, you can make educated guesses on MCQs. I would also suggest combing through the regrade requests to see common mistakes, sample solutions and how your peers approach their problem-solving. I also recommend holding off on travel plans or anything like that, as they can be very disruptive in a fast-paced course. (On my end, I had a 1-week business trip and that completely destroyed my ability to catch up on the second module of the class so please don't do that as that adds unnecessary stress.)

    All in all, while this course does have scary reviews, note that the teaching staff is on your side and your peers are invested in succeeding too. You aren't alone and this is a really important class for improving your algorithms skills. Even though I had to take this class twice, and it was devastating to do so, I got over it. It made me more resilient and my algorithms skills improved. Whether you do this class once, twice or more, understand you CAN clear this hurdle with the right mindset and effort.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • WH5373cPLLpepSYVKiE4bQ==2024-04-26T16:52:15Zspring 2023

    If there's one thing I'd say about this class, it's don't be afraid. Don't come into this class apprehensive because of the reviews. I found the class to be well run overall, considering the class size. Deadlines and logistics are communicated in a clear and timely manner. The TAs are great. They genuinely care and want you to understand the material, and to succeed. They actively feedback to improve the course, so reviews from just a few semesters ago might not reflect the current course quality.

    Some advice for future students..

    The tests can be stressful, since they are worth 70% of your full grade. My #1 tip for tests is to deeply understand the HW problems, since the exams free response questions are adaptations of these. Be sure to understand exactly why you lost points on HW problems, so you correct those for the Exam. The MC questions are generally scattered trivia of the lectures, although some may be a bit more involved.

    Study group is not necessary - you get more than enough feedback by actively participating in HW / Exam problem threads on the Ed Forum, with TA guidance.

    Regarding practice problems, they give you everything that you need - you shouldn't need to look at anything outside of their weekly practice problems to succeed in this course.

    I recommend attending office hours, or skimming the recordings. It's a great resource, and I regret not attending more of them.

    Overall, don't stress out too much. There are many opportunities and resources to succeed in this class.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 14 hours / week

  • 7uR36kqoo3zxtwjZAL2nsg==2024-04-25T19:25:19Zspring 2023

    Spring 2024. Tough (rather cruel) grading on the exams. Final exam (which can replace your lowest exam grade) is nothing like the HW's or previous exam questions (completely different topics). Some TA's are great (especially Rocko and Joves) but professor is completely absent (TA's really deserve professor salary). I had a great experience with OMSCS until this course. I got great training through taking advantage of the most difficult courses in computing systems specialization (my favorite was Distributed Computing)- the program helped me advance my career. Im grateful for that. But I ended this course with a C and it sabotaged my degree. Im too busy with my young family to retake- this class is really not worth it anyways. MY ADVICE- do Interactive Intelligence specialization to avoid this class and supplement your electives with great computing courses (like DC and operating systems) or other difficult courses.

    Rating: 1 / 5Difficulty: 4 / 5Workload: 23 hours / week

  • 8h+7kJJ+/KOoBZn8aaQeFw==2024-04-23T03:32:48Zspring 2023

    Spring 2024. I work as a machine learning engineer, I do not needed this class at all to do my job, complete waste of time. I passed successfully the class and this was my last course.

    Mind reading of TAs class. Subjective class to whatever the TA wants that particular day and if you complain you get punished or just ignored. Rubric not share with students for obvious reasons, they don't want to be judged. As it happens with every monopoly (since there is no other option), the people on the power feels that they can rule the word. Georgia Tech needs to add another option for final class to show that nobody likes this class and show how bad the professors and TAs are.

    If you fail an exam, go ahead and do your best, do not feel that you are a bad student. It is just that you were not able to guess what they wanted.

    It is so bad that this was my last class, because I completed the program with a terrible feeling because of the GA experience. Pretty bad since all the other classes were awesome, like DL and RL, but I cannot express enough how bad this class is. A communication specialist could easily do its thesis with this people.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • FjephUxAUzok5zFb+qpSmw==2024-04-19T19:36:36Zspring 2023

    I took this class in Spring 2024 as my last OMSCS class. I finished with >90% and didn't take the final.

    Background

    Non-CS undergrad degree, working as a software engineer. I have a lot of Leetcode-style algorithms experience and some proof-based math experience (undergrad level analysis and algebra).

    This is a medium-difficulty algorithms class that can be very challenging for students without enough exposure to mathematical reasoning.

    Quizzes

    These are nearly free points. Most of them allow multiple attempts. If you watch the lectures you can easily finish the quiz in 10-30 minutes. I averaged 98%.

    Coding projects

    Pretty fun and free points. The median grade on every coding project was 10/10. Other students will usually write exhaustive test cases which you should definitely run against your code.

    Homework

    These are where you have to really learn the material and style of solution expected by the class. Highly recommend having an active study group so you can critique each other's solutions. Read the example solutions very closely and write your solutions with mathematical precision. I credit my study group for getting a 90% average on the homework.

    Exams

    The questions themselves are not difficult and are slight variations on the homework. I could come up with the basic approach in a few minutes. The points I lost were because of insufficient precision in my answers. I recommend spending any free time on the exam closely analyzing every step of your solution. I can see the exams being very difficult if you have exam-related anxiety. I think my experience answering coding questions during tech interviews eliminated this. My exam grades were 91%, 81%, 100%.

    Study advice

    For those with experience with proof-based math, you should treat this class just like a proof-based math class. I think a lot of students took too much of a plug-and-play style to learning this material which sort of works for exam 1 and 2 but not at all for exam 3. In the regrades for exam 3 (NP-completeness) it was evident that many students still didn't know how a reduction works or what its purpose is. You should go through the lectures slowly and understand the purpose of every step.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • e0KUjdqAVcl35UfRdTIymQ==2024-04-18T03:04:12Zfall 2023

    I came into this with little algorithms background. I am non CS. I took a low rigor data structures course at a community college 3 years ago.

    I attempted it once and didn't pay this class much time/attention, making it my lowest priority, and dropped after Exam 1 with an average of 69.5%. I came back and made it my top priority and finished all 3 Exams at the top quartile and made an A.

    Practice, practice, practice. Even if you feel like you understand it, practice some more. Do/review the same problems multiple times. I also benefited a lot from solving the foundational D&C algorithms like FFT, Binary Search, and Median of Medians in homework format, although this isn't something people commonly did or something they recommend, I just did it and it helped a lot.

    In terms of learning, I now am able to solve a good portion of Dynamic Programming and Graph problems, and am in general a little bit better at solving Leetcode problems. I feel like I have a pretty solid understanding of NP-Completeness. I'm also a lot better at handling algorithms formally.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 12 hours / week

  • H3JCxR1prTMaSAtsMwjjmA==2024-04-17T23:29:11Zfall 2023

    I took this in Spring 2024 as my last OMSCS course and ended up with a high A (97%) About me: CS undergrad, poor at math, work full-time as a Software Engineer at a demanding big tech company

    Contrary to what other reviews may suggest, this class is very well run. The TA's are very responsive and genuinely want students to succeed. The class has a very rigid weekly schedule and this is a good thing. Grading and exam difficulty were extremely fair. The TAs provide a comprehensive write up on answer format for each type of questions. I did not ever need to submit a regrade request and I noticed most of the regrade requests were from folks not understanding the question or the expected answer format. All exam questions were extremely similar to HW problems. The math heavy sections seem daunting but the lectures do a good job of dumbing it down to a non-math major and TAs are very helpful in clarifying anything that the lectures might miss.

    Things I did:

    • Followed exactly what the schedule suggested (watching lectures, HW and suggested practice problems)
    • Focused mainly on video lectures (as opposed to the text book)
    • Attended every office hours
    • Read and understood the expected answer format guidelines provided by TAs
    • Joined a study group (We didn't meet but used discord chat to discuss HWs)

    Things I didn't do:

    • Jump ahead of schedule
    • Skip HW practice problems
    • Solve more problems than what was suggested
    • Focus too much on the suggested text book content

    Overall, the key is to consistently follow the schedule and truly listen to/read the guidelines provided by TAs and internalize them.

    This worked for me and I hope it works for some of you achieve the grade you desire

    Rating: 5 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • 7RqJJOi7Q/l7bB59mDCwgg==2024-04-17T23:03:48Zspring 2023

    This review is for Spring 2024, although OMSCentral won’t let me select that as an option.

    Background: I took GA as my 8th course and first algorithms class ever having a non-CS undergrad. I worked full-time while taking it, which was difficult and put a lot of strain on my personal life and health due to the time commitment (I only took maybe one weekend off the entire semester). I am ending the course with a hard-fought B, which is also my first B in OMSCS. But I’m okay with that, and I’m looking forward to graduating and getting more sleep. I think I owe a massive thank you to the Head TAs, who are all top notch for this class. They seriously go above and beyond to help you out on Ed and through Office Hours. I really enjoyed their guidance, and while Vigoda’s lectures are decent, I wouldn’t have made it through the course without their support. I had nothing but highly positive experiences with the Head TAs. I also took Prof. Brito’s Language of Proofs Seminar, and would comment that Dr. Brito also seems to be a really kind and funny person.

    General Thoughts: My exam grades (out of 60) were as follows: 57, 39, 40. I found the pacing of the course to be pretty fast right up until Exam 3. The TAs have made an effort to improve the course’s chronology over time so that you’re better prepared for exams with homework feedback. So now for example you’ll get feedback on a D&C homework before Exam 1, which didn’t always used to be the case. I overall felt the course was fast and difficult, but the exam questions felt mostly fair to me if you’ve done the homeworks and attended the office hours. That being said, I think the weightage of the exams is a huge source of student stress. There are 3 exams (or 4 choose 3 exams for Spring/Fall) with 2 free responses each, meaning a single FRQ is worth 7.7% of your final grade (for comparison, all the homeworks combined are worth 14%). I agree with the teaching staff that this makes the homeworks a more forgiving experience where you can make mistakes and learn from them without severe penalties. However having 46 points of your final grade come from 6 questions is still pretty stressful if you need the course to graduate. I wouldn’t double up this class unless the other course is < 5 hours/week. I do want to stress that the exams were all fair. There are some remarks in the reviews below about formatting and having to put in regrade requests on a public forum in Ed so that your peers can give feedback first. Personally I don't see how the class scales successfully without these measures, and whenever I genuinely needed a regrade, my peers and the TAs came through for me. If your solution is correct, I would stress that you'll get the points you deserve (eventually).

    Recommendations: I did well on Exam 1 by attending all the office hours (Rocko is amazing at leading these, and Joves’ marathon ones are also incredibly valuable) and practicing and re-practicing all the homeworks, lecture quizzes, and recommended practice problems. I do NOT think you need to do all the practice problems for every exam although I’m sure it would help, focus on the homeworks and intuition for why the model solution for the homework is correct. On Exam 2 I messed up a free-response, and I really didn’t want to take the cumulative final (due to feeling burnt out) so I mentally checked out and settled for a “good-enough” score for Exam 3. Rewatching all the lectures just prior to an exam was helpful for consistently getting the multiple choice questions correct.

    Closing Remarks: I’ll save constructive feedback for CIOS. My biggest non-constructive gripe is that GA is not required for all specializations. If GATech thinks the ML spec needs to take it, I don’t see why that doesn’t apply to HCI and II as well. I’d encourage you to take GA because it covers interesting topics with great support from the teaching staff, and I’d definitely say it’s made me a better programmer / computer scientist. I was pretty scared of the class when I started due to student reviews (and I mean to be fair, it is my first B in the program). But I have no prior algorithms course exposure and again I don’t have a CS undergrad. This course was pretty doable (in my humble opinion), but you gotta buckle down and really focus for a few months. As I look ahead to graduation, I'm really thankful for this program and what it's able to offer working professionals who don't have the time or financial ability to do a full-time on-campus Master's. Pay it forward if you can, and I hope to see you on the other side!

    Rating: 4 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • vnUwlFbMAi6sAwxmV6O4jQ==2024-04-17T22:52:07Zfall 2023

    I'm writing this review on the day I got my exam 3 score back. I got through this class with an B and I couldn't be happier. I'm going to try my best to give a nuanced perspective. Let's start off by saying that this class is tricky to review. Exams make up 69% and the remaining 31% consists of hws, quizzes, and coding projects. The material itself is not too difficult and I'd say that the exams are a fair assessment of what we did with homeworks and practice problems. That being said, I had a tough time with this class. Not a tough time with the concepts but with the ensuing stress regarding whether I'd pass due to small slipups in the exam.

    Because this is an exam heavy class, making small mistakes in any exam can have a huge impact. This was the source of most of my stress. I did not do well on the first exam. Completely bombed it because of a really dumb mistake on my part. In a different moment, under a different setting, I felt I could confidently solve the problem. And for the rest of the semester I was under a ton of pressure to make the B. My situation with the first exam probably differentiates my experience with those who did well from the get go. There are probably people who did well early on and kept that up throughout the semester. They probably had an easy time with the class and got a high B or an A. There are also people like myself who probably struggled due to a slip up in the exam. The difference in our reviews will be the stress levels we endured and I'm sure that reflects in the variety of reviews you'll be seeing.

    My advice to you is to take this as a standalone class. It is definetly far more doable. I took this class alongside another one and I'm pretty sure that didn't help. With the extra time you have, make sure to really really understand the hw problems. Do your best on the hws, quizzes, and coding projects. I'm sure those points are what helped me get a B. In addition, practice the DPV problems and read the textbook if time permits. Exams consist of 2 FRQs and an MC section. Doing well on the MC section requires a solid understanding of the material. FRQs are based on hw and DPV (textbook) problems. Pay special attention to your hws. I wish you the best of luck with this class.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 10 hours / week

  • jsmRaN0UA8iPxGKeKcZ47Q==2024-03-22T16:06:55Zspring 2023

    This course is the worst in the entire OMSCS program (and I did 6400!). AVOID AT ALL COSTS. If it is required for your specialization, reconsider the program or the entire institution! I mean go elsewhere than GeorgiaTech for your Masters. The lectures are outdated, the professor is absent, and the TAs crew is condescending and has know-it-all attitude. This course will leave you tramautized and questioning your life choices.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 20 hours / week

  • yDLjYZSnL0WZX+N59lDC+A==2024-03-04T19:19:16Zfall 2023

    The class is not difficult to study as such but, its the pattern of evaluation. This feels more of an english class rather than an algorithms class. The homework assignments require you to describe the algorithm in words and then its a word play after that. The grading is highly inconsistent. Its basically I as a TA think that this should be your grade. Rubric is unknown and it suffice to say that it has been an extremely frustrating experience. If you give a different answer than what the TA is expecting, expect a major penalty.

    Rating: 1 / 5Difficulty: 2 / 5Workload: 15 hours / week

  • 3XCJT8ZLLwaBH3r1BaCReQ==2024-01-19T20:09:45Zfall 2023

    I was one of the students who had to retake that course because I did not do well on it the first time I took it during the Summer semester. I got 69 and ended up with a C in the class the first time. I think I made the mistake of taking that class during the summer with another class and since both classes had weekly homework assignments, it was really hard for me to manage both classes. I retook the course in the Fall as was average above 90 on the class. Unfortunately I did not do well in the last exam, but I scored enough where I did not have to take it a third time. This feel the pain of other students who had to take that class more than 2 times and honestly I can understand the frustration. When I was taking that course, one of the students wrote a long entry in our Canvas expressing their disappointment on the difficulty of the class and how it's preventing them from graduating. That student really scored bad in one of the exam and had already taken the class 2 times. I wanted to share a video where I explain the strategy I have used to pass the course https://youtu.be/JbjUhfrRcmA . Hopefully this can help other students who had to retake the course and also could be helpful for students taking the course for the first time.

    Rating: 5 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • zyMvNSLna3bljjRku1nfEQ==2024-01-03T19:35:39Zfall 2023

    By far the worst course in the program. Avoid it if you can. Teaching team does not accept feedback very well.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 25 hours / week

  • 2vspUlNGwSNfH+7r5GSl5w==2023-12-22T15:04:07Zfall 2023

    Mostly just memorization

    Rating: 2 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • pCbEr+x/LpgVFvMkOJkuJQ==2023-12-19T04:50:52Zfall 2023

    Disclaimer: I will need to retake this class (69 as a C this fall semester) Background: I completed 9 classes at OMSCS (all A)

    This class has proven to be exceptionally challenging, particularly evident in the makeup exam. The average score of 20/60 underscores the apparent lack of support for score improvement, suggesting a predisposition towards student failure. The first three exams maintained an average around 40, yet the makeup exam's difficulty, surpassing that of homework and prior assessments, yielded a notably lower average.

    Facing the necessity of the makeup exam due to a suboptimal performance on Exam 3, I invested significant time in reviewing homework and exams. However, the unexpected difficulty of the final exam, coupled with a stark drop in average scores, left me disheartened. The statistical data aligns with my perception of the exam's formidable nature.

    While I refrain from passing judgment on other aspects of the course, the difficulty of the final exam raises concerns. While variation in question types is acceptable, the discrepancy in difficulty levels jeopardizes the aspirations of those seeking to enhance their scores. This challenging final exam not only poses a hurdle for passing the course but also threatens the achievement of graduation goals, leaving me with a sense of frustration and disillusionment.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 12 hours / week

  • Bi2JX8mcBi7Inm2tBGUKyw==2023-12-19T00:50:36Zfall 2023

    This class was really fun. The teaching staff is great. They go way above and beyond what is necessary. Truly passionate in helping students learn and make it through the class.

    Was the class hard? Yes, but it is not so hard that you can not understand or digest it.

    There are a lot of great tips from earlier posts, but I would add one more. Join an active study group. One that meets regularly and practices the practice problems. One with constructive discussions on homework and such. It really helped me out a lot just speaking to someone. Often times, they will point out mistakes or you will discover/realize through discussion you had some misunderstanding in a particular part.

    Do well in the homework. Follow the model solutions to some of the practice problems. Do not deviate too much from those solutions. You will run the risk of deductions.

    Good luck.

    Rating: 5 / 5Difficulty: 5 / 5Workload: 12 hours / week

  • MDw5IsBnuieb8QFLAWSKDw==2023-12-16T23:20:24Zfall 2023

    Background: Non-CS student, this is my last semester taking GA and another class. Getting a B (close to an A).

    Overall, I think this was a really great class. Don't let the negative comments scare you. This is a standard algorithms class. Many of my friends who have taken the class echo the same sentiment.

    Class Areas: Lectures were great, you should definitely read up the DPV book as well for additional practice problems (which the teaching team will recommend which ones to do).

    Homework assignments are pretty straightforward. You can collaborate with your study group and there are also Ed Discussion threads on the homework questions.

    Coding quizzes are easy. There is no reason one shouldn't be scoring almost full marks on these, which is evident by the statistics released for these quizzes.

    Exams are of course, the most difficult of all. Fortunately, the exam questions always nearly mirror the topic on the homework questions and a similar difficulty. The questions will also a variant of an existing practice question or homework question. TIP: YOU MUST ATTEND OFFICE HOURS, ESPECIALLY EXAM PREP ONES! If you have exam anxiety, it will greatly help that you complete practice questions and re-watch the lecture material several times.

    Grading is a controversial one. The format has been regurgitated so many times during lectures / office hours / practice question solutions / homework solutions. Yes, the grading can be quite strict that you have to hit certain criteria in your answers. However, you will have plenty of time to get this down perfectly with all the practice you have done. It helped to have a checklist in mind for each topic (e.g. Dynamic Programming, Divide & Conquer) to make sure one's answers hit those points.

    Things I liked: Teaching team was great. They are always so helpful and quick to respond. The Slack channel was very lively. Office hours was the most helpful resource in the class.

    Things I did not like: Feedback threads are absolutely brutal. Sometimes, it feels like other students in the class are being unnecessarily combative when students are trying to get regrade points. Of course, this doesn't discount many students who were indeed giving helpful feedback to others.

    Additional thoughts:

    • Study groups are really useful to bounce ideas and clarify understanding about concepts and solutions.
    • If it's difficult for you to identify how to go about solving a problem, most likely you will need to do more practice problems.
    • If you can solve a problem conceptually but get deductions for formatting (which probably is the main reason for most folks and myself), going through questions covered in Office Hours and re-writing solutions to practice problems helps.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • B2R/DEtMZGuUBgdcFgzLTQ==2023-12-12T23:42:11Zfall 2023

    Overall, this is a great class, it is well-run and the TAs provide a lot of support via office hours and study review sessions so that you can get prepared. The class requires regular effort, time commitment and practice. Personally I struggled in this class but I did learn a lot.

    The class is set up in 3 parts. In the first week, you'll do some review of Big O notation in an ungraded HW assignment. The remainder of the class has a similar structure: you'll spend 3 weeks covering content, then the 4th week is exam week. Repeat that 3 times. Then, you have a couple of weeks to do the optional final exam.

    The class offers an optional final exam to take if you are looking to replace your lowest exam score.

    Almost every week you have a couple of deliverables: quizzes, written HW assignments and a handful of coding projects. Coding projects should be the easiest points to score. Quizzes are important for nailing down your written format and for multiple-choice practice for exams. It is important to do well on your written HW assignments as they form 14% of your grade and they are the best preparation for the exams.

    Tips: Attend Rocko's weekly OH either live or watch the recordings. Make sure to watch the HW model solutions reviews at a minimum. Watch all of Joves' OH exam review sessions. Get plenty of rest come exam week, make sure to do the honorlock quiz each time in case any of your laptop settings change

    I didn't think it was necessary to have a study group. I found the most valuable content to be Ed discussion threads where people talk about approaches to homework along with the OH sessions. I think overall the class is fair, it is rigorous and requires time and effort.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • ryU4H4cn0/K/U4bKFgcU/g==2023-12-11T16:14:51Zfall 2023

    Course was pretty easy imo because there is barely any math - it's mostly a high-level algorithms course (no math proofs or complex theorems). The curriculum is laid out well and practice problems are provided with solutions. Using the tools provided by the teaching staff, it is very doable to solve the problems - it's mostly just pattern recognition. My undergrad is in business and I finished the course with a high A. Don't get me wrong - the course was not an easy A. It required a lot of work. However, I think the class is an easy B.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 20 hours / week

  • yRi7UuneQu4SlerlzdHrSg==2023-12-06T01:28:21Zfall 2023

    This is my last class, so I guess I'll write a review for it. I will be receiving a high B in the course. A bit of background - My undergrad is in Electrical Engineering, though I took the majority of the programming classes offered up to and including advanced algorithms. I've also been a SWE for about 4.5 years now as well. 4 years firmware and 0.5 years reversing fpgas so far.

    A lot of people in our program fear this class. Honestly, I think it wasn't that bad. The difficulty certainly didn't live up to the hype from this review site. Don't get me wrong, it is difficult. You do not want to procrastinate in this class (like I did sometimes). Take it seriously, but don't stress too much about it. Just do the work and you should be fine.

    Anyway, I think other people from my class have written very accurate descriptions of the assignments so that I won't repeat them all. I will touch on the most important parts that helped me.

    First - Understand all homework, practice problems, and quizzes thoroughly. When studying for an exam, do these first. Some people will tell you to just do all the problems from the book, but in my opinion, that is a waste of time (for the exam, not so much for a deeper understanding of the material). Every exam will likely be based on the practice problems the Professor has given you.

    Second - Go to every office hour. You don't have to attend them live, but it will be extremely helpful when trying to understand what the TA team wants for exam solutions. When studying for the exam, I would do every practice problem on my own and then go to the office hours to make sure I solved them correctly.

    Third - Start early on the homework each week. I didn't do this most of the time (I blame senioritis) and in the end I made a B. If I didn't get lazy, I would have made an A in the class.

    Last thing I want to do is thank the TA's and give a big shout out to Rocko and Joves for the awesome office hour reviews (Some lasting 5+ hours).

    Rating: 5 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • OTMORSBgU2cPEuwKJq+EwA==2023-12-05T22:40:56Zfall 2023

    I got a high B in GA and I'm pretty happy with that. I did this class and research at the same time, and I slacked off on exam 3 because I was basically in no danger of failing the class and I had something big that had to be done on the same week. C’est la vie.

    I'm not great at math and my undergrad wasn't in CS. The undergrad level DS&A class I took as a prerequisite was pretty poor because it was unexpectedly online in 2020 so Graphs, DP, D&C, and NP completeness were new topics to me. So if you're looking at the course topics basically everything was new to me except for LP and RSA. I also didn't do any prep because I unexpectedly had the opportunity to jump off the waitlist as my 4th/5th class.

    Even though I had very little exposure to the topics beforehand I didn't feel like I was over my head. Just focus on what is mentioned in the lectures. Don't go crazy trying to solve every problem in the textbook. Office hours + attempting the suggested practice problems were good enough to get me through the concepts. A good study group can help here too but my study group basically dissolved because we had nothing to discuss that wasn't already covered in Ed.

    Before I got into the course I heard the scare stories about inconsistent grading. I never had a reason to go through peer review but if you actually peek through the review threads a lot of people who swear their answer is perfectly correct are actually just plain wrong. A grader can only grade what you write down, not interpret what you actually meant to say. If anything I feel like the grading on the exams is fairly lenient. I didn't know at all how to solve one of the long answer questions on exam 3 but still walked away with 9/20 points.

    What really kills people in this course is not focusing on the homework. It's a math class: you need to do the problems yourself to understand them! Take it seriously and work it out before checking with your groupmates. Read the released solutions and do the problems again until you understand why you got it wrong. The exam problems are very similar to the homework.

    Rating: 4 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • 5no7/XgLj5Nu4I7kfgU/Ew==2023-12-03T19:01:44Zfall 2023

    I found this class to be challenging but rewarding. Keep in mind that the vast majority (80%) of students who finish the course get a B or higher. It is very possible to pass this class.

    Check out the grade distributions for past semesters: https://lite.gatech.edu/lite_script/dashboards/grade_distribution.html.

    The biggest source of anxiety for this course is the exams. My biggest piece of advice is that the exams are VERY similar to the homework. The instructors assign some practice problems that are way harder than the homework and exam questions. Those extra practice problems good for extra practice, but just keep in mind that the exams will mirror the homework very closely.

    The TA team is also very supportive and helpful. Rocko and Joves do a really great job at telling you everything you need to know for this class. Make sure you watch all of the office hours.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 25 hours / week

  • MkjHcmcCMKnic6PEw+3hzQ==2023-12-03T06:23:03Zfall 2023

    I joined this week after lucking out in the FFA Friday. One advice that really resonated with me after watching the first week's meet & greet with the teaching staff was Rocko (a head IA) suggesting that you not worry about exams and instead worry about the current week.

    This was the best advice for me. The exam will come when as scheduled, there's nothing you can do about that. But the best thing you can do is to study the materials of the current week because that's what you'll be tested on. Feel free to go one week ahead but don't stray ahead while forgetting to really master the concepts you need to master this week.

    What could be improved about the course?

    Make the learning objectives on the exams be less about rote memorization and more about understanding. The pedagogical method of having to memorize the expected format of solutions (Approach, Correctness, Runtime etc) for three different sections of the course is testing more than just understanding of algorithms. Also having to memorize algorithm runtimes, input, output... it's a fair question to ask whether that is really evaluating student mastery of content or rote memorization. Or FFT transformations-- also a lot of rote memorizations and little showcase of mastery.

    I concede that perhaps this design of the course is the way it is because of scaling online learning, but perhaps a challenge to the course instructor and the institution is how to also scale exam evaluations such that it evaluates the student's mastery of the content alone without much of other obscure trivial facts that can be googled.

    Overall, course content was great, TAs were awesome and on top of grading + answering questions, and I personally learned a lot. But some evaluations of student learning could be improved such that it's less about a regurgitation of facts but emphasize more on how the student uses algorithms to solve problems (I enjoyed the free-form response questions, not so much MCQ).

    Rating: 4 / 5Difficulty: 3 / 5Workload: 20 hours / week

  • 57lhB9rcBYFcS7Kne9Xr/g==2023-12-02T14:02:03Zfall 2023

    Some background:

    To re-emphasize the point from my peers- please take these reviews with a pitch of salt, there are around 1000 students taking this course each semester, and only a few students leave reviews. So the reviews tend to have a negative bias.

    Having said this, I can only speak on my experience and cannot discredit the experiences of those before me. I don't have data on whether the course has been changed significantly to address the grievances of previous batches.

    Now to the review - I went into this class with a lot of apprehension and negatively I'd already gathered from the previous reviews which led to unnecessary stress. This course was indeed one of the toughest of all the courses and sure it has its fair share of things to improve on. However, it's more to do because it's vastly different from any of the other 9 courses I've taken.

    As you may have already gathered, this course is a heavy theory based course, with little emphasis on programming (only in the coding projects which are very straightforward). Homework and exams require you to solve the algorithm problem by hand in the required format for that problem.

    The way to beat this class which is also repeatedly stated in the class is to follow the weekly schedule which will include: watching the lectures + office hours + quiz/coding project + practice problems + homework. And this is definitely a ton of work, which I did enjoy some weeks and while other weeks were dreadful due to the amount of coursework that piled up at the end of the week.

    The exams were pretty straightforward, if you've solved all the practice problems (or atleast seen the solutions). However attending all office hours and solving the practice problems are required to get the hang of the techniques and approaches.

    There were definitely a few inconsistencies in the grading, which were resolved on regrade. I don't think this issue can be solved anytime soon since all the homework and exam and written (mostly) and requires TA to grade them by hand. So keeping the scale of the work in mind, there are bound to be grading errors. I personally think this is alright, since making the whole course programming based + MCQs for the purpose of autograding would take away the essense of the course. While I was not subjected to any grave coding inconsistencies, I am aware that there were other students who were impacted by it. But due to the mostly democratised regrading process, I believe this was also handled - though duly acknowledging the annoyance of the whole waiting for grades + applying for regrade.

    The major thing that makes this course stressful is due to the requirement of a B for graduation while being one of the toughest courses.

    If you're planning to take this course and are anxious, I hope this review helped ease some.

    Rating: 4 / 5Difficulty: 5 / 5Workload: 25 hours / week

  • 1J4lhI8P8mQP9GYVDwpexQ==2023-12-02T08:43:16Zfall 2023

    The course content is hard but the exams are easy and grading is lenient.

    To score an A

    • Have faith in the TAs.
    • Course staff provides format to write answers. Follow it to the letter.
    • Watch all the office hours once, lectures twice and solve recommended problems thrice.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 12 hours / week

  • sA7tqtObdA/KIxmK5HcpYA==2023-12-01T05:15:24Zfall 2023

    Going into the course, I read a lot of reviews as to how difficult it is, how the TAs are not cooperative, and that there are plenty of obscure reasons why you will lose points etc.

    Nothing can be further from the truth. From day one, I genuinely felt that all the TAs were committed to helping out the students by providing guidance and direction for every graded segment. They clearly outline, what they expect and what they don't wish to see while grading. Imagine spending 2-3 hrs time during office hours detailing everything, answering questions, warning students how they could go wrong. This level of handholding was not there even in my higher secondary education.

    If I can get an A grade in this course, so can anyone

    1. For Quiz and assignments: Read the guidelines for the homework, pay attention to the dos and don'ts. Attend office hours or watch the recorded session. Take the mini quiz and use it as a template for writing assignments. If you follow this, you wont loose points on your assignments. This is exactly what I did.
    2. For coding projects: Read the instructions, use the students test cases (They are free) to verify your solution. Try inputs to break your own program.
    3. For Exam: Workout the practice problems, and suggested problems, before the exam. The exam problems are way too similar to the suggested and practice problems. So take time to understand the solution and the method to arrive at the solution.

    I should have scored full points on Exam 1, I totally bombed it. Wanted to withdraw, but somehow I convinced myself to move on and be ok with a B. I religiously followed the directions from TA to do well in assignments. Did well on Exam 2 and put up an ok performance on Exam 3. In the end I secured an A.

    Again, the TAs are definitely there to help you and guide you to success. Please don't take this course with the mindset that this course is designed to fail you. You can do it. All the best!

    Rating: 5 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • Xr+blJ4Vi8scJ5uR2oHHbw==2023-12-01T00:49:43Zfall 2023

    The negative reviews are way overblown on this, this course is going to be tough if you don't have a solid mathematical background / mathematical maturity but it is totally doable.

    I was worried the grading would be an issue but again that is overblown, the TA's follow the rubric and there is a valid regrading process.

    A lot of complaints about the nitpicky grading in cases where a student's solution is flat out wrong but they think because it's directionally correct they should not lose marks. Compared to a lot of math heavy proof based classes I've previously taken, the grading was actually fairly lenient, ie you can get 10/20 despite your solution being entirely incorrect just by structuring your proof in the right way.

    Overall this was an excellent course, fun content, TAs are very helpful and responsive, shout out the Joves for his office hours.

    Don't be scared, especially if you have any math background this course is actually fairly easy.

    Rating: 5 / 5Difficulty: 2 / 5Workload: 10 hours / week

  • 7RuEd0OYzpkpZ/JUV1eWww==2023-11-30T20:15:40Zfall 2023

    Wanted to Leave a quick review in order to balance out the overly negative reviews.

    I just finished up this course to finish up my time in the OMSCS program. Ive taken other challenging courses such as GIOS and AI. This was one of the most put together courses I have taken in the program. The TA's truly care about helping you succeed. Rocko's and Joves go above and beyond in their OH to insure that each student has what they need to succeed.

    In regards to the overly strict grading, this just isn't true. They give you the format of how to answer the question which is just like any other class that requires written answers to be segmented in a certain way. Students will flat out get an answer wrong and then say it was because they didn't follow the format. No, you answer was factually incorrect and had nothing to do with some strict grading by the TA's. If anything, I feel like the TA's give the benefit of the doubt on some sections of an answer.

    Overall, one of the best classes in the program. I learned a ton and am now able to actually understand different types of algorithms and what makes them effecient.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • jae+sUVG2s3em8r8xx5R3w==2023-11-30T19:42:43Zfall 2023

    Don't psych yourself out, this class is touch but very doable. The class seems to have been streamlined a lot, making it much more forgiving. There are 3 exams + 1 final exam. The final exam replaces your lowest exam grade, but many of you won't need the final anyway (you can skip it if you're happy with your grade).

    Exams The exams are totally manageable. The exam questions are at-most as hard as the homework problems. The exam free-response questions felt like just variants of problems we'd already seen in the homework.

    Exam 1 was the hardest for our semester, so give those first 5 weeks everything you've got.

    TAs All of my interactions with TAs in this class were positive. I have no idea where the whole notion of "mean TAs" in this class comes from. In my experience, every TA was really nice and helpful. One TA spent like 5 hours in office hours helping everyone review for the exam. They respond to Ed posts quickly and in general are always on your side.

    Homework Homework difficulty could range from very simple "finish in one sitting" to difficult "spend a week writing a solution", but it gets easier the more you practice. The best strategy here is to keep careful watch on the Ed homework megathread for any insights or clarifications from other students.

    Do both the graded and ungraded homework every week. Avoid looking up solutions for the ungraded problems; they are your best exam practice, you don't want to waste it by spoiling the solution. If you can do the graded and ungraded problems without too much help, you will be in a good place for the exam. If not, just keep doing additional practice problems from the book until you feel comfortable with the homework material.

    Quizzes Most quizzes were structured to look like a 'model homework solution'. When you first start working on the homework, make sure you take the quiz first, as the answers to the quiz will usually mirror the 'template' for the homework solution.

    Outside of that, quizzes were mostly free points: You have 2 attempts, and for most of the quizzes you can see which answers you got wrong in between attempts.

    Coding projects These are trivially easy, it's unlikely you'll have trouble with these.

    Grading and Regrades I was originally very worried about this. I saw horror stories of "inconsistent grading" in other reviews. However, the grading is very consistent, almost rigidly-so. Every problem type has a specific 'format' associated with it. As long as your solution matches this format, your grade should be pretty straightforward. The format is very explicitly explained in Ed posts, so study those posts when you turn your homework in.

    This class has 'public regrades', where you post your solution and the grader's feedback and explain to your fellow-students why you deserve a regrade. I originally thought this would be embarrassing and combative, but it ended up being pretty relaxed. Most of the time, if a TA made a grading mistake, they would just respond to your post themselves and say "sorry, please submit a regrade and you'll get the points back".

    If the deduction was warranted, a fellow student would chime in and explain why the deduction makes sense. I didn't see any egregious grading mistakes in these regrade threads; it was mostly just TAs misreading something, or students misunderstanding the question.

    All-in-all, this class is actually quite nice. It's stressful because it's the final boss for many of us, but the actual content of the class is very manageable. Take each week 1 at a time, don't try to get ahead, just focus on the current week's material. The TAs are helpful and some of the material at the end (NP-Completeness) was actually really cool and fun. You can do this!

    Rating: 5 / 5Difficulty: 4 / 5Workload: 10 hours / week

  • zJI1lCv7n3JUDX3LnvEODg==2023-11-30T16:38:26Zfall 2023

    This is the only review I have ever posted here, and that I probably will, but I think this class warrants my effort to serve as words of encouragement to others, like me, with little CS educational background or professional background that are coming into this program. This was my 9th course in the program. I have an Electrical Engineering BS (obtained more than ten years ago), and I have no professional background either in software development/engineering etc.

    Yes, you can do this too!!!

    First off, believe me this class is hard! The material is hard and sometimes very abstract. I wouldn't say this material does not interest me or that it is not useful. It is actually very useful and eye opener. Like other have said, this material helps you a lot to become better and prepares you for future interviews etc. The class has a really fast pace. so be prepared to have no life for a semester. I wouldn't recommend pairing this class with another easier class. The class is really stressful and there is a lot of hype coming into it. If you read other reviews, you can tell the experience from students differs a lot, so it makes you nervous and really stressed right off the bat. My advice, just take this class for what it is. You have to pass this class no matter what. Don't complain, don't try to make sense of things (grade distribution, format of answers etc), just put in the time, follow directions, and grind away and you will be fine. The class is very well run and the TAs are awesome and they do their best for you to succeed. The professor Dr. Brito is awesome too. They are very active in Ed and they help a lot. They can be very blunt at times, but what do you expect with a class of 1200 students? It will be OK, just don't be one of those offended for absolutely everything.

    • Coding Projects 4: Don't spend too much time on this, they are probably the easiest coding projects I've seen in this program, and they are only 7% of the final grade.
    • Quizzes 7: Only 7 % of final grade. Some are easy points as you get 2 attempts.
    • Homework 7: Focus on this. If you follow what they want, this will help you get a feel of the writing questions in the exams. Also it helps you get the format right towards the exam questions. They are 14% of the total grade. Total 7 homework so you can bomb a couple of them and still be fine. I certainly did bomb 2 of them ;) because I got lazy and didn't put too much effort into it. Don't be like me :).
    • Exams: This is what you should be spending 90% of your time on. Focus on exams as they are the bulk of the grade (69%). 3 midterms and a cumulative final. They drop the lowest score. Read all Ed post, you don't need to comment as participation is not required but I think it is essential for success in this class. Attend or watch every office hours, this is probably my most important advice. Rocko's OH after homework week are really helpful to prepare for exams and Jove's OH are the best before exams! If you do this and also you review homeworks and lectures, nothing will surprise you in the exam. The exams are not tricky, nor they are design to trick you. They are challenging yeah but very fair. The grade is no that strict if you think about it. I bombed exam 3 with 56%, but it was sufficient to get over 70% final grade (B) so I didn't need to take the final exam.

    They say that you should focus on practice, practice, practice book problems. If this is your deal fine, but you don't really need to practice that much. Focus on the format of the answer to be what they call the 3 Cs...Concise, Correct and Complete (if I remember correctly). Focus on the practice problems they release answers for, and the ones they recommend that you do on your own if you want to practice extra but not necessary. They say that you should join a study group, but you don't really need this either. I certainly didn't join one. I'm not saying it could be useful but I just didn't have the time for this. Also, the book is needed but you don't have to read the entire thing. The questions on exam and homework are strictly based off the lectures. The book is an additional resource only. Really necessary though to follow assigned problems etc.

    Try to reduce stress, put in the time and effort and you will be fine, trust me. If you've made it so far, you can do this!

    Rating: 4 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • lskH0X+EAIcbZwOp2CoHEA==2023-11-30T14:53:05Zfall 2023

    GA was my last course in the program, and it now looks like I will be passing with an A without needing to take the Final. I thought this was an excellent course, possibly my favorite in the program alongside GIOS, thought it also happened to be very stressful.

    The good:

    • GA has the best TA team I have ever seen. Rocko's and Joves's respective office hours should be required viewing, they are incredibly helpful. The TAs overall are incredibly hard-working, and very active in Slack and Ed Discussions. They all clearly want every student to succeed, and they do their best to support students in that endeavor.
    • The material is very interesting and useful. It can help you with everything from future coding interviews to general problem solving and analytical thinking. I really liked how much this course emphasized communication skills at the end of the day as well. Learning to effectively communicate abstract, complex, technical designs is at least as valuable a skill as learning to create such designs in the first place -The grading is actually pretty generous, which is nice given how high-stakes the exams are and how difficult some of the material can be. The grade thresholds (70% B, 85% A) give a lot of wiggle room, and early mistakes can easily be recovered from. I got a 73% on Exam 1 because of a brain fart on a free-response question, and still ended with over a 90% in the class overall without the Final. Several people had even secured the necessary 70% to pass before taking Exam 3.
    • the exams, while challenging, are fundamentally not "tricky" or "out to get you". They are firmly grounded in the lectures and homeworks, and if you can understand those, then nothing on the exam should surprise you. I once had a calculus teacher who set up his exams such that you couldn't get an A unless you solved some "above and beyond" problems, problems that played with the core foundations of the class in new and surprising ways that you had to figure out in the moment. GA is not like that. "Above and beyond"-type questions are frequently offered as optional practice problems, but the exams only had reasonable questions that were comparable in scope and difficulty to the assigned homeworks.
    • the regrade process works really well in general, and is an effective counter-measure against good-faith mistakes by the grading team (who, again, have to manually grade 1000+ free responses in like a week). It is also an effective learning tool (understanding where yourself or others went wrong, or successfully defending why a response is actually correct, can teach you a lot).

    The "bad" (but not that bad...)

    • The class is undeniably stressful and will probably dominate your life for the semester. For many (like me) it is the final barrier to graduation, and many (like me) don't take many classes where so few exam questions determine so high a percentage of your grade. I found it difficult to feel "safe" in my grade at any point throughout the course, even though I ended in a good place.
    • I have seen many people, both online and in the class, complain about the "strict formatting requirements" (or similar) that are required by the class. While it is true that the class has some requirements around the structure and contents of free response answers, I found most of those requirements to be very common-sense and necessary (e.g. for the NP-Complete proofs, all the sections and details required for answers are actually needed to fully prove NP-Completeness, it isn't an arbitrary quirk of the class). The first section (Dynamic Programming) has the most stringent and most class-specific requirements, but that is somewhat of a practical necessity so the TAs can hope to consistently grade 1200 students in a timely manner. I personally never had any difficulty understanding or adapting to the submission requirements, which are very clearly laid out, but I know they never quite "clicked" for some people, so your mileage may vary.

    TLDR: Don't listen to the excessively negative, "horror story" reviews you might see on Reddit or this site, go in with an open mind excited to learn, put in consistent effort to understand the material, and you might just have a good time, or at least look back on the course fondly when you are done.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • z6maABbkvuTYV0U2wHI1Fw==2023-11-30T14:32:35Zfall 2023

    Background: This was my last course taken in OMSCS. I have a BS in Computer Science and Math.

    I came into this course pretty nervous because of all the negative reviews I had seen, but now being on the other side, it seems like these were very overblown complaints. The grading was fair, and the TA's do a great job of communicating expectations - especially for response formatting and proctoring. Neither of these things are that hard to do correctly if you read the instructions. I didn't receive any deductions throughout the class on either of these things.

    The exams were very fair, and are not designed to trick you. Some multiple choice problems may be difficult, but the written responses are usually pretty straightforward. I did not do any practice problems and my lowest exam grade was an 88%. Study the homeworks and quizzes that you do, and you should do fine. The TAs may host special office hours to prepare for an upcoming exam - these were pretty helpful, and I'd suggest trying to attend or watch them later.

    The lectures were good and the professor does a great job of explaining the concepts. There is a book, but I believe I only used it once or twice for reference for a homework assignment.

    The coding projects aren't too hard - building test cases are especially valuable here! The TAs may let you collaborate on test cases for some of these projects, and this can help a lot.

    In general, this course is played up to be a final boss boogeyman for the program, but I think it is a very reasonable class for a graduate computer science program. In fact, I'd say it is pretty forgiving, considering you can skip an exam, even without having the final exam to replace it, and still pass with a B. The TAs are a great resource and are there to help out. They, like the exams, are not out to get you. Joves is especially helpful with explanations.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 8 hours / week

  • NAgFdCF3q/HBXfRDIwKGjA==2023-11-30T14:17:45Zfall 2023

    First off, don't believe the reviews for this course. Don't even listen to this review. If you want to really understand what this course is like, go look at the grade distribution for the course: https://lite.gatech.edu/lite_script/dashboards/grade_distribution.html.

    You'll see that a super high percentage, most of the time 70%+ get a B or higher. This is because the TAs do everything they can to help you learn the material and are really what makes the course so great.

    I ended with a B because I was too lazy to really hammer down for Exam 3, and I could still get an A if I took the final, but I think I'm a bit burnt out. Even with that mindset, I was able to get a B. The grading scale is EXTREMELY favored for you to attain a B.

    People on here love to harp on the fact about the required format for your answers, what else do they expect when TAs have to grade 1200 students' papers? If the format is the same across them, then they know where to look for the answers to their rubrics. The format is not bad, most of the time it is as simple as having headers for your paragraphs.

    Don't freak out, follow the Schedule to a T, Rocko will hammer this into your brain because people tend to look ahead and stress about future items. Seriously, follow the schedule and handle the items of that week.

    Finally, you'll be fine, attend the Office Hours of Rocko/Joves 100% and some of Dr. Brito's, and trust me, you'll do just fine. I felt like the people who complained on Ed about not doing well were the people who weren't attending Office Hours or weren't putting in the work they needed to get the grade they wanted. You'll do just fine if you have the time to commit to this course!

    Rating: 5 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • 27f5IyaqIoP3pchKLhtN9Q==2023-11-30T03:34:51Zfall 2023

    This class is more about understand what the hell TAs want than actually learning the material or applying it to anything useful in life. The TAs of this class make it a mission to deduct points for anything they interpret outside their understanding (sometimes this understanding is even different from other TAs so there is no coherency). There even seems to be a competition between some of them to see who can deduct the most points (honestly some of the most toxic grading TAs I have ever seen in any class, Joves and Rocko are pretty awesome but other TAs especially those who grade can really be annoying). I don't know why the expectation of this class is that the students have to first do the homework without any prior feedback (it takes 2 weeks for grades to be released for each hw) then fight and justify their solution by creating a thread for each assignment which itself is very time consuming for working professionals. I had multiple grading errors and points taken off because the TA grading mine was more strict while I see other people with lesser details given than me get full credit. The grading is beyond inconsistent sometimes it feels like roulette despite putting in hours watching lectures, office hours, practice problems and ed posts. I know OMS is cheap program and these TAs are like volunteers but seriously I would value the time I spent working through the non sensical inconsistent rules of this class as 10x more. The exam and hw are not that difficult if you can figure out what exactly the TAs want without any feedback, alot of people repeat the class because for the first timers it's impossibly difficult to structure answers in the format expected by the TAs. I

    Rating: 1 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • /AYno5q+5GPR3+XWWOtdTQ==2023-11-29T04:43:19Zfall 2023

    I'm somewhat conflicted about this class because on one hand, the subject material is definitely challenging and I feel like the format and grading makes it unfun to learn a lot of it, on the other hand, I have trouble thinking of any other way to present it to students in an objective way to make it reasonable to grade but also fair to the students. I definitely think this course is one of the worst ones I've taken though, the awful lectures, and strict formatting for exams make this class unbearable.

    The TAs are honestly the best part of this course, and I think it's disgusting how many reviews target them specifically when they have very little to do with how this course is presented, I almost want to say a lot of this class is a necessary evil and for me was a huge wake up call to how little I actually knew about CS. I'll definitely take responsibility for not buckling down more before (and even periods in this class to).

    I think the real root of the problem is how much the exams are weighted. 72% is unreal especially considering any mistakes on a problem and you're basically guaranteed to lose a letter grade. I'm actually really frustrated by this and it honestly put such a bitter taste in my mouth for finishing the program. I've been actively telling people not to do any specialization for this class, which is a shame because I think the material is interesting and genuinely useful to learn, but who has the patience to deal with this mess?

    I fully accept any other students reading this to call me a crybaby, whiner, etc. but I'm just sick of it all, I don't want to take it again (even though I'll probably have to). It makes me sad to write this review because I actually think so many of the GTech classes are superb, and I genuinely learned a lot in this class. I think it can be amazing if they put way more emphasis on grade weights away from the exam and focus more on application, speaking of which, why even have coding projects if they're going to be complete jokes?

    Rating: 2 / 5Difficulty: 5 / 5Workload: 15 hours / week

  • gubDUC5idd/gRNxUlv4AMw==2023-11-27T23:01:16Zfall 2023

    I came into this course with the apprehension of reading everyone else's reviews, and expecting it to be the hardest course that I had taken so far.

    The course isn't nearly as difficult as everyone had said.

    The coding projects were trivial, and took approximately 2 hours to complete each one.

    Quizzes were tricky, but allowed for two attempts with the best score being kept. The majority of the quizzes weren't about material, but rather to help teach the format for answering the long form answers for both homework and exams. The multiple choice questions on the exam were the hardest to prepare for because there was a small subset of sample questions to refer to as a reference.

    Homework Assignments were challenging. Each homework assignment was only one question (with the occasional sub section). They were challenging. I often would think on a solution for several hours while doing other things until the solution "clicked". At that point, I would spend an hour or two formalizing the answer and turning it in.

    Exams were challenging. They consisted of 2 long form answers similar to those found in the homework, as well as 8 multiple choice questions. Each section was weighted equally, so 66% of the exam was based on the long form answers, and only 33% was based on the Multiple choice questions.

    The first exam was the hardest for me, because I wasn't sure what to expect, the second two exams, I performed significantly better.

    Tips and Recommendations:

    1. Take notes on the lectures. I found that taking those notes helped cement in the information better for the Multiple Choice sections.
    2. Read the book, at least twice. Some of the key points of information for solving homework and exam questions came down to a passing thought in the reading.
    3. Think through practice problems. You don't have to solve them completely, just think through the broad strokes of the answer so that in the exam setting you can fall back on those general broad strokes. Then most of the time can be spent on fleshing out the answer with the details needed to get full points.
    4. Do the multiple choice questions first, then take your time on the long form questions. If you waste too much time on the multiple choice questions, you'll definitely run out of time on the long form, but if you answer the multiple choice first, spending only about 30 minutes, then you should have a full hour for each long form question.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • aeFuK6pFc1xf7ZEKFSYjOQ==2023-11-22T19:09:30Zfall 2023

    After this semester, I'll have my degree. 10 classes done and this is the first time I'm writing a review because I hope it balances out some of the bad and, in my opinion, unwarranted reviews.

    In some ways, I'm bitter that I've had so much anxiety towards this class during my entire time in this program because of the past reviews and horror stories. I suppose at least there's a silver lining here where it overprepared me for this class mentally. In the end, it ended up being one of my more favorite classes.

    What did I enjoy about it? Pretty much everything, from the content, to the helpful instructional staff, especially Rocko and Joves. Their office hours are invaluable, don't skip on these. During my entire time the program, these are the only office hours I've attended. I've always dreaded algorithms and Leetcode in technical interviews, but this class has helped me find some love towards it and will allow me to look at it in a more positive light going forward.

    What this class consists of:

    • 3 exams - 23% each for a total of 69%
    • 7 homeworks - total of 14%
    • 4 coding mini projects - total of 7%
    • 7 content quizzes - total of 7%
    • 3 logistic quizzes - total of 3%
    • optional final - replaces your lowest exam grade. You are prohibited from taking this exam if you have an A or a B that cannot be improved to an A.

    You'll need 85% for an A, and 70% for a B.

    I found the grading to be very fair. The guidelines and expectations are clear and pinned on Ed the entire semester. If you have a problem with grading on your assignments, there are public regrade threads for each assignment for your peers to help evaluate whether or not a scoring penalty was deserved. What I found baffling in these threads are the non-trivial number of graduate students who make it obvious that they haven't read any of the guidelines. Then there are those who think their submission is correct and flawless when it isn't. Both these groups are likely the same ones who like to use the popular scapegoat called "formatting". Don't listen to these loud-minority of students, or at the very least, take their reviews with a huge grain of salt just like you should probably do with mine. At the very very least, don't let the fearmongering get to you.

    At the time of writing this, exam 3 results are not out yet, but I believe I'm sitting comfortably with an A and am thankfully prohibited from taking the optional final. This means I'm done with the semester 3 weeks before when it actually ends. 

    I don't have a formal computer science or mathematics background. All of the concepts taught in this class were either stuff I wasn't at all comfortable with, or completely foreign to me, especially NP proofs. I didn't do anything special. All I did was follow the schedule, do some practice problems, attend office hours, and put in the work in doing the assignments to the expectations of the instructional staff. I didn't even have a study group. If some unremarkable bozo like me can pass the course with flying colors, then I believe anyone else can if they put in the work.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 25 hours / week

  • 26a+aWFKgLVo/7Oi3LOYpQ==2023-11-22T14:35:34Zfall 2023

    Never left a review for anything in my life, this will be the first.

    First off: for God's sake, don't listen to the people here whining about this class. Take the class and pass it - I will show you how.

    To begin: you are guaranteed 17 points right off the bat. 7 points of coding (if you don't 100% this then you don't deserve to pass), 3 free points in logistics quizzes, and 7 in multiple-choice quizzes that are open everything: ChatGPT, internet, your friends, whatever. So if you don't pick up all 17 points then, really, it's on you.

    14 points are for homeworks. Seriously, if you just read the model solutions on Thursdays and simply COPY the wording, format, etc. for own homework, you will be getting at least 80%. My worst homework was 80% and I didn't do a single practice problem ALL semester. I just read model solutions, the lectures, did some youtube videos, and wrote the homeworks without cheating.

    Exam 1: it's one DP problem (a simple one, you just need to know LCS, LIS, Knapsack, THAT'S IT), and one divide-and-conquer problem which is essentially a variation of binary search.

    Exam 2: one MST problem and one DFS/BFS problem. They actually tell you this before hand.

    Exam 3: one SAT and one graph NP reduction.

    For all exams, the questions are just slight modifications of the homeworks and the practice problems. Seriously, just READ THE SOLUTIONS and will be guaranteed 50%.

    With the current scheme, 31 points are from homeworks, etc. and 69 from exams. If you score 31 on the homeworks, you only need to score 56% on each exam to pass. Again, if you can't, then it's on you.

    Format: I joined the class up in arms and angry with these reviews, ready to punch TAs. The reality: there are only THREE formats you need to learn, and it's very, very basic. People get fucked on the format because they don't read the model solutions and don't read the posts detailing them. For example: for Exam 1 and HW 1/2 the DP format only accepts pseudo code. There are extended examples on what to do. Then people go and write the solution in Python. Seriously, they deserve a nice -16 deduction for NOT READING ONE POST OF 3 PARAGRAPHS.

    Grading: amidst all the whining, I found grading very fair. I fucked up a question on E2 for lack of time, so wrote a basic basic solution that had the most important section (correctness) entirely missing. I still scored 60% on it. People get screwed on the exams because they do not read the format. It says: "1) algorithm 2) runtime 3) correctness, don't use code for E2, only English". Then students write a shitload of code then paste into a paragraph. Want real summary? Most people get screwed because they 1) cannot read 2) cannot write basic English. Seriously, for exam 3 it's 4 bullet points (0-problem to reduce from, 1-prove in NP 2-transformations 3-reduction. Then on the exam discussion on Ed people write all sorts of BIZARRE either 3 pagers or 2 liners and complain they get a massive deduction.

    My entire group simply created three templates (one for each exam) of at most 30 words each, then stuck to it for everything. All but one passed the class.

    I am not defending the TAs (one or two of them sound like real jackasses) or sucking up to the instructors, but the course does provide interesting theoretic background on some nice algorithms, and makes you think outside the box for a while. Most people I saw complaining were trying to shoehorn code into English and expect to get an A. The instructor says in the very first video: THIS IS A CLASS ON WRITING PROOFS. Shoving your 150-line Python script into a Word page isn't it.

    I passed with 78, a lazy middle of the road B. My group was better. Then again, I did zero practice problems, just simply read everything and made notes. You can do it as well. If you can't score 56% on three exams, then yes you're in for a ride.

    Rating: 3 / 5Difficulty: 4 / 5Workload: 16 hours / week

  • JK1kVAavOlefW3Yr/ZASUw==2023-11-21T22:05:31Zfall 2023

    PROS

    • Good TA staff (esp. Joves)
    • Very fair grading, despite other comments here
    • Very useful section on approaching DP problems, and good review on Divide and Conquer and Graphs (somewhat useful for interviews)

    CONS

    • Zombie class (professor who designed it left), current professor is absentee and has no contribution other than writing problems. Class is basically run by TAs.
    • Class production quality is low. Rather than featuring high quality centralized content like other OMSCS courses equivalent or algorithms courses in other online programs, this course defaults to not share anything outside of ED posts and asks students to crowdsource notes. Instructional staff makes excuses that producing any content encourages cheating (maybe you should fix the class).
    • Coding Projects are a joke (easy 100%) and function as just additional problems rather than adding any learning objectives associated with coding. Acceptance criteria and input ranges are often not defined like in every standard competitive informatics or leetcode problem and instructional staff prefer to keep requirements shrouded in mystery and lack transparency. Coding section is below par compared to other OMSCS courses. They cannot even get a pipeline working to just build to a container and show us black box test case performance like so many classes in OMSCS. Coding projects are supposed to be the fun part of theoretical classes, but in this class, they are very poorly designed, and do not add any value.

    Rating: 3 / 5Difficulty: 4 / 5Workload: 30 hours / week

  • 6Xzum20crCtngSuKyDkACQ==2023-11-20T16:17:41Zfall 2023

    This class was easy enough, but the TAs made it miserable with their nit picking grading. If your class has 100s of regrades, maybe fix the grading process? Laughable.

    Rating: 1 / 5Difficulty: 2 / 5Workload: 8 hours / week

  • QwnpHqfCJbYmpk6G5pmfUw==2023-11-17T01:57:00Zfall 2023

    I found the course material to be good. However there is a lot of room for improvement on how grading is done.

    Rating: 1 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • jKMwKnr/V/UyLHYquSGbfg==2023-11-08T01:04:27Zfall 2023

    Despite having studied some basic algorithms during my bachelor's I was largely unfamiliar with the world of algorithms, like the runtime notations and calculations. This course helped me learn all those concepts and provided insight to some really cool real world concepts when it comes to dealing with algorithms.

    The Good: The course content is amazing, the lectures are awesome combined with the book and make learning a smooth experience, the main TAs including Rocko, Joves, Emily and some others try to help as much as they can and the class is very well structured. TAs are very responsive and make sure to answer every sensible query. The course instructor himself would conduct office hours weekly.

    The Bad: Homeworks and quzzes are mostly doable but sometimes homeworks include such problems that require some kind of trick that is like a very hard puzzle. There is very little help from the course staff on homeworks unless your question is about clarification on the language of the problem or other general questions. The rubric is hidden and you cannot know how your solution will be judged unless you are fully convinced that your solution is correct (more in the ugly section). DP, DC, LP and Graph Theory are of moderate difficulty but the NP-completeness proofs are a nightmare and need a ton of practice just to make sure you use the correct language and references in your solutions.

    The Obvious: As others have mentioned, some TAs are absolutely horrible. They have no regards even for the standards they are supposed to hold as part of their job. They look at the hidden rubric and choose a random clause from there to award the minimum possible points on a problem. These noobs think they can grade on their whims. This is a horrible experience for many students who are in their last semesters of the program. I don't understand why they want to prove that this is the hardest course, while they themselves cannot solve problems never seen before without spending considerable time. So eventually, despite the class being so well organized and the material being so amazing, a lot of the students get out of it with a lot of resentment. These TAs make the experience so horrible.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • Hfkku+jmVJEEYpkPmRAV0g==2023-11-04T08:19:42Zfall 2023

    I want to first share that I purposely took this class knowing that I may have been lacking the proper background to perform well on the class the first time around.

    I enjoyed the class a lot even though I ended up withdrawing from the class. Now that I have had exposure to the content in the class, I plan to take it again in the future with much better preparation.

    I have no hard feelings towards anyone, so please be rest assured I am leaving this feedback in good faith. Many TAs seem to be doing a great job. I really enjoyed office hours with Rocco. However, there seems to be a significant number of TAs who run anonymous accounts on Reddit and delight seeing some students struggle. I believe the best word to describe these TAs is schadenfreude. These TAs likely coordinate in private chats to pile on humiliating students with a genuine desire to learn.

    The question I suggest these TAs ask themselves is this: would you be openly humiliating students on Reddit if you had to use your real name? We know the answer to this question. A lot of students have seen you behave this way, and word has gone out about your schadenfreude behavior, which harms the reputation of the class for people who have worked really hard to provide a quality course to students. Please don’t act so maliciously in the future, and I will leave a better review next time.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 35 hours / week

  • QDE7VGqdOyV3Lppffau3+A==2023-09-20T14:23:03Zsummer 2023

    TAs are full of themselves and very sarcastic. They are having too much fun making fun of students rather than helping... Please do better job of hiring of right TAs. Joves and Emily were absolutely amazing. Other TAs... WTF. I absolutely hate engaging with them.

    Rating: 1 / 5Difficulty: 1 / 5Workload: 30 hours / week

  • DssId/jkbzovBU1BRrvAUw==2023-09-14T06:22:29Zsummer 2023

    There was a lot of crying in Ed and in group chats, but honestly the class wasn't bad.

    There were a lot of regrade requests, and you can see that a majority of the crying is because students use absolutely terrible formatting in their answer formatting. In this class, the key aspect is to make your answer as clear as possible by following the template, and not writing huge text blocks that meander around.

    Rating: 3 / 5Difficulty: 3 / 5Workload: 19 hours / week

  • Cu5TR5BR557C9K00MjRA4w==2023-08-14T18:08:05Zsummer 2023

    You are reading this because you would like to gauge if Graduate Algorithms will be hard. Yes, it will be difficult and will require a substantial amount of effort on your part to adequately comprehend the material so you can perform well on the exams (which comprise ~70% of your grade). Unless you are doing the ML specialization and have taken ML/DL/CV/RL, you will be shocked at the level of effort this class requires because few other courses in OMSCS will prepare you for this.

    Disclaimer: I really enjoyed this class and learned a lot through it, even though I was stressed. I did not take an algorithms class like this in undergrad. This class left me with a newfound appreciation for how TAs can either make or break a class - they definitely help make this one of the most efficiently run courses across all of OMSCS.

    Is the level of difficulty justified for this class?

    Yes, you are taking a graduate level algorithms course at Georgia Tech - you should expect this class to be at least somewhat hard. It will not be an easy A like a lot of the electives you might have previously taken. The homework and exam problems are similar to those taught in undergrad algorithms classes at UC Berkeley, Stanford, MIT, etc. My only critique for this course would be that the exams are weighted too heavily. It is very easy for someone to mess up one or two exams and find themselves in the precarious situation of having to repeat the course.

    Are exams/homeworks graded fairly?

    Yes - for the most part. There are minor inconsistencies where you might lose 5 points or 3 points for the same wrong answer, depending on how it is construed by the grader and what level of understanding you convey in your writeup. You are taking a course where you have to communicate that you correctly understand the algorithms you are using, why you are using them, the time complexities, correctness, etc. Attend office hours and learn how to clearly articulate your responses, the TAs will help you but only if you ask questions - no one can read your mind. There is a regrade process, and you should pursue it if you feel that you have a valid request.

    Is it possible to pass this class?

    Yes, it is absolutely possible to pass this class. If you are worried, then get a head start by watching the lectures, grabbing a copy of the book, and doing practice problems. I have linked to the lectures, book, and practice problems at the bottom of this post. If you are working full-time or will have limited time to devote to this class, try to do these items beforehand so you can afford some slack during the semester.

    Will this class help with coding interviews?

    Yes - indirectly. You will learn how to clearly articulate your thought process to devise a (hopefully) correct algorithm and how to explain runtime + correctness. You will have to learn the coding part on your own since this class does not focus too much on that aspect; however, if you can explain an algorithm and truly understand what is going on, then you should not have any trouble writing out the code after some practice.

    What is the bare minimum required to get an A in this class?

    My final grade was less than 0.05% higher than the minimum to get an A (85%), after the 0.5% curve for Summer 2023 was applied. Here is what you need to (comfortably) get an A:

    • watch assigned lectures by the BEGINNING of each week
    • attend or watch recordings of ALL the office hours
    • do the homework, projects, and quizzes (25% of your grade)
    • spend time doing ALL the practice problems linked below
    • make use of ALL the allotted time of 150 min on exams
    • read & reread EVERYTHING on exams to ensure you get it right
    • do not mess up the algorithm questions on exams (seriously)

    I did not read the book, but strongly urge you to if you feel that you do not fully understand the lectures.

    Good luck, you can pass this class and even get an A if you put in the effort!

    Lectures: https://omscs.gatech.edu/cs-6515-graduate-algorithms-course-videos Book: Algorithms by S. Dasgupta, C. Papadimitriou, and U. Vazirani Practice Problems: http://omscs.wikidot.com/courses:cs6515 Grade Distributions: https://lite.gatech.edu/lite_script/dashboards/grade_distribution.html

    Rating: 5 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • oYqH0T/dzvRVXKtUjsEpQw==2023-08-08T20:35:12Zsummer 2023

    I just finished it with a C (my first OMSCS C); was really hoping for a curve, but that didn't happen. Even the B's I got in other classes were very high B's. I feel like I know the material really well and repeating this course would be a waste of time, but I will have to play the "lottery" once again and maybe even get an A this time. The material is good, useful, and interesting although there is a lot of it, and you will have to invest a lot of time to understand it well. I did learn a great lot of real-world useful and applicable information, so that was time well spent.

    Where this class is terrible, like the other reviews say, is the grading and how it's structured. Depending on who grades your essay answers you will get anywhere from <50% to 100%. This is a sentiment shared by many people in my study group. Since we are allowed to cooperate on HW strategy, we pretty much all did same solutions, but the grading was a schizophrenic scatter graph.

    Half the time studying you'll spend on learning what they expect the format of the answers to be and how to tread lightly without going into too much detail so you won't get points off for using wrong words or missing something they expect you to include. Reminds me of a Karate class I took long time ago in college because I thought it would be a good exercise and learning actual moves, but instead most of the time was spent on learning to speak Japanese and studying the lineage of the dojo and how our sensei is related to other sanseis through a long list of phylogenetic trees.

    The regrades don't help because they are just used by TA's to justify why they gave you 6/20 points for phrasing something a certain way or didn't include that one phrase even though you feel like you know what you're doing and got 90% of the problem and solution correct. Before the first exam, there were a lot of questions on how to phrase the solutions, the TA's answer was "use HW feedback". There were only 2 homeworks at that point . They need to publish exemplary HWs and exam answers just like Joyner does in his HCI since formatting and phrasing is so important for this class.

    Too much weight is given to exams. If you get sick for one of them and not 100% there, it will ruin your grade. Also, I felt that on the third exam the questions were harder and trickier than homework or quizzes. But then I aced the second exam with 2 essays and MCQs with the same amount of studying spent on both. Also, the material covered is hard to predict. You'll spend lots of time studying some topic from lectures/book and it will not be covered, and likewise, something can be covered heavily on the exam but it's almost like a side note in lectures/book. It would help if there was an exam guide. Joves kind of does it in his office hours, but it's more like generalized guide covering everything studied.

    If you get lucky or you're very well prepared, you'll think the class is good. If you get unlucky, you'll hate it. I call this a lottery class because you don't even know what you're gonna get after taking the exam (A or F), a sentiment shared by many other students.

    Rating: 2 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • zyMvNSLna3bljjRku1nfEQ==2023-08-04T20:10:55Zsummer 2023

    TAs always making fun of students. Grading is terrible and inconsistent. Format is the worst and they continue to change it.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • GYTlBhk5spNQNh/BP/SM3g==2023-07-22T18:53:51Zsummer 2022

    While this was the most stressful course I have taken in the program, Joves and the other TAs (Emily stands out as well) were pretty amazing and I was impressed by the care and effort they made with the creation of quizzes and homeworks. They are particularly good at taking a topic that is very confusing in the lectures and creating the homeworks and quizzes to help solidify these confusing concepts. These TAs really make the class. I have learned some very complicated topics with relative ease because of these people.

    This class is pretty stressful, I am not going to lie. I am going to give future students a few pieces of advice as I probably will come out with an A in the course:

    -One thing I HIGHLY recommend is Joves mentions at the beginning of the class to treat the homeworks and quizzes as a place to make errors and learn the material. Bombing a homework or quiz here and there is not going to make or break you, so just take these experiences as a way to learn from your mistakes. Like I said I am probably going to make an A in the course and I bombed a couple of quizzes and homeworks.

    -Some reviews mention to do all the problems in the book or try to do as many problems as you can. I actually DISCOURAGE this unless you have the time. This class is literally built on the concepts learned in the class so it doesn't do much good to try out a problem in the book that is slightly off topic. Stick to the practice problems that are given in the course as well as the ones given in wikidot and you will be golden. It is better to fully understand a few problems and fully understand the core of the concepts being learned rather than trying a bunch of problems and only having a vague understanding.

    -Some of my study group peers criticized me strategizing the exam, but I made the highest grades out of any of them and one of them that criticized me actually ended up having to retake. I strongly believe me trying to understand what concepts were most likely to be on the exam helped me focus on the topics that were most important. I know it seems somewhat unethical to do this, but when the exams are such a huge portion of your grade you need to study smart and efficiently. Joves and Brito gave hints throughout the course on what would be on the exam and do not take these hints lightly. Study what they say to study and make sure you understand these topics. Don't try to learn every single detail if you don't have the time. Trust me.

    Rating: 4 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • +r7sCXICzMe671fjV7Q0Qg==2023-07-10T00:52:04Zspring 2023

    Absolute joke of a class. Material is interesting but grading is just a joke. Sometimes you get -4 for a small mistake, sometimes -12. The exams are weighted too aggressively. Some TAs are also stubborn and rude. Horrible experience.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • r9Do2AcPatsTWmZ8smt3YQ==2023-05-10T23:38:19Zspring 2023

    This course was not as bad as I thought it would be, but it started out very difficult and time-consuming. I started out probably spending ~20hr week working on it before the first test, then about 15hr/week up until the second test and then 5hr/week before the last test. I ended up with an A right on the borderline.

    What makes this course "difficult" is that one brain fart on a written exam question will drop you basically a whole letter grade. The material is pretty good but the stress of having everything dependent on tests is hard.

    Tip: Go to office hours and read the TA posts on what they expect an answer to look like and you will be fine. Only exam 1 and its content was tricky. Well, FFT was tricky as well but just watch a Youtube video on it (multiple times), and it will make enough sense to get the HW/exam questions correct. The exam questions are very similar to HW so if you can do HW without cheating, you should be able to do well on exams.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • H5p7nIK6lluxy90kIJSZyQ==2023-05-07T13:02:16Zspring 2023

    Very nice course, I spent 10 hours on exam preparation on the 3 weeks before exams, and between 2-5 hours on the other weeks watching lectures, going over the textbook etc. I did not watch office hours and wasn't active on slack , I feel like those can be the time sinks for this course. I have a math background so that helped tremendously. In terms of prep i just watched the DP lectures before the course started . In summary I learned a lot from the course and found the TAs caring and very responsive. If you never did proofs before or your arithmetic is rusty, I suggest going over those before starting the course. I also recommend watching DP lectures and reading chapter 6 as preparation.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 5 hours / week

  • FuO8NOTcX3Y8cLCK8aMN/Q==2023-05-04T22:05:11Zspring 2023

    Worst academic experience of my life.

    Would study 10+ hours for each exam, feel confident in the material. Even answer the questions with the right general approach. Would end up with 5/20 or 8/20 for short answer questions. Simply awful. Grading is terribly inconsistent where my answers for exam 2 were scored almost perfectly while all my other exams were scored horribly. Rubric is hidden and probably subjective (hence why the instruction team won't release it) so you have no idea how minor/major mistakes are.

    They release 3-5 practice problems each week ON THURSDAY. So each week is literally compressed into Thursday-Sunday because you have no idea what the format of answers should be until Thursday.

    Dr Vigoda would say "practice a lot of problems" in the lectures and tell us to find problems in the book and online, then the TA team would say "don't do practice problems online as they are mostly wrong". So the students are completely stuck either hoping what they do is correct, or they just reenforce bad knowledge without any correction.

    Simply awful, if I would've had this course early in my tenure at gatech I would've transferred out. Instead they hid this course until the very end so people are stuck. Super predatory

    Rating: 1 / 5Difficulty: 5 / 5Workload: 15 hours / week

  • 5za5QUnNTEC7jIRDoBPQ9g==2023-05-04T12:58:48Zspring 2023

    This class has several issues, which can be summarized as follows:

    1. Grading:

    The grading system in this class is inconsistent and elitist. Even minor mistakes can result in significant point deductions, and the grading rubric is never public.

    The grading process is also chaotic, and final grades seem to depend on who the grader is. This has resulted in multiple rounds of regrade requests and escalated issues

    For example, getting +15(out of 20) points back after multiple re-grade rounds is a frequent occurrence, as is getting a 0 in the initial regrade request and then receiving the points after escalating in ED Discussions.

    The regrading process is based on "student feedback," which is both awkward and unnecessary. Furthermore, regrades can sometimes result in point deductions, which we perceived as a scare tactic.

    If you're ever in that situation, you should fail as much as possible. Every point matters

    1. Format

    There is a strong emphasis in this class on proper question formatting. It is common to lose points for minor mistakes, such as adding a bracket or a semicolon in a programming section. It is both unnecessary and burdensome to memorize a format that is unique to this class.

    1. Grading distribution :

    70% of the grade comes from exams that are harder than homework and practice problems. The grading pickiness described above only exacerbates the issue as it is not uncommon to get very high discounts that heavily impact the final grade.

    1. Joves's Notes:

    While many reviews below highlight Joves's notes as a helpful resource, you should know that they are no longer distributed, and the reasoning behind this decision is vague.

    When students raised concerns about the unmanageable workload and the importance of the notes in summarizing the content, TAs showed little care, citing a belief that lowering the effort would diminish the quality of the class and the degree.

    1. Lectures

    While good, I found them to bee too short and vague

    My thoughts:

    Despite the issues mentioned above, I managed to earn a B grade after fighting through all the nonsense.

    However, it is not uncommon for students to have to retake this class. Many students in my semester were doing that and one student in particular was taking it for the fourth time, which is a testament to how truly terrible this course can be.

    If you are an incoming student who must take this class (otherwise, I suggest avoiding it), I strongly suggest finding a study group that can collaborate efficiently without getting sidetracked. Make sure to share and work together with your group as much as possible

    If you can, also attend all office hours. That's the only real opportunity to get help and understand the homework/exams.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 50 hours / week

  • FnWhTBNlruvaD8ELU7Is9A==2023-05-04T10:25:03Zspring 2023

    You can get all concepts from reading the DPV book. It is not hard to memorize problems and get an A or B. However, it teach nothing about algorithms. This course only teaches humans how to imitate data-driven chat-GPTs.

    I felt it is harder than the on-campus version. Most complaints come from prompt-driven, inconsistent grading. Given it is a large-size class, TAs are totally different. Your grade mainly depends on the graders' knowledge. So it is easy to get -8 - -16 points because they cannot find what they want.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • GyBcdh+ofJCqOhe9eVS20w==2023-05-02T22:37:25Zspring 2023

    So glad I took this class / OMSCS as a young 25 year old without much other responsibilities other than work and my reef tank.

    This course was pretty difficult and I barely scraped by with a B. Typically there isn't much partial credit in most exam answers, you're either very off / you got something fundamentally wrong (-16 points out of 20), you got the concept down but executed wrong on the exam question (-12 to -8 points out of 20), minor mistake (-4 points out of 20), to perfect solution (no points off).

    People recommend wikidot. While I do recommend it to see and practice some of the Graph, DP, and D&C concepts early on in the course, I found that most people had very hard difficulty with NP proofs. If I had just focused on the homeworks and practice problems and NOT wikidot I would have done much better on this exam.

    D&C was pretty straight forward and was based off of previous homeworks / lectures. Same with NP. I did not have to take the final and it is fully cumulative of the whole course. If I had to take the final, I think I would have had to retake the class.

    I highly recommend getting a good study group. One that doesn't go on tangents for 50 minutes, and one that actually collaborates. In 2 of 3 study groups I went in, people weren't social and didn't really work out the concepts of the homework problems together even though that was explicitly allowed.

    Recommend having a study group where 1-2 persons are asking a bunch of questions, 2 people middle of the pack, and 3 people who know algorithms OR frontloaded some of the lectures / practice problems/ homeworks before the group such that you guys can learn the concepts.

    However I took this class with 2 other classes and this class, GA, was a major time sink. The office hours aren't really office hours -- they are the undergrad equivalent of discussion sections where you sharpen your knowledge with discussions / practice with a TA. So office hours are basically not optional if you really want to master the material. So you will be in a sychronous schedule with the class.

    Overall I enjoyed the material but quite frankly found the grading to be harsh. In certain scenarios some graders were pedantic, specifically for DP.

    I would not recommend this course if you do not need to take it. I did enjoy the DP practice though as it made my leetcode better.

    Rating: 3 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • pYQsJdBYdTuRHWL4dnJk7Q==2023-04-30T18:42:14Zspring 2023

    You will spend as much time learning how to pass this course as you will learning the actual subject matter. There are strict rules, strict TAs, low margin for error, and "snowball-style" grading where one tiny mistake in the beginning means you get no points. It's a high-stress course that will give you impostor syndrome and an existential crisis regardless of how good your grades were in other classes. That being said though, the subject matter is very interesting, very useful, and you WILL learn and understand and remember 100% of it due to how much pressure this course puts on you. So, mission accomplished, I guess? But with this being most people's final course, I'm sure you'll be very glad your program is over after you experience this course.

    Rating: 2 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • dBUSaIXRrJZ1RjOdnzwLnQ==2023-04-27T08:39:09Zspring 2023

    Best part of taking this class is getting to carve out the time for some of the most interesting problems in computer science. Unfortunately, the organization of the course was more frustrating and distracting than it was instructional. I was looking forward to this class and was ultimately disappointed.

    I agree with most of the criticisms in the other reviews. Issues with question wording, understanding the trick of the question, and formatting are irritating. Course communication is all over the place. Far too many slack messages and Ed discussions to reasonably keep up with. There will be TA information hidden among the noise.

    Sadly, your grader matters. For the TAs that take the time to give thoughtful feedback - you are appreciated.

    This class is not hard or rigorous. The challenge comes from juggling all the stuff that isn't really the topic. You can fully understand a subject, but screw up something in your algorithm and fail the exam. Fortunately, you can get a 58% on every exam and pass the class with a B. The instructional staff seems to think harsh grading and creating stress as a motivator for students will make them learn, but then they pass almost 80% of the class anyway. This approach works better in classes with deliverables and I think alienates groups of students with unusual backgrounds.

    900 people in different parts of their lives with different experiences and on-campus students have different needs. The giant curve is a concession to the shortfalls of the scaling and instruction of the course.

    Rocko is a saint - I know everyone says it, but his office hours are the most important part of the course.

    Despite all the nuisances, this course will make you a better computer scientist. Take it, don't let it stress you out, and enjoy the different topics. Courses like this are the reason you study computer science.

    Rating: 1 / 5Difficulty: 2 / 5Workload: 10 hours / week

  • rotmVwdxg7EB/U9P8i+8sw==2023-04-27T03:03:54Zfall 2022

    By the end of the semester, I hated this course. The pre-recorded lectures don't do a good job at properly explaining the material; they are very high level. In my humble opinion, none of the teaching staff could clearly and effectively explain the material; this left most of use constantly searching online for resources to help us understand. Most of my time was wasted trying to search for good material online.

    Also the grading is extremely harsh, the graders are very pedantic in their grading. The exams count for 72% so you're not gonna make it if you keep flunking the exams and most of us do flunk them given the horrible grading. First thing you need to do is learn to format your answers so that these graders can understand.

    Overall, this was a very poorly taught course. Most of us found ourselves constantly googling for good resources to teach us the material outside what was provided in the course, this should tell you something. I expect more from a university that calls itself top 10 in the country. It took me sometime to understand this, but this is just another mooc where you take a course online and teach yourself everything. Don't expect much from the teaching staff, they are just there to grade and enforce rules.

    I hate this stupid course; not the actual subject. I would rate this course a 0 if I could.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • rxFheo21jWl6EJjvZHajHg==2023-04-26T15:46:43Zspring 2023

    Summary: This is class is very interesting if you love algos, I learned a ton during the semester and I am a better Computer Scientist than I was 4 months ago. The class is hard though and can be stressful during times, but in general I feel nice I took this class. Managed to score ~92% and get an A.

    General Advice:

    1. Watch the lectures TWICE and make sure you understand them. Feel free to take notes while you watch the videos so as to be sure you understand 100% what you are watching.

    2. Solve every problem mentioned in the course videos and recommended by the TAs in each week. Seriously. Especially the dynamic programming ones. EVERY PROBLEM. TWICE. The problems in the exams are going to have common grounds with the homework questions and those problems mentioned in the videos.

    3. BE 100% SURE YOU UNDERSTAND HOW THE TAs WANT YOU TO FORMAT YOUR ANSWERS. THEY DO NOT PLAY WITH THAT. THIS IS AN ADVICE THAT MAKES HEROES IN THIS CLASS. SPEND 4 HOURS ACROSS THE SEMESTER TO DIGEST IT.

    4. Watch the Office Hours. Every single one of them. They will explain the homeworks and how you should approach them. Learn from that. They will explain the Polls. Learn from that. In the exam there are going to be similar problems.

    5. Make a good recap before the exam. Watch all the videos again, solve all the problems again. Be sure that even if somethings gets f***ed up in the exam, you can't score lower than 75%. Gain your confidence by preparing for the exam.

    Sticking to those may sound like a lot of time. For me it wasn't so much with the exception of the 2 Dynamic Programming weeks that I ended up spending ~20 hours. But seriously if you digest the content you won't have any problem, at least to get the B. Since the DP question is clearly structured you can't lose any points due to bad TA, which is not always the case with D&C, Graph and especially NP Reductions. BUT SERIOUSLY BE SURE YOU FORMAT THE QUESTIONS EXACTLY HOW THEY WANT YOU TO DO.

    The result for me is that I scored 100% in exam A, 97.5% in exam B, 80% in exam C. I spend ~5 hours each week to watch and digest the videos, ~4 hours to solve homeworks and polls, ~1 hour watch the OH, ~2 hours reading the book. It is not that bad, just be disciplined and study across the semester. Stick to those and you will triumph.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 12 hours / week

  • GTD1PCL7ygvRXNKVBR116g==2023-04-25T17:06:05Zspring 2023

    Hard class, don't take it with another class, don't take it if you don't have to or don't have a burning interest in algorithms.

    The class is graded pretty brutally.

    74% of your grade is Exams which are comprised of 2 Free Answer algorithm questions and ~10 MCQ questions, weighted equally. So that means each one of the free form Algorithms questions are worth 8% of your overall grade. Its very easy to screw one up and lose a lot of points off your overall grade.

    I got a 60% on Exam 1, 66% on Exam 2, and a 72% on Exam 3. I had an 84% average on homeworks and ended with a 73.81%, which is a B.

    Some advice:

    • Join a study group, for homeworks if not anything else. The homework is easy points and make up a non-negliable amount of your grade. Just hearing how other people approached the problem can really help you find issues in your own and save you some points.

    • Don't get discouraged when you bomb an Exam (especially E1). The exams while they make up a large part of your grade, are not hard to come back from. Not only is the B a lot lower than most classes at 70%, the final exam will replace your lowest exam score, meaning you get a do-over for one exam.

    • Pay meticulous example to what is being asked and what format you need to respond in. Half the battle is giving an answer that is expected, not one that is just right. A lot of people lost a ton of points on the first few homeworks and exam because the answer was not in a format the TAs were looking for.

    • Go to Office hours, or at least the ones during the Week with Rocko or Joves (whoever is the head TA that semester). This is the most valuable content in the class. Seeing the official answers to problems and getting a little insight into the exams, and just having a TA do some simple practice problems really can solidify understanding and give you a little more information. If you can't go to them, they're recorded.

    Personally, I think this class is really geared towards a certain kind of person. If you can memorizing algorithms and are good at figuring out solutions on the spot, you will think this course is really easy. If not, you're going to find it unnecessarily difficult.

    I don't think its too difficult to pass, but you do have to put the time in, I put in somewhere between 15-22 hours a week into the class depending on the content of that week. The lectures can be long some weeks, and there is no shortage of practice problems that are out there.

    Overall, its not as bas as some people make it out to be, but it isn't something you can sleep through. I'm just glad its over.

    Rating: 3 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • BPFkKfTS5ywuON6F1SxjBA==2023-04-24T02:40:02Zfall 2022

    An Amazing class in OMSCS program. I think the class difficulty is a bit overrated. This is one of few classes where the TA team and particularly Head TAs make a sincere effort to make you successful in the class.

    The class, unfortunately, remains blocked until you reach the 8th / 9th class in the program, which makes the class more stressful for folks who are already exhausted.

    I liked the overall course content and the Lectures. Do not stress too much if your initial h/w grades are low, learn the tricks and try to perform well in the exams.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 18 hours / week

  • WmdQQI8xcBFyXSZrxsUN9w==2023-04-16T00:53:52Zspring 2023

    Pros The lecture is just amazing. The professor (not the current professor but the professor who made the lecture videos) makes everything so simple, meaning that he deeply understand the materials.

    Cons You have to memorize all the things including textbook problems and solutions. Otherwise you would get low grade.

    Overall, I would stronglly recommend to watch the lecture, but do not take if you don't need to.

    Rating: 1 / 5Difficulty: 1 / 5Workload: 12 hours / week

  • zZ8lmUFSojaaipM6N6qRvQ==2022-12-08T07:19:18Zfall 2022

    GA - A 10th class (AI4R, HPCA, IIS, GIOS, SAD, iHPC, AI, CN, Applied Crypto)

    Overview: After all the hype about the difficulty I found the class pretty reasonable. This is a class about understanding and writing formal proofs rather than implementing algorithms, so check your expectation before coming in.

    Things that count towards your score:

    4 choose 3 exams: For the most part this is where your grade comes from since they form a bulk of the scores (almost 75%). First exam covers DP and recursion, second exam covers graphs, RSA / number theory and flow, third exam covers NP and linear programming and the final exam covers everything. Best 3 scores out of 4 are taken which basically makes the finals optional. They aren’t much more difficult than the Homework problems on face value, but keep in mind you don’t have open book access during exams. They are 2 long forms questions and then around 8 or so MCQs

    8 Homework: Pretty much exam practice, these generally follow the same kind of format (with some combination of MCQ and long form) as the exams and figuring out how to answer them greatly helps your exams.

    3 coding assignments: Very easy, should not be a problem.

    8 Polls: Open book knowledge checks, also should not be a problem.

    Pros: DP lectures basically got me my job since I couldn’t grok the concept until I watched it and it helped me with my OAs. The content was presented well I feel and we got to go quite in depth into several I think core algorithms.

    Cons: HW and exam marking might be a tad too restrictive in terms of form and format, I think there is something to be said about rigour in proofs, but I think some of the guidelines are a little unnecessarily punitive.

    I’d also say its quite common to have to argue for marks on the HW marking and it takes some time to prep you might need to budget some time for this purpose.

    The HW and coding assignment are pretty much relentless, they will happen every week and you just have the week to complete them. Every weekend is either a HW or a coding assignment or an exam with no break in between.

    Conclusion: Most people have to take this, it’s not as hard as reviews put it, be careful with how you phrase your hw and exam answers.

    Rating: 4 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • YIoOS6UFj8ojHByYPItfvQ==2022-12-07T21:26:35Zfall 2022

    This is my first course in OMSCS, I joined by free for all Friday. My background is MS in Mechanical Engineering, worked in the manufacturing industry for 10 years, with no CS background. In beginning, I hesitated if I should drop it or not, but ended up finding I am doing just fine. So if you are like me, don't be scared away by the review of the course, you can do it.

    The class material is well organized, the instructions are clear and TA's team is excellent in helping and giving feedback.

    The three exams have the same format of two open-response questions (proof problems, 20 scores each, total of 40) and eight multiple-choice questions (2.5 scores each, total of 20). The two open-response questions are modified from Joves' notes and the eight multiple-choice questions are pre-addressed during the office hour before the exam. There's no surprise, just make sure you follow Joves' notes and office hours well.

    I am well trained in my high school years doing math proof problems, normally it's a single line of the description of a problem and a letter-size blank paper for me to hand write the whole proof process. This class reminded me of those. Some people struggle with that, I am luckily not one of them. The format of the answer is critical, both TA and Joves' notes provided the template, make sure you follow them strictly. FYI, there's one homework I submitted problem 1 as problem 2, and problem 2 as problem 1, TA graded and commented based on the original answer sequence, and gave me 11/40 scores. I believe that's how much the format is worth when nothing else is right.

    As others mentioned, the major challenge for me in this course is there's no time to rest in three months, the pace is fast for sure. I got sick in the last month and immediately messed up exam 3, but luckily I barely passed the course with the lowest B I guess. If I wasn't sick, there's very little hope for an A.

    Overall I think this is a math course, so don't be afraid if you do not have any CS background, worried more if you are not good at math prooves.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 10 hours / week

  • NDVYag0NOhDN3jlU7jf8rw==2022-12-05T19:11:26Zfall 2022

    Let me start by saying this course is not difficult. Most of the concepts taught are fairly easy to understand. What makes this course hard is

    1. Volume - there are a lot of topics. Really really lots. And you are expected to remember Big O complexity of all the algorithms covered, plus the recurrence relations, rules for modulo arithmetic and much more. The grading is strict. You think you have a good solution, but you are penalized for minor mistakes. By TA's admission, it is a lot of content. I think it makes more sense to split it into two courses.

    2. Continuous workload - 8 homeworks, 3 coding projects and a number of polls and 3 exams in a 13 week period. Last 3 weeks of the course are optional which allows you to finish early, but until then you are constantly bombarded with work. There is no time to get sick or taking a vacation. I recall doing coding projects sitting at airports when I was travelling for work. The magnitude of work is not that high, but you have to be very very regular.

    The exams carry most of the weight, so don't be discouraged if you score low in HWs. Exams cover only last 4 weeks material (except the optional final) which means you can erase your memory of life before that. Final exam is offered as an opportunity to improve grade but I don't see how that is possible since it is cumulative. It is not possible for someone to remember (and intelligently apply) everything which is taught in this course.

    Having said that - the content is high quality, very enjoyable and presented very well. Apparently it helps people crack tech interviews, I have to try that out :)

    TAs are very supportive. Weekly office hours were amazing.

    Rating: 4 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • XKKrCYYq+QkCf4RCwjyZ7A==2022-12-02T05:16:10Zfall 2022

    Here's the recipe for my 97% in GA:

    • Take my own notes while watching the lectures
    • Do the HW according to the format in Joves' notes. Review the HW & practice problems right before the exam.
    • Do the recommended book problems twice: Try to solve them after watching the lectures, and review them right before the exam.
    • Review my own notes and Joves' notes (the best) before the exam
    • Use (or just watch) the Slack channel for mental health support
    • If you follow all the above items, OH and study group are really optional. I am too anti-social to join one

    Rating: 5 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • +GAWcCHrs85l5J64h64+BA==2022-12-01T16:10:28Zfall 2022

    The course was straightforward and fair.

    On the homework, if you disagreed with the TA grading, you can post it on the discussion boards (getting feedback) and request a regrade, explaining your reasoning.

    There were 3 exams and a final exam.... BUT (1) the lowest of these 4 grades are thrown out, and (2) the final is not required... it's not even allowed if you already have an A.

    The course has very little coding in it... it's mainly just logical understanding. I loved it, but I come from a mathematics background where proofs were my favorite thing.

    I only watched the course lectures, didn't read the book, and got an A.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 10 hours / week

  • TiI/3KjoETuEcka8hnixhg==2022-11-30T21:57:45Zfall 2022

    This course was OK. I would have preferred if it wasn't required for the ML spec. This doesn't have a lot to do with ML. The material isn't super hard, in truth. But the grading can be a bit harsh at times. You won't get much partial credit if you don't have an "aha" moment on some test question, which happened to me a couple times. So I feel like I understand the stuff fairly well, but I'm going to get a B because I got wiped out on a couple exam questions. I'm OK with that and I'm ready to move on and graduate, but I do feel that the way the course is structured isn't great. I recognize that this is the traditional way of teaching algorithms at most schools, and Gatech is trying to deliver a masters that's at the same level as the on-campus masters, but that doesn't mean Gatech shouldn't strive to innovate and do better. Maybe lower the weight of the tests and provide some challenging projects (the coding projects in GA are fairly trivial). Or let you propose your own project, like in DL or ML.

    The TAs did a very good job. Rocko's office hours were valuable and well organized. The TAs also turned around the grading quickly, which can't be easy. I didn't attend Brito's office hours because he just seemed to be answering random people's questions and like I said, the material actually isn't super difficult.

    So all in all, I'm happy to be done with this course and I learned a few things that will let me banter with other people who have CS degrees ("Of course you know the TSP problem is NP-hard"). I wouldn't have taken this if I didn't have to, though.

    Rating: 3 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • C7ua2edsGNooHH05k/ATsA==2022-11-29T19:29:42Zfall 2022

    I took this as my last class in the program (computational perception & robotics specialization) and will be coming out with a high B (an A is achievable if I take the final and get >90%, but not putting myself through that).

    I have an A in every below course and for me:

    • This class was not as difficult nor anywhere near as time consuming as Artificial Intelligence
    • It was a little less difficult and not as time consuming as Computer Vision
    • It was more difficult and about as time consuming as Computational Photography
    • It was much more difficult and more time consuming than Machine Learning for Trading

    So this definitely puts it at the upper level of difficulty for courses in OMSCS but not the highest. Where it is different is the 3 exams taking 72% of your grade, so it is probably the most stressful course I have taken. Jove's notes are a good template for formatting and are indispensable for studying for the exams. You do not want to take the final since it is cumulative, but you can replace your lowest exam grade if you are shooting to pass or get an A.

    From a learning perspective, I would say this class is pretty good. I am coming out of it feeling comfortable with algorithm concepts and surprisingly I also feel it has improved my problem solving skills. Looking back I don't feel amazed at what I accomplished such as in more project based classes, but that is to be excepted.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 12 hours / week

  • LEuHJNSvju8CtJkvzRVU1g==2022-11-29T17:51:49Zfall 2022

    This is the first review I wrote after taking 9 courses. The course content is Okay overall but the assignment and exam grading is a mess and extremely punishing.

    Content: like many courses I've taken in real life in undergrad and grad school, the course started dashing and rushing near end of the class and the lecture becomes way more confusing than previous lectures. But overall is ok. Some content deviates from the textbook in the middle of the class and it's hard to find context for detailed explanation and elaborations.

    Assignments and Exams: that's where most problems I have got and heard from others. There are 8 homeworks, 3 coding projects, and 8 polls. The exam takes 72 out of 100 total points so yea, so only exams matters, almost.

    The rubric is non-transparent and absolutely designed to punish. Instead of additive, which gains points if you hit a rubric, the TA took the path for points elimination. And there can be multiple points reductions for a same error step. This is extremely annoying since it can obliterate the score to zero very fast despite you got the gist of the problem correct. All assignments and exams rubric seems require a set of "steps" for illustrating algorithms and proof. But those 'steps' was not the same as in the lecture, but rather, they are described in a student's notes called Jove's Notes.

    Regrading for assignment is almost not worth it since each has an abysmal proportion.

    Rating: 2 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • dKHgrXEMejNqIGtRntvxgg==2022-11-27T23:07:07Zfall 2022

    This class seems to be more about how the student can correctly put answers into a format that the many TA's can understand. The material is difficult, but not the worst. It can be done, but the way it's presented makes the class more difficult than necessary.

    Rating: 2 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • Zq3SFFnDQC2lDaCBCAD2ug==2022-11-22T18:20:28Zfall 2022

    One of the most difficult courses in the masters for me. If I had done this course first I would have assumed every course was like this and probably dropped out.

    TAs are very pedantic with their grading so you have to put a lot of effort in to make sure you spoon feed them the answers. Otherwise you run the risk of getting a bad grade because the TA missed the answer. E.g. I wrote a justification under the wrong heading and lost marks.

    At one point I requested a regrade and my grade when from a C to an A. It was quite the rollercoaster.

    Make sure you do every lecture, read all the extended reading, watch every office hour before you get to the weekend so you can sink a lot of time into the homeworks and revising as you will need it.

    Rating: 4 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • +GAWcCHrs85l5J64h64+BA==2022-11-14T17:13:55Zfall 2022

    The course was clearly laid out, lectures clearly explained all the material, and the grading was fair. For homework and written portions on exams, you are given the chance to dispute the grade - first publicly to your classmates (so they don't waste their time on incorrect disputes), then to the TAs. The course is exam heavy, 3 exams make up 72% of your grade. But! If you don't have an A in the course, you can take an optional final exam, and they only use your best 3 exam grades out of the 4 total.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 12 hours / week

  • YMpjmKKOl8gpOadx2pPxBw==2022-11-09T06:14:59Zspring 2022

    If you are really good at math, this course is a piece of cake

    This is the easiest course for me out of all the 10 courses I took in OMSCS, I got 95% of the grade, close to full marks on all the exams.

    just spend a few hours every week finishing all the related excises questions on DPV book, things would become easy

    background: previously graduated from EE background, practiced ~80 leetcode before this course

    Rating: 5 / 5Difficulty: 1 / 5Workload: 5 hours / week

  • l0fccuOF6Bq5T8N/kuPFyQ==2022-10-18T22:01:30Zfall 2022

    I think the video lectures are pretty good, but just not like assignments structured. I understand this course want to put more weights about analysis, rather than implementing the algorithm, but it takes some trial and errors to figure out exact rubric about the assignment. The assignment itself isn't that hard, but how to properly write the answer to get full credit is the hardest part. It's also somewhat confusing with the instruction, you need to use your best judgement rather than following the instruction blindly.

    Another thing to keep in mind, there are bugs in gradescope that multiple choices answer may not be saved, I lost 50% score just due to that bug. I think it'd be better to use Canvas for multiple choice questions, I don't get why use gradescope for written assignment.

    Rating: 3 / 5Difficulty: 5 / 5Workload: 15 hours / week

  • ejkUO9ToFljaIa3QLXWlLg==2022-10-18T02:19:29Zfall 2022

    I didn't get why this course is rated with such high difficulty level here before I take this course. Now I get it. Algorithms are not that difficult, it's the grading is too harsh that I feel I'm spending more time learning how to format my answers with careful selection of words that are as near perfection as possible to TA's eyes.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 10 hours / week

  • NOEDaOk+z1yMuU5OOMU6bw==2022-08-16T22:14:14Zsummer 2022

    If you have a mathematics background, understanding proofs, you will have an advantage in this class. In fact, you will probably like this class a lot. If you do not, or if you struggle with these concepts, you will have more trouble with this class.

    Try to find group members who actually meet and participate. One other person was involved, and made the class much more enjoyable. Others in our group just observed or even worse, talked until all the oxygen was depleted and left no room for deeper discussions.

    Do the practice problems on each topic for all the problems listed in DPV and also look for problems in other Algorithms texts. Try to find solutions from other students to check your work and work through the problems with your study group.

    To do well on the m/c questions, just watch the lectures and take really good notes, then re-watch any lectures on topics you're not 100% clear on. The questions are not tricky, but if you didn't study, you'll think or whine that they are.

    Summer is a grueling pace, so if you don't have / make lots of time to study, you'll probably be disappointed. Joves is a great TA. We missed Rocko, who took the summer off, but Joves spoke highly of him.

    After taking the class, I wish there were other Algorithms options on OMSCS. Let's make that happen!

    Rating: 5 / 5Difficulty: 4 / 5Workload: 30 hours / week

  • 14Nfq1b8LlgEfhx2HDVfyA==2022-08-12T21:17:50Zsummer 2022

    I had never studied algorithms formally before this class, and I majored in math and physics in undergrad.

    I found this class not to be that bad, even for a summer course, It was well paced and well organized. I got an A by practicing the home work, practice problems, and problems I went and found outside of the book. If you practice a handful of problems every night you don't need to cram.

    I found ML, DL, RL, and CV to be more challenging overall than this course.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • WJHSWGqRBUsq4wrZyUmoxw==2022-08-08T22:54:46Zsummer 2022

    First time writing review here. My background was in computational linguistics (mostly linguistics), I have never completed any algorithms courses online cause they made me feel so bad about myself. I have done about 200 leetcode questions mostly easy and medium to prepare for my job interviews. I have 9 years of working experience and rarely need to implement any algorithms from scratch. I was super intimidated by this course at the beginning because dynamic planning is the hardest in my impression and this course starts with it. However, after I get the rhythm, this course is not as hard or time consuming as many other courses in OMSCS. The videos are pretty short the office hours are very helpful, the homeworks are all open book and it is pretty easy to find solutions online, the coding projects are not that hard either. I have never read the textbook cause that doesn’t work for me, I sometimes search for other videos if something taught in class is unclear for me. So 25% of the scores are pretty easy to get. As for the exam questions, all concepts are introduced in the videos and they are very close to the homework assignments, probably simpler than homework questions, so I actually did better in exam than my homework. I think the overall workload for me is about 10-12 hours a week in the summer semester and I managed to get 90+. My brain shuts down after watching the videos for 10 minutes though, so I had to do something else and come back to it or just sleep over it and watch more in the morning, same for office hours, I might need a couple of nights to go through a 100 minutes office hour, so I might have taken more time trying to study this but not actuallY studying this. Lol, good luck!!

    Rating: 4 / 5Difficulty: 4 / 5Workload: 12 hours / week

  • t2e2G3HfblCpiz+CUcrzFw==2022-08-06T22:54:51Zsummer 2022

    The Summer 2022 curve was 67%. I got a 69%. This is the worst academic experience I've ever had - not an exaggeration. The grading is so brutal. I wish you good luck on your path to graduate.

    More details: https://www.reddit.com/r/OMSCS/comments/vleq4h/cs6515_graduate_algorithms_its_true_what_they_say/

    Rating: 2 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • /lNfV27zCIxopwhzDovJKA==2022-08-05T15:56:16Zsummer 2022

    This is a hard class but not impossible. I'd never taken an algorithms class before and passed fairly comfortably. I think going in with a strategy to pass the class would be very helpful, so I'm going to provide one here.

    To start with, I'd suggest reading the textbook BEFORE the course starts, and taking notes on all the chapters. After that, don't use the book for much except practice problems. When the book and course content differ, defer to the course content.

    Watch the lectures and take notes. Watch the office hours and take notes. When studying for the tests, use Joves' notes. I liked making a ~1 page cheat sheet with the most important information, and writing it over and over again until I had it memorized. Do all the practice problems from the wiki. More than memorizing the individual problems, you really need to understand how to apply the concepts to a slightly different problem. The exam problems are going to be similar to homework problems, but not exactly the same. If you understand all the concepts, you'll just need to fit them to the exam problems.

    The course is graded as follows: Homework: 10% Coding assignments: 9% Polls: 6% Exams: 75%

    The coding assignments and polls should essentially be free points. Polls are a single multiple choice question, and you get two attempts. Homeworks are harder to get a perfect score, but they are open book/internet/everything. When you get docked for HW points, review what you got wrong and ask for a re-grade if you think it's appropriate. I left lots of points on the table with homework and I wish I hadn't. If you get 100% for coding and polls, and 80% for homework, you've got 23% of the overall grade right there.

    Exams are structured with two free response questions, then some multiple choice. Again, the free response are likely from the book, and similar to the practice problems. You need to understand the overarching concepts/algorithms, and how they can be applied to different problems.

    If you focus on doing as well as possible on the homeworks, coding assignments, and quizzes, it can take a lot of pressure off the exams. Especially if you do really well on one of the first two.

    Rating: 3 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • Georgia Tech Student2022-05-07T02:58:50Zspring 2022

    The course could be lot better. You will learn how to format the your algorithms in the specific way they want it.

    Rating: 1 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • Georgia Tech Student2022-05-06T22:15:17Zspring 2022

    This was my 8th course in the OMSCS program and it was the hardest course so far with one other class a close second. My undergrad was not CS or CSE but I am a self taught programmer with 13+ years experience as a software developer. Thus, the coding projects were quite easy and essentially help your grade, the hard part is the exams.

    This course was quite difficult for me due to a few factors: the pace is fast unless you’ve already done an algorithms course before, the grading seems harsh — easy to lose almost all the points on a problem with a simple mistake hence some students repeat the course, it’s essentially like a math class, lastly not know how much to study (burnout). The HW and practice problems help you for the exams. Master them and Joves notes.

    My suggestions for success is understand the fundamentals, no, master the fundamentals of each topic: DP, Divide and Conquer, Graph algorithms, Linear programming and NP reductions. Also, don’t skip asking for a regrade on HW if something was incorrect in grading . It could cost you a letter grade if you’re not careful so don’t be too relaxed with a seemingly small grading issue. Also don’t just do it for spite as you can lose even more points.

    For exam prep do all homework problems and practice problems then do more. Understand the fundamentals of the topics for the essay questions as you will have to know the algorithms like the back of your hand or you will miss a lot of points. This is not a class where you can get by with a high level overview of the topic, you need to be thorough. For MCQ review the lectures and the book chapters.

    Exam Difficulty for me was Exam 2 > Exam 1 > Exam 3

    You will see some students boasting that they got 100% on the exam and saying it was too easy while the exam average clearly is a C or lower on the exams. Ignore the A plus boasting students and just study hard don’t let their arrogance throw you off if you are struggling or make you feel inferior after all the work you put in, they likely already knew most of the material before the course or are fast learners. Don't compare yourself to them. Don’t sweat it.

    Lastly, the class IS hard but not crazy hard so don’t get siked out by some reviews as I did and make stupid mistakes on the exams due to anxiety. Just study smart and you will do fine, believe in your work effort and don’t quit once you see the harsh grading for exam 1. You can still do it.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 25 hours / week

  • Georgia Tech Student2022-05-06T09:48:34Zspring 2022

    I knew right after the first midterm that I should drop. Normally I would have dropped and spent the rest of the semester preparing to repeat, but this was my last course and I didn't want miss graduation. I had also heard that the first test was the hardest and that things could only get better. I have always been an above average student, even in my previous graduate studies at this same school. I knew I just had to try harder, so I went from 20 hours/week to 30.

    There was some improvement in my second midterm, though I still came below the mean. I started questioning why in spite of my effort I'm still scoring poorly in every assignment. Come the third test and I bombed the worst. I asked myself, why do I feel like one of those kids who finishes high school unable to do algebra? The answer to this is that this was my first algorithms course ever. You see, the typical CS undergrad takes about 3 of these courses, and I walked into this not even knowing what a binary search was.

    My disappointment isn't with the course, nor with the instructor, it's that the program was supposed to prepare me for this but didn't. I was hardly the only person in this class taking his first algorithms course and we all did poorly. GT let people like myself into this program and knew that we'd hit this wall, yet they didn't offer a way to bridge the gap.

    How else could they improve this class? The grading is dastardly and inconsistent. Rubrics should be made known, test problems from past semesters should not be re-used, and TAs shouldn't be grading 200 papers each. Was it all bad? No, Joves notes were great, Rocko's office hours very helpful (I would say mandatory), and Dr Brito gets kudos for holding his own office hours (which hardly any professors do).

    Any advise for passing? Yes, take a semester off if necessary and take Stanford's 4 course sequence with Tim Roughgarden on Edx. Also, dispute every single point deduction. I hate to do this to the TAs, but their grading is error prone (how could it not be when you're running a grading assembly line). You don't want to end up getting a C on account of 0.1%, which is about as much as a point on a test. Finally, don't wait until your last semester to take this class. Take it after your two foundationals are out of the way. Nothing in the curriculum will prepare you for this.

    In the end I passed with a 70.02%. Did I learn much? Not as well as I should have. Does the grade reflect my effort? Not by far. What's next? Well, I won't be applying at Google, or even bothering with LeetCode yet. I will be taking my own advise and doing Roughgarden's courses. After that, we'll see... I hear Google also needs TPMs.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • Georgia Tech Student2022-05-06T02:19:43Zspring 2022

    If you do not have a CS background or have taken an algorithms class prior this class can be quite challenging. Rather than leave my opinions or repeat things others have said about format, I will just leave a few tips.

    • Study ahead of time. Look at the prerequisites and make sure you have some basic understanding of some of the topics. This will go a long way in relieving stress throughout the semester.
    • If you have time, do some real simple Dynamic Programming, Divide and Conquer, and Graph problems before taking the course. If you find something particularly challenging study in advance and it might de-stress a week for you.
    • Do a Big O notation crash course before you start.
    • Do the practice problems. They really help reinforce the material and what is expected.
    • Do the practice problems before exams if you didn't get to them during the week, or even if you did.
    • Be careful about spending your time on problems that are not assigned. They can be really helpful for basic understanding but also could touch on stuff that will never make it on an exam.
    • Don't stress during the exams. I messed up one of the exams because I was stressing over something silly. By doing so I missed a key point and did worse than I should have.
    • I used online flash cards and they really helped for remembering things like algorithms, runtime, etc...
    • Attend or watch the office hours. The TAs go over EVERYTHING in detail. Office hours also have exam prep sessions. The TAs want you to succeed.
    • Avoid feeling demoralized by the folks in slack who seem to get everything immediately. Most of us didn't get immediately and had to work at it.
    • Finally and very importantly, get in a study group with people you can talk with. It makes the hard weeks easier and the good weeks even better. My group met once a week over discord and discussed the problems (within the bound allowed by the class). Without that group I would not have made it through.

    This class stretched me further than most others but I feel like i have learned a ton and it has already benefited me in the way I solve problems.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • Georgia Tech Student2022-05-01T02:44:37Zspring 2022

    This course need significant re-structuring.

    Overall, if you don't give up, can keep your frustration in control......."B" doable, "A" might be little tough. Your grade do not reflects your understanding....it only reflects if you screwed up in a exam or not.

    Rocko, Jove & Professor were very helpful. Like the lectures, TA Office Hours, Projects, Quizzes, MCQ section of exam.

    HW & Written section was worst.....encourages memorizing, writing in a particular way to get good grades. Students get punished severely for outside the box thinking, writing style. Students who's first language is not English, puts them in dis-advantages. Here are my logic for removing/significantly changing the written section of HW & Exam.

    1. Due to writing style, it creates confusion what student writes & what grader interprets. Similarly, student can easily go off the track if they interpret the questions differently. No matter how well written the questions is, it's very easy to get confused in exam since no option to clarify what actually been asked.
    2. Had so many "Tomato" vs "Tomata" situations. Since, for a given problem can have different solution........it's easy to get punished if Grader don't buy your solution. Too much Human Factor.
    3. For the similar mistakes, different grader gives different deduction. Understand, it's honest judgement/mis-judgement by grader. It's very difficult to maintain the rubric for problem with open ended or too many different types of solutions.
    4. All those proves have little use in real world outside academia. The amount of time students spent on this, could be used for learning something useful.
    5. I was in a study group where noticed most smart student or student with conceptually better understanding.....do not get good points in those written HW/Exam questions. Student's who memorize the Jove's template do much better.

    Suggestions for improvement:

    1. 75% points on Exam is too harsh.
    2. Either totally remove / significantly reduce written HW & exam questions.
    3. Exam should be MCQ, fill in the blank questions OR questions with unique answers. It can easily be done, just need creative thinking & willingness to change.
    4. Quizzes & Coding Projects were very helpful. Forced to revisit lecture contents & understand to solve those. These should have more weights. May be add more quizzes and complex coding projects.
    5. In every assignment, HW, quizzes, exam questions........... Please justify, how this will be useful in real world.

    Rating: 1 / 5Difficulty: 4 / 5Workload: 30 hours / week

  • Georgia Tech Student2022-04-28T22:13:37Zspring 2022

    Some graders are there just to fail you. If you take this course, you will see what I mean.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • Georgia Tech Student2022-04-28T15:17:59Zspring 2022

    This was my last class of the program, and also the first class I've had to repeat. In Fall 2021 I failed with a C, and in Spring 2022 I passed with a B. If you don't put in the time to understand the material, you will not do well. That part is on you.

    Now for the part that is on the instructional team, grading. You've seen it 100 times already, grading is inconsistent. The staff contend that they "calibrate" errors they're seeing in submissions to come up with a rubric and the corresponding penalties. There was also mention that while you're not told which TA graded your submission, they are assigned randomly instead of grading the same students the entire semester. Nonetheless, be ready for hefty penalties that are seemingly at the command of the grading TA's discretion. Clearly, a published rubric would solve this problem, but the staff refuses to provide one for any assignment.

    Also, the staff said very contradictory things such as: "this is NOT a math class", then, "this IS a math class!", then "we will not try to trick you on the exams", we had several tricky questions both semesters, clearly aimed at mass confusion. Don't expect points back if you're confused and select the wrong answer, you'll be the "dumb one". Be prepared to hear "you'll be sad" a lot.

    This class was designed to be difficult, and as such, prepare yourself for a stressful few months. The 75% exam weight will be your biggest enemy. The first time around, I took the final exam hoping to get my grade up to a B, but that was a bust. This time around, I didn't need to take the optional final because I had a B before the final exam window opened. If you've taken an algorithms class before, you may breeze this one, but, you must answer in the expected format or "you'll be sad".

    Tip: If you feel that you may be in a position to repeat the course, do not drop, and save EVERYTHING (if your GPA can take the hit). Save all the examples so you can study them and understand the details. Write down all exam questions, save office hours videos, save your homework answers, save your quiz answers, save your project code. Having this available to you the next time around will save you a lot of time, and allow you to practice more problems and understand the concepts.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 15 hours / week

  • Georgia Tech Student2022-04-27T22:54:56Zspring 2022

    This was my eighth course in the OMSCS program. I took it during the Spring 2022 term. I didn't have any real algorithms course during my undergraduate, and if I did, I probably forgot most of it in the 15+ years since getting my degree. It is encouraged to form teams to work on homework concepts, and this is definitely crucial as you will need a support system. The class has 7-9 polls (quizzes) projects, 3 exams, 10 homework assignments, and 3 coding projects. There is an optional final exam. This course is definitely a struggle and battle for the grade you will get. Unless you work with algorithms in your profession or have taken the class (or similar class) before, be prepared to work and invest some serious time into catching up and keeping up.

    Coursework

    • Homework (10%): There are 8 homework assignments. These are focused on the lecture and reading material for the current week. Normally, there are some ungraded sample problems as well as 2 graded problems. During the mid-week office hours, the answers for the ungraded questions are discussed and released, to give you an idea of how to find a solution as well as the expectation of the structure of your answers. You have 1 week to complete the homework, and the solutions must be typed and submitted.... you are not allowed to turn in handwritten solutions. This can be a challenge when trying to type out algorithms and graph information into Word or in Latex format. You are not given a rubric or expected performance of your algorithms. If you come up with a solution which takes O(n log n) and they expected better, no matter how correct your answer is, you will lose points for having a suboptimal algorithm.
    • Polls/Quizzes (6%): There are 7-9 quizzes (sometimes referred to as polls). These normally consist of 1 question, and each poll/quiz is worth 1 point. There is no time limit and open everything. You can actually start the quiz, navigate away from it, and finish it later. Also, you get 2 attempts at the quiz, unless it is a T/F quiz, in which case you only get 1 attempt. Mostly easy points, if you understand the material. An RSA quiz was added, consisting mostly of modular arithmetic. It counted for 2 of the total points available for the polls/quizzes.
    • Coding Projects (9%): There are 3 coding projects. These are very simple and straightforward projects. They involve implementing some algorithm discussed during one of the weeks. The language of choice is Python. You are normally given empty functions, and you just have to fill in the details pertinent to that function (with limited guidance and vague expectations I might add). Project 1 was the Knapsack algorithm. Project 2 used Divide and Conquer to find a given index within a sorted, infinite array in a given number of lookups or less. Project 3 was using path compression and Kruskal's algorithm.
    • Exams (75%): There are 3 required exams worth 25% each. These are not cumulative and cover material since the last exam. They are closed everything. You have 2 1/2 hours to answer 8 multiple-choice/true-false questions and 2 open end (free text) questions. These questions are very similar to what was asked on the homework assignments. You are allowed 5 sheets of paper. The exams are proctored through Honorlock.
    • Final Exam: The format of our final exam only consisted of 3 free-text responses with a 3 hour time limit. The only difference is the final exam is cumulative. If you have an A at the time of the final or taking the final won't bump you up to the next letter grade, you are not allowed to take the exam. However, if you don't have an A, you can take the final, and it will replace the lowest of your other 3 exams (if you score higher on the final than one of the other exams).

    Take-Aways

    • Miscellaneous Stuff: There is a curve in the class, which can get larger if need be. Initially, A=100-85, B=85-70, C=70-50, D=50-40, F=40-0. They do not round, so if you get an 84.9999, you get a B. Again, the "cutoffs might be adjusted, but only in the downward direction (to make letter grades higher)." The final letter grade cutoffs for Spring 2022 were: A=100-82, B=82-67, C=67-47, D=47-37, F=37-0.
    • Homework: The homework can be a nightmare. Be prepared to read a couple hundred comments in Ed for each homework problem and what is being asked. Be sure to type out your answers and not not write and scan them into a document. The tasks are normally: explain your algorithm, explain why it is correct, and analyze the runtime. For some of the questions, you will have to decipher what the question is asking as some questions can be a nightmare due to the wording.
    • Lectures: The lectures are from when the class was originally created. They seek suggestions on making it better, but it is obvious they have no intentions on updating it any time soon. Several of the lectures are nothing but proofs, but when you get to the homework, you are expected to know how to solve a problem after having only been exposed to proofs. You may find yourself many times trying to learn the material on your own as the lectures may be close to useless.
    • Textbook: There is a required textbook. It is Algorithms by Sanjoy Dasgupta, Christos Papadimitriou, and Umesh Vairani, often referred to as DPV. The ISBN is 9780070636613. There is also a book some people will reference to help in understanding algorithms. It isn't required, but can be helpful. You may be able to find PDF versions of these books online, if someone doesn't post a link in Ed.
    • Projects: The projects are interesting and relevant to the course. They show how to take various algorithms and implement them. Most of the coding can be done in a fairly short amount of time. This is especially helpful because the week the project is due normally has a homework assignment due as well.
    • Exams: There are 3 exams, and they are killers. Each exam counts for 25% of your grade. If you are able to take the final (do not have an A average at the time of the final), the final will replace your lowest exam if it will bring your grade up. The difficult part about the exams is they are similar to the homeworks. If you don't understand the homework, it will show on the exam. Also, it is stressful knowing that, while you may have spent 4 hours coming to the correct dynamic programming solution and typing it out in Word, you now have about an hour to do the same thing on the exam. That is, the exam is 2.5 hours long with 8-10 MC/TF questions and 2 free text answers. If you spend 0.5 hours on the tricky MC/TF questions, that leaves you 2 hours to solve 2 questions by finding their formula and typing out your response.
    • Professor and TAs: The entire teaching staff was pretty decent. Rocko definitely has a passion for the course, but he can be pretty blunt and short at times. Joves is amazing. He releases the notes he took when he was a student in the course. They are vital and should be studied and understood in depth.
    • Overall Grade: I put a considerable amount of time in this course (over 293 hours to be exact). In the end, my grade was 68.46, which got me a B.
    • Final Gripe: I know this OMSCS program is designed to be challenging and make you work for your grade. I know this is a hard course. But, from my perspective, you are doing something wrong when:
      • The average for exams is barely the cutoff for a B (i.e. the average for Exam 1 was 71.9, Exam 2 was 75.7, and Exam 3 was 73.98)
      • You use the original videos created for the course and do not update to fix identified problems
      • Students have to go watch videos and read articles on how to accomplish tasks because explaining proofs doesn't really explain how an algorithm actually works
      • Students have to read through 300+ comments to understand a homework spec because the provided spec is so vague, or students have to dig through the comments in 1 of the 3 Ed posts for a given homework just to find out the expected format of the answers because they were not outlined on the homework
      • Lectures incorporate a "quiz" with no explanation on what is expected as an answer and the "answer" to the quiz is a screen with the answers and zero explanation on how to solve before or after the quiz
      • You accept 0 reasons for not being able to take an exam
      • A student is looking forward to having a medical procedure performed instead of dealing with the class
      • You have to curve a class to where at least a 67 is a B

    TLDR

    Get ready to have little to no social life, put stress on you marriage (like myself), and spend time teaching yourself concepts just to grasp the material just enough to edge out with at least a B. This class is completely theoretical. Don't expect it to be a lot of coding or application of concepts. Be prepared to think from a higher, more conceptual level. If algorithms, Big-O notation, logarithm, graph theory, modular arithmetic, Dynamic Programming, Divide & Conquer, algorithmic proofs, Linear Programming, or NP-Completeness are new or rusty to you, brush up. I cannot express this enough... review those concepts. If you come up with a O(n log n) solution and the instructional staff expected O(n), you will lose points, even if you have a correct solution. Listen to Joves. Study, understand, and maybe even memorize his notes. Give him thanks for all his help and work. Be part of a good team, and communicate with them. Do the ungraded sample problems. Do some of the exercises at the end of the chapters. Stay up-to-date or work ahead. Be prepared to spend a considerable amount of time dedicated to this course. Prepare for the stress and sometimes morale crusher. Prepare to spend a lot of time studying for the unfairly weighted exams. In the end, the course teaches you a lot of concepts and alternate ways of improving on performance and efficiency of algorithms. Don't judge your competencies by your grade or the grade of others. Some people get it pretty easy, and others will struggle. Just push through, learn, curse, kick, and scream along the way. Just keep going.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 19 hours / week

  • Georgia Tech Student2022-04-27T05:03:52Zspring 2022

    Honestly, the class is not nearly as hard as some of the other reviews have made it out to be. This semester I worked full-time, was enrolled in another class, and was traveling a good number of weekends to interview at various graduate programs - I devoted ~7 hours a week (about an hour a day) on average to this course, including watching the lectures. It was certainly a difficult class but totally manageable as long as you study the provided material. My background is not in CS but I have about 5 years of SWE industry experience so YMMV.

    For the exams I reviewed Joves' notes and skimmed the homework for the unit. I didn't do a single practice problem for an exam and ended up earning a strong A (not endorsing this approach by any means, just pointing out that targeted studying is all that's needed for exams). I also didn't read any of the assigned chapters in DPV and was fine. Exam grading was fair, expectations for answer format for the long-form questions was clearly stated (contrary to what some other reviewers are saying...)

    I found the lectures engaging and they piqued my interest in algorithms in general. In particular the FFT module was eye-opening for me (is there anything that algorithm can't be used for?). The content on NP completeness was also of great quality. This was my last course in my OMSCS degree and I can confidently say it was the best of the 10 classes I took.

    The only minor gripe I have with the course is the TAs. HW grading, as mentioned in many other reviews, is really all over the place. For example, on two separate HWs I was docked 6 points and 2 points for making the same mistake: analyzing the runtime wrong. Didn't affect my overall grade, but annoying when each hw problem is out of 20. The head TA has a bit of a superiority complex that shows up in responses on Ed Discussions (many of my classmates made the mistake of asking stupid questions).

    Rating: 5 / 5Difficulty: 3 / 5Workload: 7 hours / week

  • Georgia Tech Student2022-04-26T15:40:14Zspring 2022

    This was definitely a difficult course, but I enjoyed every bit of the material. This is the type of quality course that I expected from a graduate degree.The grading is definitely tough & requires a keen attention to detail.

    Keys to success:

    • watch the lectures multiple times.
    • YouTube some of the concepts as they are presented better there in many cases. FFT, in particular, is presented really well in some YT videos. Also, Abdul Bari has a great series of videos on a lot of the algorithms from the course.
    • attend/watch the OH with the TAs & Dr Brito.
    • do not let yourself fall behind in the material.
    • practice, practice & practice the problems thoroughly until you get it.

    Don't let the negative Nancys & Nicks in the reviews scare you. This is a good course & you will learn a bunch!

    Rating: 5 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • Georgia Tech Student2022-04-26T01:34:10Zspring 2022

    In order to ace this course one needs to deeply understand the topics. The exams test one's ability to generalize, and apply the concepts. Anything that is shallow will get exposed by the exam and cause sadness. Dr. Brito keeps the exams fair, and focuses on fundamentals. If you cover the fundamentals(not the fancy stuff) really well, and manage exam related anxiety/stress then you've got this! There is a lot of misinformation about this course in the other reviews related to grading, unfair nit-picking, study group is a must etc.

    TA/IA team is rock solid, just pay attention in OH, practice a lot, and have faith that everything is designed in order to help you succeed. I had a complete mental breakdown on the first exam(my fault), and still ended up with a grade I wanted without needing to take the final exam. Please do not panic, you've really got this! Just have fun with the course, and a delightful team of instructors, optimize on learning (grades will follow).

    #igotout

    Rating: 5 / 5Difficulty: 4 / 5Workload: 30 hours / week

  • Georgia Tech Student2022-04-25T22:43:26Zspring 2022

    I put difficulty as very hard but it's not from the lecture materials. The contents they cover during the course is not even challenging. The "very hard" part is the way they evaluate students. It's my "strongly disliked" part as well. The exam grading is extremely harsh on purpose and random. They will force you to write the answers in a specific format and if you miss any, they will simply take off points. When each exam weights 25 percents of your final grade. The point reduction from formatting mistake hurts. I understand there are thousands of pages they need to grade, so a certain formatting is set for their convenience. But, I am just curious why they don't make the exam having all multiple choice questions with various level of difficulty. That way, there is no confusion and fury on highly randomized and subjective grading. They will probably defend their current system with numerous pretty-sounding reasons like how they do when it comes to regrade request. Simply a worst learning experience during the OMSCS.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • Georgia Tech Student2022-04-25T17:26:13Zspring 2022

    As my 5th course in the program, I can say I learned a lot from this class, while it's also my least favorite.

    What's good:

    Lecture videos and textbook; Rocko's Office Hours; Joves' Notes; and some comments left by TA in my HW and exam grading.

    What's bad:

    In general, the instructing team gave me an impression that they hold students as their opponents. They habitually talk down to students. For example,

    "A reminder that the exam is considered confidential - information regarding the exam content may not be shared in any public forum (#slack, WeChat, etc)." This is a blatant violation of 1st amendment right. I do not believe the TAs have the legal power to stipulate what students can and cannot say.

    "You are prohibited from discussing the content of the exam in any public forum such as #slack. Please restrict your discussions to this forum": Same as above.

    "Regrade requests of the form "I only need x points for [ an A | to graduate | etc ], can you please look again?" will not be tolerated. ": Wouldn't it be better to use "honored" instead of "tolerated"? Is this a higher education institution, or a prison?

    Also, TAs' grading is wildly unpredictable. I guess they feel free to say whatever they wanted to say, because they don't have to reveal their identity. This anonymity might seem a safe harbor for TAs, but eventually it hurts their performance and their reputation, badly. They can sometimes even get verbally violent if you challenge them about your grading.

    I feel working as TAs for this class is tedious work. They have to deal with hundreds of students, and not all students are smart. A lot of them ask dumb questions. I get it. I would lose patience too. This might probably the reason why TAs are so easily irritated in their interaction with students.

    Rating: 3 / 5Difficulty: 4 / 5Workload: 25 hours / week

  • Georgia Tech Student2022-04-25T14:56:05Zspring 2022

    Many sentiments reflected in the reviews are very accurate.

    Grading: haphazard There is no consistency in grading. Even if your answer is correct, but they are expecting a specific word, you'll lose a lot of points. e.g. if more than one solution is correct, "Any solution obtained ..." is docked 4 points off. Expected word is "Pick one of the solution ..."

    Exams: It all boils down to whether you can come up with relevant transformations or not and whether you can remember and follow exact steps expected by Grading team. Even if your answer is correct - but does not match Rocko's solution, you'll be docked points heavily. While Rocko states that we will consider the solution, you'll have to present your solution to peer feedback. Once assessed, there is very little chance that you may get a upward grade movement, but there will be a downward movement. The TAs will say anything to defend their comments. That said, some TAs provide proper feedback.

    Practice homework assignments in "notepad" - single font, no size difference -- no formatting. The graders may not read through the entire solution or make an effort to understand it. They have 100s of assignments to validate within a few days. It is your responsibility to make sure you present what you want them to see.

    In exam, table in canvas for demonstrating the working of algorithm logic, exported to gradescope messed up completely. The grader knocked off points severly and commented "I do not understand this, hence this must be wrong". Did not even make an attempt to read through the content.

    It always helps to get full points in Projects and Polls as they are not subjective.

    Make sure to pray you get a good grader.

    If you perform bad on the first exam, there is always chance to recover, but if your assignments and exams 1 have been class median or less, it is recommended to register for the upcoming terms.

    The attitude of TAs and Graders are bad if you ask clarifying questions or want to understand more.

    From earlier statistics, about 10% of students drop after exam 1 and about 5% get grade C or less. In a class of 900, 15% that is about 135 students !!

    This class leaves a very bad taste at the end of OMSCS.

    Anyhow, Good luck with your course.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 40 hours / week

  • Georgia Tech Student2022-04-25T12:55:41Zspring 2022

    Honestly, this class was both terrible and good at the same time, but my main takeaway was that it was much easier than I expected (based on the reviews here). I was stressed out the entire semester because I was dead set on getting an A (getting an A is not easy), but you can very easily get a B with minimal effort. All you need to do:

    1. Keep up with the lecture schedule and homework. Make sure you have a high level understanding of the lectures when you watch them. You don't need to understand the math in detail, a high level understanding is enough.
    2. Cram Jove's notes during the weeks of the exams. This is really all you need for this course.
    3. You should at least get a B or higher with only 3 weeks of intense studying.

    I put in 30 hrs a week (homework, lectures, studying) leading up to the first exam, 10 hrs a week before the second exam; I was burnt out by then, so I only studied a day before the third exam. I still got an A in the class. And I'm not good at Algorithms. I'm not stupid, but I've bombed every technical interview I've ever had. In fact, I've never gotten a job offer from an algorithm-based interview. Also, I did not study CS undergrad, so I had never taken an Algorithms course before this one.

    This was actually my least favorite class in undergrad or graduate school, but most of my issues with the class are really GT's fault, rather than the class's fault. My main complaint about the class itself would be that the grading was too subjective and random. Otherwise, this course is ok overall. I did enjoy the material. The TAs that you see (posting and OH) are active and generally helpful. Students in this class are generally more helpful than they are in other OMSCS classes.

    Pros:

    • Easy to get a B or higher
    • Helpful and active TAs on Ed/Slack (especially Joves)

    Cons:

    • Grading is too unpredictable
    • Having most of your grade depend on having 3-4 good days, rather than consistent effort over the semester (a lot of other OMSCS classes are project based, and I've come to appreciate that)

    Rating: 3 / 5Difficulty: 3 / 5Workload: 12 hours / week

  • Georgia Tech Student2022-04-25T04:55:20Zspring 2022

    I spent my entire degree worrying about this class and it turns out it is actually OK. Not too easy and not too hard. I got an A in it with a moderate amount of work put in. But whether you find this class difficult and stressful will depend on a couple of things:

    • Are you familiar with DP and Graph algorithms already? This class goes over these topics quite quickly. DP was only 2 weeks of the entire semester, yet you are expected to be an adept at it by the time you take the exam. Luckily I already knew quite a bit of DP and Graphs before coming to this class so I did not find this very challenging.

    • Can you clearly explain your algorithm in english? 3/4s of the class is about writing essays where you explain your algorithm in words instead of pseudocode. If you are not a native english speaker you may struggle with this. Even if you know the answer to the question, you need to be able to properly explain it in words clearly and organized so that the TA grading you can understand your logic. TAs are not magical beings who can read your mind, you need to explain your algorithm as well and simply as you can.

    Below I give a couple of tips to succeed on this class

    • Watch the lectures a semester ahead before taking the class. Part of the reason people struggle is because there is so much material covered in the class, and they go over it quite quickly. There are like 10 topics and the go over each in a week or two. Watching the lectures ahead of time (and taking notes so that you can review them when class starts) will allow you to focus your time on doing practice problems and preparing for the exam instead of watching lectures.
    • Study DP and Graphs before starting this class. You do not have to be an expert, but having a good overall understanding of these topics before the class even starts will make things less stressful and give you more time to practice as well.
    • Practice as much as you can. Algorithms is a topic that only comes with practice.
    • Do not waste your time on leetcode. I personally think leetcoding is useless for all topics covered in this class except DP.
    • Read Joves notes very carefully. He goes over every nook and cranny of all topics covered in class. Pay attention at how he writes the algorithm solutions and pseudocode, you will want to mimick it on the exam.
    • Study very hard for Exam 1. If you do well on Exam 1, you will not be too stressed for Exam 2 and Exam 3, allowing you to be less nervous and perform better. Your experience and stress in this class will probably heavily depend on your score for exam 1. However, do not be disappointed if you perform poorly on it either. I saw many people do bad on it and still pass the class no problem.
    • Join a study group. Everyone is on the same boat as you, and their encouragement can help you keep going in times of stress.

    Overall I enjoyed the class. I thought it would be much harder than it actually was. In fact, i think it was a pretty easy class, but I think a medium score is more representative due the wide range of student backgrounds and due to the stressful nature of an exam-based class. It is easy but stressful, if that makes sense.

    Rating: 4 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • Georgia Tech Student2022-04-24T21:08:00Zspring 2022

    Least favorite class in the entire OMSCS (will get an A in it). At most this is a half-hazard undergrad intro to algorithms course. The idea this is a graduate class is laughable. If you struggle in this course, it is not a representation of you or your ability to learn algorithms properly but rather a representation of how poorly designed this course is.

    Cons:

    • Grading is all over the place. 100% guarantee you could turn in the same assignment to different graders and get completely different outcomes
    • Lectures are terrible and outdated. Also tons of material that the class doesn't even bother touching upon. The idea that this class relies so heavily on Joves notes is telling of how lazy the instructors truly are
    • Instructors are more interested in you memorizing patterns rather than you learning actual algorithms

    Pros:

    • Like 90% of the class ends with an A or a B so we can all pretend we are smart and learned a ton when in reality it couldn't be farther from the truth

    Overall: Unfortunately most people need this class to graduate so you can't avoid it but if you are at all interested in actually learning algorithms and applying your knowledge, this class is the farthest thing from it. Once again, this isn't a shot at the TAs. I enjoyed them overall if there was any silver lining to this course

    Rating: 1 / 5Difficulty: 1 / 5Workload: 5 hours / week

  • Georgia Tech Student2022-04-24T18:35:06Zspring 2022

    This was my 8th class in the program (CN, IHI, GIOS, CP, AI, KBAI, VGD, GA). I've only taken 1 undergraduate data structures course. My only preparation was buying & reading the textbook early. I am not a math/CS/CE major. I did not need to give up my personal life (I bought a condo & moved early in the semester). I achieved a strong A. I say all this to emphasize that you don't need to already be an algorithm expert to perform well, you just need to dial in to expectations & get it right the first time.

    I am in the Interactive Intelligence specialization and had many internal debates about voluntarily facing the stress & grading of this class. My justification was: a B or even a C in GA is more valuable for my career than an A in SDP. This is a rigorous & demanding math class, but I'm pretty sure the undergraduate algorithms at UCSD & Berkeley (same content & textbook) use much harder problems.

    I want to address the main question first: what is up with the grading? The TAs have explained that every deduction is calibrated based on the frequency across the class, the severity of the error, and the magnitude of runtime impact (if applicable). Multi-part questions grade each section independently which can help or hurt your grade based on the nature of the error. The TA team makes an honest effort to mitigate trivial & common errors. This also means there is no answer to whether "correct & slow" is worth more/less credit than "incorrect & fast". For some problems there are near-infinite possible solutions if the solution is correct & intelligible, established through proper formatting. The best option is to choose the obvious & simplest approach to maximize partial credit because it's way easier to understand where the solution falls short. Yes, this system includes subjectivity and variability, but I haven't seen anyone offer a better alternative without full autograding.

    If you need to submit a regrade request, you should strive to be as objective as possible. The TAs are not antagonistic, but they will reject any appeal to "fairness" if you cannot construct a logical argument to counter the deduction & grading comments. Implications do not exist in this class. Required info is either provided in the solution or it isn't, so "I meant..." arguments will almost always get rejected.

    The grade cutoffs for Spring 2022 were adjusted by -3:

    • A = [82, 100]
    • B = [67, 82)
    • C = [47, 67)
    • D = [37, 47)
    • F = [0, 37)

    General Tips

    • Joves's Notes. Joves remains a TA as of Spring 2022 and his notes are still unofficial. Joves asks that they remain private to the class. They are so useful because they demonstrate the minimum content required for full credit, whereas the official solutions provided by the class are verbose & unorganized (and occasionally had mistakes or missing required info). The fact that these notes aren't an official resource is frustrating and jeopardizes future iterations of this course if they ever become unavailable.
    • Yes to Office Hours. The Head TA & the Instructor each hosted a Office Hours section most weeks to review the content and solutions from the previous assignments. You should treat these as mandatory: they provide many additional hints on expectations & potential problem scope.
    • Don't sweat most of the proofs. For the in-depth topics (FFT, Image Segmentation, Approximation), you don't need to master most of the proofs demonstrated by Dr. Vigoda; understanding the implications is sufficient. This is not a proofs-based course. The exception is NP-Completeness with reductions.
    • Study Groups... You're allowed to talk about answers "at a whiteboard level" with a private group. Most of my peers couldn't eloquently explain their approaches, so the quality of the discussion was usually better on Ed.
    • Carve out time. I took a day off work to study for each exam by rewatching all lectures & reviewing all relevant problems from DPV. You could get lucky and review the exact problem in DPV used on an exam...
    • Find the "expected" approach. Our toolbox is limited enough that any given problem has only 1 or 2 straightforward solutions, with minor variations. There are near-infinite possible solutions, but most will be very hard to explain clearly for full credit. Creativity will almost always hurt. For most in-scope problems, it should be immediately obvious which approach is expected; the other half is simply executing on the template details.

    Exams

    Each of the 3 exams during the semester covers 4-5 weeks of class content, weighted 25% each. They are proctored with the infamous "room scan" rules and no books, no calculators, no notes, 5 sheets of scratch paper. 150 minutes per exam, no bathroom breaks (unless you have an approved medical accomodation). All answers are provided through a Canvas quiz, including the free-response answers. No handwritten answers allowed.

    The TAs actively discourage using the LaTeX tool provided by Canvas because the exam responses are exported & graded in Gradescope. This mangles the formatting. You should be comfortable with the approved plaintext syntax. The export will even mangle standard Unicode (e.g. ≤), so you should practice without them.

    Exam 1

    This exam is the most intimidating because students can't predict the expected level of difficulty (the Homeworks & Practice Problems are inconsistent) and most reviews suggest that this is the most difficult exam. Many reviews say "it's just like the HW or practice problems" without explaining how similar.

    From my experience, the Dynamic Programming and Divide & Conquer problems were not recognizably similar to the homework problems. They weren't difficult, but the application of the pattern was unfamiliar to me.

    You should not expect a free-response question to require Chain Matrix Multiplication, Bellman-Ford, or Floyd-Warshall. Focus on LIS, LCS, and Knapsack for the exam.

    Exam 2

    In contrast to Exam 1, these problems did mirror available problems. P1 was a variation of a homework problem which used a different blackbox algorithm, but the same interpretation of the output topological sort. P2 was a reworded problem from the book which was not a Practice Problem, but is listed on a old OMSCS Wiki. Due to this similarity, I felt this exam was the easiest of the 3.

    Exam 3

    Exam 3 featured 2 NP-Complete reductions. The scope of known NP-Complete problems was limited by Dr. Brito down to a very small set covered in lectures and the transformations were simple (e.g. graph → graph reduction).

    Similar to Exam 2, 1 problem used a similar technique to a graded homework problem and 1 used a similar technique to an unassigned problem from the book.

    For practice, I strongly recommend reviewing George's Notes which contain (partial) solutions for most of the NP-Complete DPV problems (although his 8.19 solution is insufficient).

    Final Exam

    The format is slightly different for this exam: 3 long-format questions, cumulative, 180 minutes. I didn't take the exam, but based on solutions posted in Ed, I'd rate the problems similar or slightly easier than the previous exam questions.

    This exam cannot lower your grade: if the Final Exam is lower than the 3 Exam grades, then the Final Exam grade is not used. Otherwise, the Final Exam grade replaces the lowest of the first 3 Exam grades. Grade cutoffs were announced the weekend before the Final Exam.

    Homeworks

    We had 8 homeworks total, 2 questions each. The level of challenge & depth was inconsistent: some problems were reasonable on the level of exam questions, while others were substantially harder and mostly irrelevant (e.g. FFT applications which would never appear as free-response exam questions). I also felt that some questions required unintuitive "tricks" where you'll need to rely on online material or sharp teammates to discover the "expected" approach.

    My advice:

    • Learn the format early. Due to the size of the class, the TAs cannot return grades for HW1 before HW2 is due. This means that students do not recieve formatting feedback on a graded assignment and risk making the same avoidable mistakes on both assignments. When in doubt, copy Joves.
    • Practice in plaintext. Write the answers to the homework problems in a monospace font in a word processor. LaTeX answers are nice and looks great on Ed (class forum), but disallowed for the exams, so this is an opportunity to practice the exam format.

    Coding Projects

    These 3 assignments were among the easiest coding projects I've completed in the program. These can be completed in ~1 hour each with less than 50 lines of code, translated directly from pseudocode in the book.

    Unfortunately, they don't run all unit tests until after the submission deadline. I think it's mean to have "no-feedback" grading for the code, just like the homeworks & exams. The class does allow sharing unit tests, so your generous peers will likely share enough to build confidence in the implementation.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 25 hours / week

  • Georgia Tech Student2022-04-24T18:09:21Zspring 2022

    Nicely organised course.

    The content thought in the class closely follows the DPV Algorithms book. The video lectures are good and Prof Vigoda nicely presents the ideas. TAs are helpful and post helpful content on Ed. Joves' notes are very useful for review after watching the lectures. Rocko's office hours can also serve as good review of the lecture content. I felt the course is scheduled properly to cover the course contents.

    Since most of the work is graded manually, it is expected that students follow certain guidelines while writing homework/exams. The guidelines are posted for three sections of the course. This is important and if not followed can result in penalty (can be large). Joves' notes contain review of the lecture as well as solutions to the practice problems. I tried to mimic the format of the solution in Joves' notes (also used same font) and that worked fine for me.

    Questions on the three exams seemed fair. Although homework have less weight, they are helpful to understand what kind of questions can be expected in exams. For the exams preparation, I felt it was helpful to also solve questions from the textbook. Coding projects are easy but it is recommended to test your solutions with student curated test cases.

    Workload is constant through the length of the semester. There is a Homework/Coding Project/Poll/Exam due every week.

    Rating: 4 / 5Difficulty: 3 / 5Workload: 12 hours / week

  • Georgia Tech Student2022-04-24T11:33:53Zspring 2022

    Interesting content with good lectures, the key to success in this subject is understanding the answer requirements and formats for each section of the course, following the homework discussion threads on Ed, watching Rocko's office hours and completing all of the assigned DPV questions without using solutions.

    Grading can be strict with certain mistakes, but most of these can be avoided by following the advice from above.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • Georgia Tech Student2022-04-23T21:23:30Zspring 2022

    Great lectures and instructor team, but grading is unnecessarily way too harsh on purpose. The intended stress did not improve my learning experience at all.

    Rating: 1 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • Georgia Tech Student2022-04-23T20:32:08Zspring 2022

    I understand there are a lot of frustrations with this course in the Spring 2022 semester. I am also one of the students who have a terrible experience.

    First of all, this course is no way near being a bad course. The lectures are very well-organized and easily one of the best in the entire OMSCS program. TAs are very responsive in ED Discussion. Homeworks and coding projects are helpful for you to understand the materials.

    The only terrible part of this course is GRADING. I believe most of the TAs are good but some grading TAs among them are very careless, unprofessional, and so sometimes very irritating when you read their comments. What is wrose, any regrade request is sent back to the same TA who graded you before, and they are usually very defensive about their statement.

    Rating: 3 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • Georgia Tech Student2022-04-18T18:36:40Zspring 2022

    Don't be afraid of this class. It is not that bad! Yes, you will have to study for exams, you will have to do the practice problems even though they aren't graded, yes you will have to watch office hours, especially the ones where they go over the homework answers. And yes, you will have to complete you assignments/exams in the exact specific format that they require, but they tell you all this so you just have to suck it up and give them what they want. It's not hard! People have complained that the graders and biased or that certain graders are more nitpicky than others, but I haven't experienced that, and I don't know how anyone would know, as they don't tell you which grader graded your assignment. The only negative I really have about this class is that it is non-stop the entire semester. Every single week there are lectures to watch plus an assignment & quiz, or an exam. No down time the entire semester. But otherwise it's totally doable, even if you don't have a CS undergrad (by the time you're in GA, you're pretty much done with you CS masters so no excuses there). Don't let these other reviews scare you away, and don't settle for an II specialization just because you're nervous for GA. You've got this!

    Rating: 4 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • Georgia Tech Student2022-04-10T05:06:42Zspring 2022

    This class was... fine. I'm better off as a programmer now that I've gone through it, but did I get $800 worth of content? Doesn't feel like it. I enjoyed the book and the lectures and I recommend using both. Everything else was forgettable. The Slack channel is useless because you're not allowed to talk about problems. I didn't get much out of Ed besides some guides on how they want us to do write-ups. TA's seem to know their stuff which is always good. Rocko is very active on Ed but it's a coin toss on whether or not he's helpful. I tried to attend his OH but his attitude is off-putting so I stopped and haven't felt like I've missed anything. I didn't know the professor's name through most of the semester, he doesn't have much of a presence on Ed. He has OH sometimes but I never went.

    I was able to get nearly perfect marks on all the homework. To that end, I strongly advice reading and rereading the posts the TAs provide on their expectations of homework format. The projects were quite easy and I didn't feel like I got anything out of them. However, given how many hours I had to spend on homework, I didn't really mind.

    The exam difficulty is fair and I recommend doing the practice homework and as many book problems as you can. However, the actual exam questions could be better written and the grading rubric disincentivizes you from trying to get an optimal solution; if you are not totally sure of your solution you are better off giving a suboptimal one rather than one where you try but fail to be efficient. In my opinion this decision makes for subpar educational content. That is, a decent study strategy is to ignore learning all the interesting algorithms and just be sure you can give a brute force solution because that is worth about 14/20 points, but if you give an almost correct efficient solution, that is worth about 7/20 points.

    As far as how this course relates to job interview questions: I'm happy with what I have learned but I take it to be a just good first step on my way to getting better at interview algorithm questions. That is, I now have a decent foundation upon which I can build. I did not mind the formats of the homework because they are designed to help you solve the fundamental algorithm problem at hand. In other words, understanding how to solve the algorithm question and how to implement a solution are two different problems and the class will only try to help with the former. I think this is the way it should be and for all the reviewers who disagree; we already have leetcode, take the theory you learn in the class and go practice problems there like you would have anyway. Even if the class did try to teach to the interview questions, do you think it would do a better job than leetcode? No it wouldn't, and we would all just be worse off. I can understand all those frustrated with having to solve the problems via writing, but that just tells me you have not done much technical/academic writing. Expressing yourself clearly and precisely to explain a technical solution is an important skill and I strongly advice taking this as an opportunity to practice.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • Georgia Tech Student2022-03-28T03:40:41Zspring 2022

    This course is very helpful to help you prepare for an algorithm interview. It touches some categories of medium+hard questions on Leetcode. It helps you establish a paradigm for solving those type of problems, instead of just memorizing the solution for any particular problem. The TAs are also helpful. They created study notes and helps clarify questions on the Ed. The lectures explains things well enough so that you rarely need to reference the textbook. Before taking this course, I thought this is just mandatory course you have to take no matter what. But it turns out to be far more useful than I thought.

    The workload is light and well spaced over the whole semester. Each week you either have a Homework, a coding assignment or an exam due. So you can focus on one thing at a time. You don't need to worry about lagging behind either as the deadline for every item is exactly one week. One thing to be careful is the quizzes. Their due dates are not published ahead of time, so you have to follow the weekly announcement very closely.

    My only complaint is that TAs in this course tend to make mistakes when grading homework or exams. I totally understand this as it is a huge amount of work given the amount of students in this course and the solutions are like a small essay, which are tedious to read if it is not close to the solution. For students, this means you need to routinely check if there is an error in the grading and request for a regrade whenever it is warranted. Be prepared to argue with the TAs to get the points back.

    Rating: 5 / 5Difficulty: 2 / 5Workload: 10 hours / week

  • Georgia Tech Student2022-03-18T02:23:03Zfall 2021

    This course is a disaster. The professor is absent and the grading scheme basically allows TAs to reject correct solutions because you didn't present the solution in the specific way they wanted to hear it. There is a clear aura in this course that belittles the students. I felt the persistent tone of - "We are the staff, and we are god's gift to earth. You are just a dumb student"

    You can't use real code to answer the solutions like in a FAANG interview. You have to use their arbitrary notation when "coding" the answers. Why even bother coding then?

    My biggest concern is that this course is required for graduation. A small group of elitist TAs should not be the sole deciding factor towards who gets a degree and who doesn't.

    For full disclosure, I escaped with a B. I am an interviewer at FAANG and I am a guardian on leetcode (2000 minimum contest rating). The way this course tests you is not aligned with what you should expect in the real world.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • Georgia Tech Student2022-03-04T13:33:23Zspring 2022

    I enjoy learning in this course but the grading practice of TA's of this class is capricious, which is the only thing negative thing of this course, but unfortunately it does the most damage to my experience in this class. The TA did not seem to bother to read what you wrote. They often make up excuses to deduct your point. They don't have a clear rubrics to grade. Very sad!

    Rating: 4 / 5Difficulty: 4 / 5Workload: 10 hours / week

  • Georgia Tech Student2021-12-27T02:11:00Zfall 2021

    I found this course challenging but rewarding. I didn't have background in Algorithms and Data Structures before. This was my 4th course in OMSCS program.

    If you have a good study group, understand homework problems, spend enough time to understand lectures and prep for exams then you have high chances of getting either B or A. Overall, the course covers dynamic programming, graph theory and some NP theory. If you like solving problems you might like this class.

    After finishing this course, I was able to start doing DP and some graph, tree leetcode questions. I spent 30 hours per week on average to practice and understand homework, lecture problems and prep for exams. I would suggest to join study groups. I was lucky to have great study partners who explained their approach to tackle the problems.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 30 hours / week

  • Georgia Tech Student2021-12-25T11:10:40Zfall 2021

    As someone without extensive algorithmic experience or background, but having refreshed an undergraduate algorithm course before starting OMSCS (you won't need much from there on top of basic graph theory and Dijkstra), I found the material being very manageable, straightforwardly structured and study process well managed. It has turned out very much more approachable than what the story told, with no extra preparation or upfront reading required on top of general background as mentioned. The course is not too deep or too broad, I've learned quite a bit of new material and was also able to cover and understand some previously met topics better. I joined the course mid first week of the semester, prepared nothing upfront; this was my 7th OMSCS course. And yes, I do think this course is compulsory for a MSCS degree, I would consider it basic (which does not necessarily mean very easy) and covering some necessary material.

    The professor was involved with office hours, the TA staff, especially those active on Piazza and Slack, are knowledgeable and do their job professionally.

    This was also the first time the course had 800+ students (started with 900), and it was running smoothly, with instruction staff's involvement being of high quality.

    To be on a concise side and avoid duplication, here are my tips for a stable good grade in this course, including good feeling and useful learning outcome.

    • The course demands some writing "skills" involved in the assignments which seems to sometimes source confusion and frustration from some people. The main thing to understand here is that you should write your solution in a way which is unambiguous to understand, precise, correct and contain all the necessary ingredients. The format is not very picky as such, you just need to understand that it should follow the requirements.

    • The details on those requirements are well explained in Rocko's (one of the head TA-s) office hours. I would say, never miss those, or watch recorded - you will understand the needed details of what to do and what not to.

    • Be sure to present your solutions in a clear way, pay attention to details, cover the needed points. Extra text with no substance adds nothing, your solution can be quite short but cover everything needed. In some cases it might be longer - still to cover everything including the proofs if needed.

    • Structure your answer - it helps your solution to include everything with no unneeded reiterations and helps the grading not to miss anything:

      • DP: the structure is generally given: table definition - recurrence - pseudocode - running time;
      • DC / algorithms design: solution(algorithm) - correctness - running time
      • NP-complete reductions:
        1. NP proof (verify a given solution in polynomial time, show every step time in O notation)
        2. Correct direction - known problem A to the reduced one B:
          • input transformation, polynomial time in O notation
          • output transformation, polynomial time in O notation
          • solution to A ==> solution to B
          • solution to B ==> solution to A
    • Pay attention to requirements: pseudocode yes-s and no-s (Rocko's OH, again); no pseudocode (i.e. outside DP) means exactly that, use your wording as mentioned earlier, to produce clear and correct description; if no blackbox algorithm modification - do not modify any detail of the blackbox, learn and use its input and output, no extras inside; etc.

    • For the homework, do get someone to study with or at least discuss the homework solutions. If you know some reliable peer from previous course(s), that would work great, even a single person.

    This way you're done with free form answers for the exams.

    Watch the lectures and practice the material for good MCQ results.

    Do the recommended practice problems, all of them - there are not a lot. Do some extras from the DPV textbook when preparing to the exams.

    Follow Piazza threads, may also on Slack.

    Follow the regrade request threads, they give a good feeling on how the expectations go on the solutions. If you comment on other solutions, do it as a peer, no patronizing. If posting your solution when you think a deduction was genuinely incorrect and something that was clearly present in your solution was missed - have a valid case. There have been quite a few of valid regrade requests. There have been also a lot of invalid ones, or those coming out of frustration - those won't help anyone. The statements about peers commenting on solutions just to disqualify and throw the stones on the correct ones - just a load of nonsense. A peer comment is also not a final verdict of whether a regrade request would be valid, so everyone should make an informed judgement - the system will work for those taking the comments seriously, and won't for those who would try to bend the system. I personally found it pretty efficient.

    The polls (Canvas quizzes) and the coding "projects" are basically free points, make the most out of those, also in terms of study and exercise. Very straightforward, bordering on trivial - but still useful, especially the coding exercises.

    All in all, given that there is a final exam option to replace a lower exam grade, like some past review said - congratulations on that A or minimum high B, you've done well. Good luck!

    Rating: 5 / 5Difficulty: 2 / 5Workload: 17 hours / week

  • Georgia Tech Student2021-12-19T03:09:14Zfall 2021

    This course is set up in favor of the students. While the grading can be inconsistent at times, in the grand scheme of things it should not matter. I personally felt challenged and learnt a lot. We are here to learn and this course will reward your work.

    Two key points: find a strong working group; work through all the similar problems in the text book and Skiena as well. If I had done this, I could have skipped the final.

    The instructors are top class. Period. We get to learn from the best and should cherish the opportunity. Enjoy the journey.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 30 hours / week

  • Georgia Tech Student2021-12-17T21:19:00Zfall 2021

    The course is interesting, but the instructor team ruined my interest completely. The instructor Gerandy Brito appears in the office hour only several times this semester, which is far from enough. Also, he does not reply to students email. I sent him several emails this semester, but none of them was replied. A head TA named Christian Stober is always patronizing to students and does not show any respect to students. The regrading process is threatening. If you wanted to request a regrade, you first need to publish your answers in Piazza and ask your colleague students to help review. Then you can request a regrade. I do not understand why the instruction team puts the burden of reviewing students' solutions to students and glorifies the process as "helping students to learn". If students only need to learn from each other, then what's the reason to hire you TAs? We can grade each other's homework, we can answer each other's question. I do not accept such a way of treating students. Also, if you request a regrade, it is possible you will lose more points as a punishment of wasting TAs time. I guess TAs' time are more valuable than students'. I really cannot understand the logic behind losing more points when requesting a regrade. If my original solution is really poor, then why does the grader give me points that do not match the quality of the solution? It only proves the grader did not spend enough time reviewing the solution carefully. I only request a regrade once and I lost 10 more points as a result. The TA team governs the students' final grades. So I prevent myself from requesting regrade no matter how unreasonable the grade is. Also, there is a huge standard deviation between the rubrics of different graders. So in this course, you might want to pray not to encounter some harsh TAs. Luckily, this is my last course and I can escape from the instruction team now.

    Rating: 1 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-12-15T20:05:43Zfall 2021

    One of the best class of OMSCS. The TA are helpful and the content is both fair and challenging. Practice as much as you can, it will help not only with GA but also with interview prep if you are aiming for a job change soon. Honestly, if you understand the algorithms well, you do not need to memorise anything.

    DPV is an excellent book but do not hesitate to refer other books. I liked Steven Skiena's book for additional practice.

    Assignments-

    There were 7 assignments in the Fall 2021 semester. The assignments gave a good practice for the exams. Although the rubric was not disclosed but if you write a correct solution and correctly explain your choices you would not lose any points. I found that students struggled with proving correctness the most. My tip is that explain all your choices in detail, if you assumed anything explain why, also explain what made you selet a particular alogithm (for example, you would select binary search over linear search only when the data is ordered.). There is no penalty for long answers, so explain as much as you can. Review your answers as if you do not have any background knowledge. This will not only help with the assignments and exams but also help with understanding of the material and algorithms in general.

    Polls-

    Do not forget to take all polls. They give a good understanding of multiple choice quistions and may help solidify understanding of the subject.

    Coding Projects-

    Coding projects are simple but do not forget to test them thoroughly.

    Exams-

    The exams are fair and if you have practiced and understood the material you should not have any problem. The homeworks and polls will prepare you well for the exams.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-12-15T13:30:04Zfall 2021

    Last course in OMSCS and the only one in my set that's terrible in terms of quality and learning outcomes. Unless you're interested in pursuing theoretical subjects in academia in the future, the material leaves you disappointed. This course should not be made mandatory in its current format as it is designed for a particular type of student who thrives on memorizing theory and it does close to nothing for some interested in practical applications or knowledge relevant to the job market (something that fortunately lots of OMSCS courses do right).

    Cons:

    • if you are keen on getting the best grade, then you must absolutely enjoy memorizing a lot as the whole course is only about this
    • follow the same terminology as in the lectures and class or you will get lots of points deducted from homeworks and exams or worse, you will interpret the ambiguous MCQ questions in the exam in the wrong way thus losing yet more points
    • inconsistent grading in homeworks and exams makes the experience frustrating and deters from enjoying the subjects taught
    • writing essays (instead of code) to describe algorithms leaves room for interpretation and allows graders to deduct points as they see fit
    • TAs general cold attitude towards students and their issues with the material and grading leaves lots of room for improvement; the whole experience is quite the opposite of any 'community-building'
    • knowledge presented in this form is hardly applicable to the real world and makes you lose all motivation from the first few weeks

    Pros:

    • Joves's notes are an encouragement to put up with the dry theory and to find shortcuts for memorizing a ton of information which you'll need in the exams. He's done a better job at presenting information in a more pleasant way compared to the lectures, books and office hours in this course.

    Conclusion: students should be allowed some flexibility to pick their courses to meet their professional goals and this course should have never been made mandatory without at least another alternative presented that is different to this niche-type of theoretical course

    Rating: 1 / 5Difficulty: 4 / 5Workload: 30 hours / week

  • Georgia Tech Student2021-12-14T17:12:45Zfall 2021

    This class is a lot easier than its reputation. Most of your grade comes from the exams and on each exam there's two written questions worth about 2/3 of the exam grade. This semester these questions were almost always variations of problems from the homework. If you do the homework and make the effort to understand what you're doing you are pretty much guaranteed a B. The other third of the exam points come from multiple choice questions. You can learn most of this information by doing the ungraded practice problems on the homework.

    As for the course materials, I probably watched around 2/3 of the lectures. They are generally well done but there's a lot of information presented that you don't need for the graded parts of the class. After the first exam I only watched the videos that were related to homework problems I was struggling with. The textbook is useful as a reference and additional information if the lectures don't answer your questions. Personally I never attended or watched an office hours recording but if you need help I'm sure they're great. The TA's and professor for this class are excellent and I have no doubt they do a great job of answering questions in them (they do a really good job on Piazza).

    Overall I found this class to be well run and a lot less stressful than I expected. It's not a bad way to end the program at all.

    Rating: 4 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • Georgia Tech Student2021-12-11T13:06:42Zfall 2021

    Fist off, this will be the last review I will ever leave seeing as this is pretty much the final class for everyone, and I did in fact pass without the final exam. Thank you everyone who is a part of this site, it truly made my GATech experience better and helped with my anxiety. My advice for the people coming in, start off strong and it will help with stress levels. Dynamic programming is an interesting concept, but just do every problem you are presented with, over and over and over and over again. Memorize them, how they work, why they work, and exactly how to complete each one. The exams are not far off from the assigned problems.

    Now for the real review, the class is rough. I tried not paying attention to grading because of all the awful reviews, but I think my number score was often fair in homework’s, because I typically had no clue what was going on. The exam, eh. I got the two long response questions right, on the first and second exam, and don’t think I scored above a 27/40. But I never even looked to see why, but I got them right, so 13/40 points were lost due to the grading or small mistakes which I’m not sure should make you lose almost half credit.

    Course load is a lot if you try to read, attend office hours, and watch lectures. I would suggest skipping office hours, lectures, and reading if tight on time. Read Joves notes. Memorize them, record them, listen to them at night, turn it into a movie. They deserve an academy award. Understand how Joves does the problems and memorize it. You could pass this class by only reading his notes. He is an angel sent from heaven, sent here to help students graduate from GATech.

    I think that’s it for my review. You get the details of this class from all the other novel like reviews for this class. To recap my two main points: practice practice practice, and Joves notes are king.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • Georgia Tech Student2021-12-10T17:50:37Zfall 2021

    First good things about the course:

    1. Topics are interesting. Dynamic programming is covered quite well. I also liked the focus on FFT, RSA, MAX-SAT proofs etc.
    2. Video lectures are great. I like Prof. Vigoda's style of building the intuition behind proofs
    3. The DPV textbook followed is a great book.
    4. Grading is fast and on time.
    5. The TA team is active on piazza/slack and try to help the students with the course.

    The bad things about the course:

    1. Questions (specially in homework) are way too easy. I expect more difficult questions in a graduate level course. The exam questions are also kind of easy. The homework questions are embarrassingly easy.

    2. The strict rules set for answering questions. The rules are totally made up for making it easy for TAs to grade and have no connection with learning. The TAs enjoy nitpicking on tiny details and even a 100% correct solution can get a low score for violating any of the rules. This kind of reminds me of my high school math class in which the teacher would give me low score because they didn't like my handwriting.

    3. Too much focus on memorization. We have to strictly memorize the input and output of each algorithms and any minor deviation in the usage of algorithm will attract a huge penalty. I found memorization the worst aspect of this course.

    Advice to students: The homeworks carry very less weightage. Dont get discouraged when you get bad scores on them due to mindless nitpicking by the TAs. Use the homeworks to understand the TA's expectations.

    I hope Gatech in future will offer a more advanced version of algorithms which feels like a graduate level course.

    Rating: 3 / 5Difficulty: 2 / 5Workload: 10 hours / week

  • Georgia Tech Student2021-12-06T21:04:16Zfall 2021

    This was my 9th course in the program and is by far the worst course I have ever taken. The course has fundamental issues that have been reported for years and are not being fixed. The professor refuses to believe he is a problem and will instead put all blame on the students or band aid fixes. For instance, the grading this semester was as follows: A [85,100], B [65,85), C [50,65), D [40,50), F [0,40). If the course was run appropriately there would be no need for such a drastic adjustment.

    The material is interesting. It's challenging but not in a way that isn't easily understandable with practice. The text book is really good and explains the concepts well. However, an understanding of the material is not what is important to the teaching staff of this course.

    Your grade is almost entirely dependent on what grader you get. The experience is largely inconsistent. There are often homeworks that are nearly identical and one will receive a 95% and the other a 65% because the graders are that inconsistent. For example, a student this semester that was in this course a previous semester submitted their same homework as they did from the previous semester but fixing what they had gotten wrong. Their score this semester was significantly lower than when they had submitted the homework the previous semester. And that is with valid corrections! Totally incorrect solutions often get a higher score than mostly correct solutions because solving the problem in a different way than the instructors want you to results in less specific deductions from the rubric.

    The exams are worth 75% of our grade, are completely closed book and notes, and are poorly put together. Questions are often poorly worded resulting in a lack of clarity. The exams often require us to have arbitrary, class specific knowledge memorized that you will be largely penalized for not knowing. Furthermore, the instructors don't even tell you what that is, you often have to guess, or use Joves notes. Joves notes are notes that one of the TAs created as a student, that he volunteers for the course. Frankly the course would be impossible without them. The information provided in them should be provided by the instructors, but isn't. They fill in a large gap that frankly it shouldn't be a TA's responsibility to fill.

    The head TA and many other TAs are rude and arrogant on Piazza. They belittle students questions if they deem them not good enough. It's unacceptable behavior and is awful that Georgia Tech allows such behavior. I have had questions that were directed to instructors and only visible to instructors ignored and even marked resolved over 4 times despite them not being answered and me reiterating that they hadn't been answered every time they marked them resolved.

    The power dynamic in the course is largely flawed. For any grade we can submit a regrade request and it can cause our grade to be lowered. This would be okay if we had the rubric that the graders grade against, but we don't. So to request a regrade the process is as follows. First you have to publicly argue why you deserve certain points back on an assignment. Students then do anything they can to prove you wrong, often being rude and aggressive. The professor refers to this as "community building". Being stoned is community building for those throwing the stones I suppose. If you manage to make it out alive you are then "allowed" to present your argument to the instructors. They will then regrade the entire question and not just the points you argued for. Keep in mind you don't know if the grader didn't take away other points they were supposed to because we don't get a rubric. When I went through this process on my exam I ended up with a grade over 15% lower and it was very clear they didn't even read what I was actually asking for points back on. Furthermore, the section they magically found wasn't marked wrong enough was already marked wrong. To top things off, this exam is worth 25% of my grade. When I tried to have a discussion about this and ask for more clarity from the professor, he brushed me off and even blatantly lied to me. This incident is currently being reviewed by Georgia Tech as it is entirely unacceptable.

    You'll see lots of reviews saying that the course isn't that bad. And for many people it isn't. Your experience almost entirely depends on what grader you get. If you can avoid this course you should, which is a shame and unacceptable as an algorithms course should be accessible and well run in a CS program. Until the professor realizes that he and his team are a problem it will not change. He will simply change the grades so that enough people pass.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • Georgia Tech Student2021-12-06T18:12:52Zfall 2021

    Summary

    I write this review since I think the other reviews are not representative (they are just too bad). This class is rather hard and I wouldn´t let me fool be things other wrote. They should be lucky that there is such a curve and what they are writing is more a summary of themselves than the course. Why can people get angry? You are writing tons of text and you get critized for it. Some take the criticism as a chance to grow other feel offended.

    Work

    If you are doing nothing, you are lost. If you are doing too much, you are going to burn out. I think you are learning a lot if you want to.

    I keep this review short, since every hint you can get has already been giving in other reviews

    Good Luck

    Rating: 5 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • Georgia Tech Student2021-12-05T17:57:00Zfall 2021

    Do not try in this class. Put in minimal effort. They will adjust the letter grades so they don't have to fail people. They can't afford to enforce their own grading policies because this class has become such a bottleneck. It's an unfortunate reality for this program.

    Rating: 1 / 5Difficulty: 1 / 5Workload: 3 hours / week

  • Georgia Tech Student2021-12-04T16:06:44Zfall 2021

    The best advice to do well in this class is to drill the homework a lot. The HW is a few ungraded problems and then 2 free response questions that get graded. If you drill the homework and try to get a perfect score on each part you will be in great shape for the exams. You'll have a bigger buffer and the exams are very similar to HW

    In my opinion grading in this class is okay most of the time but there was a few instances where I have gotten feedback about missing certain parts even though it was written in the solution. In this case you have to ask on a public forum for someone to agree with you. Finally once someone responds to you you have to create a regrade request for the same TA that missed it the first time to regrade you. I was a little unhappy with that process because in one instance a TA admitted to a mistake on the second review but found a new issue. I disagreed with the new issue but the grading window closed so i just accepted a grade deduction. In a more ideal world a new TA would do the regrade.

    Don't worry though this class gives you plenty of opportunity to make up for a low grade! And TAs make mistakes but luckily the exam questions are similar to the HW so just practice writing the hw solutions a few times and you will be in good shape! (wish i had this advice myself)

    there are some lectures in the class that are very proofy and confusing. I spent hours learning proofs on one exam and i think that was a poor use of my time, don't do that, again stick to the HW.

    Also props to soon to be Dr. Rocko & professor Brito for having weekly office hours. you have two hours to ask questions and listen to solutions to HW. take advantage of this.

    This class should not scare you I think my biggest downfall was assuming knowing the right answer is enough. You are tested on knowledge of the course as much as you are tested on how to follow an expected template. There are times when you won't get your HW feedback before a part on a test so thats when OH is a must! Normally this isn't the case!

    Don't worry about this class that much and drill the HW. Create a study group (this is were i failed). Don't be a jerk on regrade forums and help your peers out.

    It will be over before you know it! Getting a 70% (before the curce) (b) in this class is more than doable! you can get a 0% on exam 1 and 2 and 100% on exam 3 and the final and still get a B in the class! (the lowest test is dropped by the final. except for summer semester) There is a ton of wiggle room just set yourself up for success. And at times there are curves.

    Also this might go without saying but if you don't need to take this class i wouldn't. I don't feel like i learned a lot i feel like a lot of my time was used in practicing how to format responses so the TAs won't give me deductions.That might be due to stress since the material and lectures are pretty interesting.

    Edit: i x2 what this review says https://omscentral.com/review/-MqGYvt3FJKFkALkbKCl

    Rating: 1 / 5Difficulty: 3 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-12-02T04:50:30Zfall 2021

    This was my final class for OMSCS. I barely earned an A in this course, but can highly recommend it.

    GA has a bit of unearned stigma attached to it due to originally being CCA, which proved to be not the right fit for OMSCS. I believe CCA became another course which became GA, but I could be wrong there. Further this is certainly a course that you'll find you either "get it" or not immediately. If the material quickly clicks for you you'll do fine as long as you stay on top of the work. If you need to work to understand the material be prepared to spend a decent amount of time studying.

    As usual, this breakdown and review is for the Fall 2021 semester. The course will change over time.

    Course Breakdown

    The course is "curved" out of the box with an 85+ being an A and a 70+ being a B. The instructors reserved the right to adjust the curve "down", or in favour of better grades if needed. It is yet to be known if the instructors are doing this for this semester, but signs point towards no.

    Grade Breakdown: Exams 75%, Homework 12%, Assignments (coding) 9%, Polls 4%

    The course is broken down into three sections: Dynamic Programming and Divide and Conquer, Graph Algorithms and Fournier Fast Transform, and P-NP and Linear Programming. There are three exams, one for each section, followed by a cumulative final. Of these four exams the top three count for 75% of your grade, while the lowest is dropped. Note that if taking the final would not improve your grade you are not allowed to take it.

    There were three coding assignments. For each we were provided an algorithm and needed to implement it in python. The challenging parts were getting the code to conform to the interface required as well as not having any instructor provided tests other than a simple sanity test or two. However we were allowed to create and share tests as well as test results, so the class will quickly come together and converge on some test suite with known good answers. Of all the courses I've taken in OMSCS the coding in the class was the least intensive and time consuming.

    Homework, we had seven assignments. Each week we're provided a list of problems, with two highlighted as being due. For the ones that are not due later in the week we were provided answers. The two due problems were submitted and graded, and later we were given solutions to those. The difficulty and amount of time needed for these varied depending on the questions.

    Polls, we had eight of these. Every week we did not have an exam there was a single question quiz on Canvas. These were all either multiple choice (both select one and select N) or true/false. If the question was not true/false you had two attempts to answer, and were provided your score (but not the answer) after each attempt.

    Exams

    As we have not been given any information on the final, I cannot comment on it. As exams are 75% of your grade, they deserve their own section as they will make or break you. If you struggle here you will not pass.

    Each exam was broken down into three sections. Sections 1 and 2 were each an individual algorithm question mirroring the kinds of questions we got on the homework. Section 3 was a series of multiple choice questions similar to the polls. Each section was worth 20 points for an overall point total of 60 for the exam.

    For the exams: there's a template of what they expect, though sometimes not explicitly stated (except for DP). Use this template or a version of it. When the grades come in before you can request a regrade you must submit for peer feedback. Most of the time when I saw someone who had good chance of getting points back, sometimes even the prof/TA admitting it was a miss, it was because they either were not using the template or had a critical sentence in the wrong section.

    Sometimes less is more. A tricky portion of this class is you're actually treated like a graduate student and don't need to justify the small things. The issue is balancing saying enough that your point is proven while not saying too much because a small mistake in a statement you didn't need to make counts against you.

    Lastly, proofread! After doing the algorithm problems either review your multiple choice or do them, then go back and proofread. You'll find mistakes, most likely in the wording. I hate to say it but this class might be more challenging to those who have English as a second language, while reviewing regrade proposals I've seen many that looked like they were doing the right thing but the grammar was ambiguous or poor making it challenging to understand what they exactly meant.

    Non-Exam Work

    Do the homework early, and proofread it. For some of the material if might be worth it to code it up and prove to yourself it works. While the exams will make or break your grade, the homework is what will either makeup for a mediocre exam grade or push you above the grade cutoff.

    If you have experience programming the coding assignments will not be challenging. They are more a test of if you can take some algorithm from conceptual to concrete. No tricky edge cases, no gotcha's, just take this algorithm and code it up.

    Polls - I struggled with these. They're the most conceptual of all the work, but are worth the least amount of points.

    Advice and the Ugly

    • Format your homework and exam algorithm questions to the "template."
    • "Jove's Notes" should be available to you and are a godsend for this course. Very thorough, use them! However they cannot be shared as sometimes they cover the answer to homework questions, so those sections are pulled out.
    • The homework has non-graded questions. Solve these by yourself before looking at the solutions. The struggle for the professor in this course is there's a limited number of questions, so each question is very valuable to learn from.
    • Your grade will largely depend on who is grading your assignments. From what I've seen some TA's are stricter than others. This is rough but it is what it is.
    • If you need to assume something, or want to do something that might not be extremely obvious at first glance, state what you are doing. For example in DP "I define T[0] as the result of making no choice"
    • If you find yourself doing a number of weird things, or designing an algorithm from the ground up, take a step back and reevaluate. This usually means you're going down the wrong path.
    • For NP Reductions, remember you're not solving the problem you have, you already have the solution. You need to transform a known NP-complete into this problem so your solution will solve it.
    • It usually takes over a week to get grades back. This is stressful when starting new material as you'll have to submit your second homework before you know if your approach taken for the first set is valid or not.
    • It's frustrating but missing something early in the process will result in multiple point deductions. While this seems unfair the justifications from the TA's is that it allows them to give "partial credit" to people who got it right in the early part of the question, but made a mistake later.
    • This class is a bit unique in the style of class it is. Most classes either go broad or deep, the survey style that covers different theories but doesn't go deep into them, or the "let's learn everything about X" kind of courses. This course instead is a survey course that requires you to actually implement and use what they are surveying. This is going to throw off a lot of students.
    • It's possible to get a bad question on an exam. The reviews from the summer semester talked about an exam problem that many students bombed because it was unclear. We had a homework question that said it was from the summer semester's exam and it was worded ambiguously, I would have bombed the exam with my interpretation of the problem. Further we had on homework question that required a "a-ha!" moment that did not come naturally. This is why the professor reserves the right to adjust the "curve" downward.
    • Lastly, they keep a significant amount of things, like the rubrics, secret. However the amount of things I've seen us be able to share, like our solutions to the exam questions, goes well above what I've seen in other classes. Read the stickies and communications - they won't budge on sharing the things they decided not to share.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • Georgia Tech Student2021-12-01T02:12:14Zfall 2021

    This was my last class in the program. Overall it was much less work than I expected. The bulk of the work is the week before the exam since you need to review many problems from the book and go over lectures and Joves notes.

    General

    • I don't have a CS undergrad degree. I have not taken a formal algorithms class.
    • I have gone through two job changes where I prepared using LeetCode so this background knowledge helped with the DP + Divide & Conquer unit. I also skimmed through the Coursera Stanford algorithms course before preparing for my SE job search.
    • I didn't do any prep work before taking the class. Don't bother spending time preparing, you'll learn the material as you go. Piazza, practice problems, and Joves notes are helpful. Make sure to also do all the relevant book problems to help prepare.
    • The exams are not as tough as the reviews make it seem.
    • Don't try to combine this with interview prep since there is not much overlap with interview style problems and GA material.

    Topics Covered

    • Unit 1: Dynamic Programming and Divide & Conquer.
    • Unit 2: Graph Theory - This unit is not algorithm design, it's all about changing input and output and using black box graph algorithms.
    • Unit 3: P - NP - This unit is also not about algorithm design, it's all about proving that a given problem is NP-Complete.

    Homework

    • Weekly homework assignments (8 total)
    • 2 problems per homework assignment. You are allowed to use any online resources to solve the homework questions and most questions can be found online. You just have to cite your sources and rewrite in your own words.
    • Time spent: ~5-8 hours per week. The bulk of the time goes in writing up the solution since the grading is a bit strict.

    Quizzes

    • Weekly 1 question polls. Watch the lectures and then take the quiz. Doesn't take more than a few minutes to answer the question.

    Exams

    • 3 exams, 150 minutes each. 2 free response questions and 10 multiple choice questions.
    • All you need to do to succeed in the exams is the following. No need to do any extra problems on leetcode or geeksforgeeks.
      • Watch the lectures for the MCQ questions
      • Go through all the assigned practice problems (each homework assignment will give a few practice problems to work on)
      • Go through Joves notes
      • Do all the relevant book problems from each chapter. This was key!! The free response questions are pretty much exactly like the book problems. If you review these, you have a good chance of succeeding on the exam. There are no published solutions from the teaching staff for these extra book problems but you can easily find solutions online.
    • Time spent preparing for exams: ~30 hours per exam

    Rating: 2 / 5Difficulty: 3 / 5Workload: 8 hours / week

  • Georgia Tech Student2021-12-01T01:12:49Zfall 2021

    Exam 3 grades just dropped, and I finally can feel my stress levels returning to normal. I had no algorithm exposure in my undergrad ( Electrical Engineering ), and managed just fine. While the class is stressful, it's fair. The fact that a B is a 70, means that if you can get most points on HW, Quizzes, and Polls, then you literally just have to not get an F's the exams and you will pass. This is not that difficult if you are remotely paying attention. Ignore the noise, buckle up, put in the time, and you will be fine.

    Rating: 3 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • Georgia Tech Student2021-12-01T00:08:56Zfall 2021

    Everything to be said about this course has already been said. Inconsistent grading, unnecessary stress, but a couple of good TAs (Rocko/Joves) help make it more manageable. If this class wasn't required to graduate I doubt anyone would be taking it - not because the material is bad but the heavily weighted exams with ambiguous grading just make it a nightmare.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 35 hours / week

  • Georgia Tech Student2021-11-30T21:57:16Zfall 2021

    A browser error ate my review so here's just a quick recap of my main gripes and advice:

    • The second 2/3rds of the course is focused on written descriptions of algorithms with "proofs". The proofs are not true logical proofs and so there is a lot of grey area to underspecify something. Best be safe and assume nothing without stating it up front
    • The grading scheme is incredibly stressful and punishing. Have an "a-ha" moment on 6 short answer questions in an exam setting or you will lose up to an entire grade letter. You can take the final to replace an exam grade.
    • You can pad your grade a bit with homeworks, afterthought coding projects, and the oh-so-generous weekly 1 point quizzes but you live and die by the exams.
    • I cannot stress enough how volatile the grading is. We as working adults, some with dependents, have to pick our battles and there is not enough time to study everything to complete mastery. If one of the short answer questions is something you don't have completely down pat, you might be screwed.
    • As with most of the terribly designed courses in this program, the TAs carry the course. Joves Luo's notes in particular are absolutely essential, study them well.

    It just felt cruel. I passed, but I came away feeling like "I survived", not "I learned some cool stuff". Most people are taking this course as their last before they graduate. These folks have been on a long journey to get here and have endured what may be for them a grueling gauntlet destroying their personal lives. This course relies excessively on feelings of fear and uncertainty to get you to study because they fundamentally don't do the work and get the human resources to use a humane grading structure.

    Just think about it. If a student knows e.g. knapsack really well, but is iffy on chain matrix multiplication, should their grade be a coinflip on which one shows up, or should it be 50%?

    Rating: 2 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • Georgia Tech Student2021-11-30T19:32:13Zfall 2021

    The majority of this class is learning how to write text descriptions/proofs of algorithms, not code. Let that sink in. You must describe in words how an algorithm works and prove it is correct in words. Much like what the instructor does in the lectures. You are rarely implementing algorithms in code.

    The grade is heavily weighted toward performance on the exam. I think they are trying to prep us for algorithmic thinking under pressure.

    Here is my advice:

    • Understand the grade weightings. A couple multiple choice questions on an exam are worth as much as an entire homework.
    • Use Joves' notes!
    • Read and follow the instructions very closely.
    • Relish in the homework and do the practice problems.
    • Do not panic over a mediocre homework grade. Homework points don't matter much, but they do reflect on how you might perform on the exam, which matters a lot.
    • Be thoroughly prepared for the exam, including understanding the unusual way Canvas grades multiple choice.
    • Get a perfect score on every coding assignment and weekly quiz ("poll"), because they are easy, and you are a graduate student.

    I strongly disliked this course until I understood what they were looking for. Once I got on track it became reasonably enjoyable (but stressful), and I came to realize how easy the class actually can be. My ratings are based on an average of how I felt then versus how I feel now. To me, this class is easy in content but difficult in form.

    Rating: 3 / 5Difficulty: 3 / 5Workload: 25 hours / week

  • Georgia Tech Student2021-11-30T16:46:36Zfall 2021

    tl;dr This is a good algorithms course with a reasonable workload. The grading is fair and A is achievable with right amount of efforts. Don't fret because of all the negative reviews.

    Contents

    This was 13 week course with 8 HW, 3 coding projects, 8 polls and 3+1 exams. This is a theoretical course and so major emphasis is on formal proofs. The lectures are great and cover all the concepts in good detail.

    Homeworks

    The homeworks were tightly coupled to the lectures and assigned readings for that week. In each homework, there were a few non-graded practice problems followed by 2 graded problems. The solution to practice problems were released shortly. The graded problems mostly were some variation of practice problems or DPV questions. Collaboration is allowed. They serve as practice for the exams. All the HW's need to be answered in essay-style and no pseudo code or actual code is allowed. The DP problems need to be answered with pseudo code only. The best way to get an idea how to structure your answers is to follow Joves' notes.

    Polls

    Polls were basically a single MCQ on canvas. It was non-timed and open everything with 2 attempts available. It is hard not to get full points here.

    Exams

    This is a exam heavy course and has overall weightage of 75% (each exam is worth 25%). The questions on the exams were more or less variation of homeworks and polls. The stakes are quite high since a single mistake on any essay-type question could cost a letter grade. However there is an optional final exam at your disposal that can replace your lowest exam score.

    My takeaways

    I didn't take any course this summer semester and instead spent time on brushing my data structures and algorithms. I practiced a lot of leetcode problems on DP and graph. I did this primarily because the reviews are skewed towards it being hard and I wanted to make sure I come prepared well. However now I realize this might not have been necessary as the course is very well self-contained. I did not join any study group. Before every exam I revised all the practice and HW problems and this was a good enough preparation strategy.

    The exams were fair and there were no gotcha, or trick questions. The grading was even fairer. I did not experience any unjustified deductions in any HWs or exams. There were two OH in every week - one taken by the TA's, other by Prof Brito. The instructors were active and helpful on Piazza. Joves' notes were particularly helpful and gave a skeleton framework on how to answer the essay type questions. Overall teaching staff were keen to make sure everyone succeeds in this course.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-11-16T20:09:24Zfall 2021

    This class reminds me of upper division math classes that involve proofs. It involves almost no programming - 3 small python programs that take a couple hours each. If you have a strong academic math background including formal proofs, you will likely find the reasoning and attention to detail required for the writeups fairly straightforward.

    The HW assignments and exam free response questions are basically recognizing and manipulating known algorithms and providing proof that your solution is correct. The key is that you need to be very clear and cover all the required points - this is the input, this is how it is used in this known algorithm, this is the output, this is why I know the output is correct, this is the runtime of each step. Each section has a kind of template you can use for the proof and what you need to include to get full credit. One of the TAs includes his student notes. I used the templates he provided and did not miss any points on the exam free responses and very few on the homework. The people who did not follow the template or cover all the requirements lost significant points. If you are more of a big picture person than a tiny detail person, you will need to really focus on making sure you include all the details in your write ups - finding the right solution is only half the work.

    I highly recommend attending all the office hours and joining a weekly study group.

    If you take IIS before this course, the RSA portion will be a review.

    Rating: 5 / 5Difficulty: 2 / 5Workload: 12 hours / week

  • Georgia Tech Student2021-11-15T19:32:36Zfall 2021

    I'm not sure if this is an unpopular opinion. I certainly hope not. I feel like 6515 is the worst class I've taken at OMSCS. The content itself (the book, and the lectures) is great, but every little detail about course logistics (the written assignments, coding assignments, and the exam) all are really the worst experience I've had throughout the program. I found this post from 2 years ago, and I feel like most of these points are still valid.. https://www.reddit.com/r/OMSCS/comments/c1xc97/ga_teaching_staff_are_infuriating/?utm_source=share&utm_medium=web2x&context=3

    • For the written assignments, I've never gotten a good sense of what the graders are looking for, and it seems that every grader has a different idea of what an acceptable answer is and what a 10/10 answer is. Which is expected if I was in a more writing intensive class where there is no answer, but for an algorithms course... really?

    • I don't know but it seems like the grading for the class for both the assignment and exam is just being nitpicky and tedious for nothing. We are not being asked to do a formal proof by induction, yet small details missed when the solution and analysis is right gets me 20% deducted.. and for what? Just a small comment saying "missing minor detail but still correct answer".

    • No feedback on the exam questions, and no solutions are provided. Coding assignments offer no traceback, and no real detail is provided when you get something wrong (even if you ask for a regrade).. yeah if I failed an edge case when I attempted to address it, how am I supposed to know how to improve to not be a shit coder?

    • Office hours are pretty much mandatory. I felt like this class is worse than ML in terms of enforcing monitoring every piazza thread, and watching every office hours if you want to get a good grade. At least for ML the assignments are open ended.. and you really learn something out of the process. For this class you are just spending extra hours trying to figure out what format or approach TAs favor when grading. If you want a specific format or a specific format leads to a higher grade, just stick that to the top of the assignment as a header instruction. Don't make the course more time staking than it is.

    • Proctoring requirements are a pain and invasive, and some of the exam questions, although they emphasize that you don't have to memorize, are really just that a question you get wrong if you don't know the equation off the top of your head (especially RSA, Crypto). I feel like if they reduce the time allowed on the exam and don't have students do such a invasive room screen, the worry that students will cheat will go away. Like really...? Would students be able to cheat through everything given 60 minutes if they don't know jack about the subject at hand?

    This is a mandatory class for most students, and its dealing with a topic that's pretty close to employment since a lot of interviews go down the DS/Algo route, but this just makes me frustrated at DS/Algo and it honestly feels like a waste of time / tuition at this point. I've never been demotivated as much taking a class at GaTech. Seriously. I've always attempted to get an A in every class, but this one I'm hard settling with just getting a B.

    There is a really great TA that caught my eye who is always available to help students on Slack, but really I think this course as a whole is horrible, especially because I had such high hopes for it because it was impossible to register for.

    I feel like I would have learned the same amount without all the unnecessary stress by just reading The Algorithm Design Manual or just the Dasgupta book the class uses. But the only way to avoid this class is to go the interactive intelligence route (which I totally would if I were to go back to when I started the program). I feel like the only thing I got out of the class is to feel a bit more comfortable with Dynamic Programming. The program should really make this class an elective if this status quo is the standard intended, or really try to make the learning experience more meaningful.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • Georgia Tech Student2021-10-19T10:10:39Zsummer 2021

    Course is good, except the TAs.

    I got an A in the end but I still feel it's hard for me to like this course. This is the only course I have taken (this is my last course) that making me feel so bad because of TAs.

    Initially I found myself enjoy watching the course video. But this good feeling being changed since I received the first homework grading result.

    Some TAs don't even spend time reading students' answer but just trying their best to make as lower score as they can. They are the King of this course, ruling and controlling everyone. They have no mercy. They don't understand students without their certain background of grading rubric and just trying their best to ruin the learning experience. Luck is very important in this course.

    Today when I saw one of the graph problem questions I learnt from this course, the immediate feeling on seeing that is disgusting. I never had such experience in other courses. I may have Algo PTSD now. I feel I have to leave this comment for anyone who has the option not to choose this course: JUST RUN AWAY.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • Georgia Tech Student2021-10-11T06:47:36Zfall 2021

    This is a solid course: You will have a clear mind map of the importance of each Blackbox algorithms, what you will learn, how you going to learn, how well you have mastered.

    Very wonderful positive learning experience from lessons, piazza discussion. But very terrible grading feedback from some TAs (I will detail this in the end of this review.).

    Overall, this course constantly reminds me that: those black box algorithms, created by those accent math genius, can be understood, mastered and discussed by us engineering students.

    Thanks for this course creator and Part of Fall 2021 TA teams! (Although I passed Exam 1, Exam 2 with medium scores, ~~I really wish I can pass this course without taking final exam(optional)~~ Passed with a easy B; The minimum requirement to get A is to try your best for exams.

    The grading feedback from Some TAs in the Fall 2021 semester are really horrible.

    • I believe that there is some unspoken rules: (Homework weights are small(7 homework accounts for total 12% grading). Students are encouraged to discuss how to solve those problems without directly revealing answers.)
    • But even based on the above expectation, grading feedback from some TAs are still not professional.
    • If you have a hard time finishing homework or not confident you have nailed that homework, but you wish you can get positive grading feedback, you will end up with disappointment: because some of TAs contributed little effort to grade your homework (although there is nothing staying in your way of regrading.)

    Rating: 4 / 5Difficulty: 3 / 5Workload: 9 hours / week

  • Georgia Tech Student2021-09-11T16:20:50Zsummer 2021

    This class is like Uncle Leo. It thinks it is a lot better than it is, but it is quite boring and frankly average. But it means well, I guess. It is not very rigorous for a top CS program and the exam format emphasizes memorizing, but it is managed well and is easy to do well in. So, while this class is not good and could be so much better, I also think it is possible not to screw it up. Just read through tips from other reviews here. 

    Also, I realize this review is pointless because you probably have to take this class anyway, so whatever!

    Pros:

    1. TAs are very active on Slack and Piazza. They also appeared to feedback well, at least based on their Piazza posts. 
    2. Brito runs regular Office Hours and seems to care about students understanding. The conversation is sometimes derailed by one or two students, but I respect his patient effort overall.
    3. The lectures focus on a small number of topics, but those topics are taught well. Vigoda is uninspired but manages to make things easy to understand.
    4. Quizzes are open-everything, unlimited time, 2 attempts, so it is easy enough to get full points on these. The questions themselves were sometimes pointlessly tricky and a precursor to exam MCQs.
    5. Homeworks are also weekly and open-everything, and you can work with a study group. They are often based on DPV questions for which solutions are available online, so you can easily get these right, even if you don't get the full grade. Quizzes and HWs being weekly ensures you don't lag behind on lectures.
    6. Joves' notes should really be listed as the mandatory reference for this class. In terms of formatting and setting expectations, they provide everything anyone needs. 

    Cons:

    1. Teaching philosophy: The course aims to cover a few topics in depth but not too many of them. This often made the course feel like it was moving too fast, maybe made worse by this being the summer semester. Also, the lectures were not enjoyable and did not inspire any interest in me for the material. This was made worse by the testing philosophy.
    2. Testing philosophy: In general, the focus is on memorizing and remembering everything. The strict room scan guidelines, not allowing even cheatsheets etc. arise from this. But this is most obvious from the actual exam questions, which were minor variations of Homework or practice problems, instead of creative problems that test your ability to apply concepts rather than just remember the solutions. The exam MCQs were intentionally and unnecessarily tricky, favoring focus on wording rather than real understanding, and the grading was petty.
    3. Grading: The grading is uneven and its primary focus is nitpicking on minutiae. This would be acceptable if they were important nuances, but often they were silly details. Like someone else pointed out, this class tries to appear "cool" and "fair" by claiming many things are allowed when they are not. Like, they made a Piazza post saying "Does this class have a pseudocode convention? NO." But they had somewhat unsaid expectations on what they considered pseudocode and what they didn't. E.g. saying "for i in" is acceptable, but using "end" at the end of a loop is not. Distinguishing "=" and "==" was considered code in HW1, but in HW5, graders distinguished k=n and n=k. Since the TAs don't seem to have math background, they didn't know that math does not have directions in processing equations, only code does. Similarly, saying S'(I, n) similar to lectures was often misread by TAs but stating set k=n was not. Also, some homeworks required us to write the algorithm in words which is quite stupid. Consistency is NOT their strong point.
    4. More grading: When the instructors make a mistake, most classes would give everyone the full points or drop the question altogether. Not so this class. They had mistakes in 2 different exams and both times they simply changed the grade suddenly, so people had to see their grade drop. They did give free points on the final, but that doesn't justify anything. The instructors are reluctant to admit their mistakes and have probably never heard of humility.
    5. Peer Review: This was obviously uneven and sad to watch. People who didn't define "mid" in binary search had their regrades supported but people who didn't define "left half" in binary search didn't. They should really do away with it because more people seemed to enjoyed throwing stones than actually learning from peers' work. It got rowdy sometimes and the power of rejecting peers' regrades got to some student's head, but at least they are not paid by the university to do this.
    6. Minor issues. It was unclear at the start of the class when the quizzes, HWs and coding projects were due. The syllabus was updated later with the coding project release dates, but not at the start. This really hurt my ability to plan ahead. Also, if you watch closely, there are some minor errors or misleading statements in the lectures. These are mostly clarified by reading the textbook, but could have easily been avoided.

    Honestly, the real problem with this class is that it focuses on many things other than learning - memorization, following arbitrary rules, fitting yourself into a mold somebody else designed. It does not encourage curiosity or questioning or being a little different, and is not aimed to cultivate interest or even be enjoyable. However, if you follow the arbitrary rules and put in the work, you will do fine. Just don't question. Be another brick in the wall.

    Rating: 2 / 5Difficulty: 2 / 5Workload: 10 hours / week

  • Georgia Tech Student2021-08-24T03:31:27Zsummer 2021

    My background: non-CS undergrad, have dabbled in but never completed a MOOC on algorithms, so this was my first real algo class. It's my 9th class in the program, so I've seen DFS and BFS a number of times by now, and the graph algorithms were not strange-looking even if I didn't know them very well coming into the class. I have seen FFT as a MechE, but not from an algorithmic approach.

    I was worried about taking the class this summer after reading the reviews here. First of all, Dr Brito was great and Joves and the other TAs were great. The class was well run, even though no one seemed to know how to use canvas (not a huge deal but I did get caught out by a HW deadline that was a day earlier than most weeks because a test was scheduled for 4th of July weekend. I managed to get it done, but only cause I got lucky and didn't have anything else going on. I feel like a canvas deadline instead of reading it off of a pdf of a word doc would have made it less likely that I would misread it...anyway).

    Personally, I found Dr. Vigoda's lectures amazing. As good or better than the highly rated MOOCs I didn't complete. He explains things very slowly and step by step, repeating the main points at the beginning and the end of the video. While this may be very slow for someone with a better background, I found it very helpful. Also, as an aside, I found his voice very soothing (I wonder if he's related to Abe Vigoda?)

    I also read the sections of the textbook recommended by the class and for the most part any part of the text I didn't understand was elucidated by the lecture and vice versa.

    The HW's (and quizzes) were basically guided studying. They recommend you complete, say, 5-7 specific problems, but only grade 2 of them. I ended up completely all of the recommended practice problems as prep for the exam eventually, but having the HWs due each week kept me on schedule. While it's true they ask for a specific format, they do grade relatively fairly if you stick to it, and they certainly don't try to trick you on the format. Also, Joves' notes are invaluable (I hope he continues to TA and offer his notes in the future).

    The tests were difficult but fair. The free responses were just like HWs (not trick questions) and the MCQs were very tough but fair (unlike GIOS MCQs).

    The Python coding projects were pretty simple. I'm not really sure what the point of them was. They could have been a little more creative, which would have added a slight level of difficulty, but they were all very straight forward, with lots of skeleton code.

    Overall, I found the class high stress, but very doable during the summer. I got an A with hard work, but not excessive time (I track my time very closely). It has greatly increased my understanding and confidence in analysis of algorithms and I'm ready to get studying on leetcode. Overall a top class in my opinion, like AI, HCI, and GIOS (of the ones I've taken).

    Rating: 5 / 5Difficulty: 4 / 5Workload: 9 hours / week

  • Georgia Tech Student2021-08-22T07:56:44Zsummer 2021

    If you have been reading the reviews for this class, you are probably confused whether it is super easy or super hard. Truth is, it is both. 

    First of all, how difficult you find the material depends on how difficult you find algorithms in general. If you have never studied algorithms before, how much you like mathematics, puzzles or leetcode problems can be a good indicator. Like school math, people either find algorithms super obvious or find it impossibly hard, and you might fall at either end. But how well you do in this class is not correlated with the difficulty level at all. In fact, this class is positively easy if you do the right things. This review will focus on what those things are. Remember that if you find algorithms fundamentally difficult, you will need to put in that much more effort.

    Prepare ahead of class to have an undergraduate level understanding of algorithms
    Before you start the class you should know some basic sort and search algorithms, what asymptotic analysis is, and should have at least seen a graph before.  This class would be super easy if you recently did a good algorithms course (where you had to understand and apply algorithms to problems). But if you are rusty, watch a free one online. Stanford and Princeton have great courses, but any undergraduate course should do. The goal is to learn basic algorithms and complexity analysis and feel "familiar" with the material. While watching these, if you feel you don't understand it fully, I highly recommend you take a semester off to come up to speed.
    Some people have done Leetcode problems to prepare for this class. I don't think Leetcode is necessary, but it can help if you have never ever done an algorithms problem before. 

    Watch the lectures a few times and really understand them (not just watch them blindly)
    The lectures give you everything you need to know, if you watch them carefully enough. Vigoda is not a compelling lecturer, but he is surprisingly effective. If you keep at it and watch the lectures a few times, the concepts really start to click, more so if you pause and reflect on what he is saying, maybe even jot down stuff as you watch. 

    Try to get full points on projects and quizzes
    The quizzes are worth 1% each and the coding projects are 3% each, so definitely try to get full points on those. Quizzes are untimed and open book so you can open the quiz, look at the question and then get to work on it. Watch the lectures before you open it, then read the question, and you can rewatch lectures and/or read appropriate sections of the textbook before you attempt.
    For coding projects, folks in our semester shared test suites which were more than sufficient to get full points on the projects. Remember that passing GS alone may not be sufficient for these.

    Use the homeworks well
    Homeworks are open-everything, and for many of the problems solutions are available online. Learn from these (and cite appropriately). Have a good study group where you vet each other's ideas/submissions and try to catch most of the errors yourself. Also, try to use Joves' notes as the format if they are available. Ideally, you shouldn't lose points for incorrect solutions on these, but if you do, remember it is better to learn from the mistakes in the HW than lose the same points on the exam which are weighted higher. Also, if you lose a few points for a correct submission, use the peer review process to verify/strengthen your case. Don't hesitate to file regrade even for 1-2 points, these will come in handy later.

    Do all the wiki and practice problems
    The homeworks, wiki and practice problems give you a good idea of what to expect on the exams, so do not miss out on these. Work out every problem on the list, and maybe even try to write it out and get your study group members to check. Compare with the published solutions and/or Joves' notes and hone them. At the very least, you must be able to solve all these problems without looking up solutions before you start your exam. 

    Study for MCQs:
    If you did everything above, you will be able to get most of the free-response points on the exams. However, many folks, including myself, underestimated the importance of the MCQs, which are a lot trickier than the quizzes. Watch the lectures carefully, especially the portions not covered by free-response (Fourier, etc.). On the exam, challenge your own answers and see what might make the answer wrong. If possible, get your study group members to quiz each other before the exam window.
    If you do badly on exams, good thing is the optional Final is all free-response. (not available in summer)

    MOST IMPORTANT: Follow all the guidelines (the thing that trips many people up and leads to reviews stating "I knew everything but got a B because this class sucks".)
    This class has a bunch of rules/guidelines which they follow very strictly in grading. Yes, this leads to a lot of people finding this class difficult or finding the grading unpredictable. But, honestly, there is no need to. 

    Many people break one or more of these rules and then complain that they lost points. Or try to justify why the rule is invalid. But that's the bad way to deal with it. Just assume these rules are written in stone. Work accordingly. It is really not that hard. Yes, I disagree with some of the rules and I wish it were otherwise. But this is grad school. If you plan on finishing the course this semester, be an adult and deal with it.

    For those of you who are interested, here are the "rules":

    1. State everything they want you to state (correctness, runtime, etc.)
    2. When they say no code, don't write code.
    3. When they say no pseudocode, don't write pseudocode (this is sometimes tricky, but really not that hard. I took care to make my for loops into full sentences describing a loop just to be sure.)
    4. When they say don't modify a blackbox, don't modify a blackbox. The whole point of the question is it's possible to do it by tweaking the input (or the output). Think accordingly.
    5. Index starting at 1 (Except for fourier). 
    6. Don't use hash tables. And no, hash table access is NOT worst case O(1).
    7. Go from known to new. The blackbox is always the new one - it's as simple as that. Also, the transformations should follow the correct direction, it is insufficient to just write the names of the known/new algorithms correctly.
    8. A correct significantly slower algorithm will lose a lot of points for the first few exams (like 12-15 out of 20). So really try to keep your runtime to the expected value. (the expected runtime is pretty obvious based on the problem type btw). Runtime can be suboptimal for NP, but should match the algorithm you describe.  
    9. Read questions carefully. Directed graph is not the same as undirected. Connecting to every node is not the same as connecting to any node. These seem like minor wording issues, but some words are less minor than others.

    And that's it. Congrats on that A. (or the definite B). Thanks to Joves for the notes, they were gold. 

    Rating: 3 / 5Difficulty: 3 / 5Workload: 13 hours / week

  • Georgia Tech Student2021-08-15T03:42:40Zsummer 2021

    A lot of people have really strong opinions about this class one way or another. I thought the class was entirely average. I wasn't a CS undergrad, nor did I have any experience with an algorithms class before. I managed to get an A by just watching/understanding (most) of the lectures, taking notes on some of the more involved stuff, and doing the homework. I used the Stanford algorithms class as a supplement for graph problems because it does a little better job at covering BFS and DFS (which I had never heard of before this class but the videos treat as "review"). I didn't do any of the extra problems after the first two weeks (though maybe it would have helped me "for the sake of learning"...I don't think the extra problems really helped with the exams.) I think I would have enjoyed the class more if I put more time into it, but I ended up doing pretty minimal work because the lectures bored me to death.

    My suggestions for being successful in this class are: 1) understand the basics, 2) internalize the format given on Piazza for the homework...and then use that format on the exams, and 3) don't mess up. If you mess up a single free response, it can make the rest of the class difficult and scary. (No pressure, since exams are 75% of your grade, right?)

    Good luck!

    Rating: 3 / 5Difficulty: 3 / 5Workload: 8 hours / week

  • Georgia Tech Student2021-08-12T02:55:38Zsummer 2021

    Copy and paste from my blog

    To pass this class, you should:

    1. digest everything written in Joves's notes (he's a TA and will release these notes gradually throughout the semester so pay close attention to his Piazza posts)
    2. join or form a study group of a handful of students dedicate at least 20+ hours per week to drill, memorize, and apply algorithms
    3. complete all the homework assignments, (easy) project assignments, and quizzes (these are all easy points and you'll need them given that exams make up 70% of your final grade)
    4. drill ALL the practice problems (both assigned and extra ones published on the wiki) over and over again until you've memorized them Almost failing this class

    And I tend to agree with the other reviewers here:

    1. Grading is VERY harsh
    2. I agree that the format exam #3 changing 1 day before the exam threw me off completely
    3. You can watch all the lectures and still BOMB/fail the multiple choice portion of the exam
    4. This class needs to be recalibrated
    5. Unless you have studied algorithms before, or have a math background, this class will ruin your life for 3 months

    On the plus side

    1. Professor Brito is a stud and really cares about the students
    2. You'll learn a lot about algorithms that will sharpen your tools as a computer scientist
    3. Teacher assistants work hard and are very active on the forum

    Barely surviving this class

    This class kicked me in the ass. Straight up. Words can barely described how relieved I feel right now; now that the summer term is over, my cortisol levels are finally returning to normal levels.

    I'm not exaggerating when I say I teared up when I learned that I received a passing grade. I barely — and I mean barely (less than 1%) — passed this class with a B, a 71%.

    Throughout the last week of the summer semester, while waiting for the final grades to be published on Canvas, I had fully prepared myself (both mentally and emotionally) for repeating this class, level of anxiety and stress I haven't felt throughout the last 3 years in the OMSCS program.

    Other students in the class felt the same level of despair. One other student shared that he has:

    never felt that much pressure and depression from a class in [his] entire academic career.

    One other student definitely did not hold back any punches on Piazza:

    I am going to open up a new thread after this course finishes out. I am tired of the arrogant culture that is in this program and specifically in this course! There is a lack of trying to understand other perspectives and that is critical for creating a thriving diverse intellectual community.

    So yes — this course is difficult.

    All that being said, take my review with a pinch of salt. Other reviewers have mentioned that you just need to "put in the work" and "practice all the assigned and wiki problems". They're right. You do need to do both those things.

    But the course may still stress you out; other courses in the program pretty much guarantee that you'll pass (with an A or B) if you put in x number of hours; this doesn't apply for GA. You can put in all the hours and still not pass this class.

    Additional considerations

    Before getting into the exam portion of my review, it's worth noting that the systems classes I mentioned above play to my strengths as a software engineer building low level systems; in contrast, graduate algorithm predominately focuses on theory and is heavy on the math, a weakness of mine. Another factor is that I've never taken an algorithmic course before, so many of the topics were brand spanking new to me. Finally, my mind wasn't entirely focused on this class given that I had quit my job at FAANG during the first week this class started.

    Okay, enough context. Let's get into discussing more about the exams.

    Exams

    As mentioned above, do ALL the practice problems (until you can solve them without thinking about it) and really make sure you understand everything in Joves's notes. I cannot emphasize these two tips enough. You might be okay with just working the assigned practice problems but I highly recommend that you attempt the homework assignments listed on the wiki since questions from the exam seem to mirror (almost exactly) those questions. And again, Joves's notes are essentially since he structures the answers in the same way they are expected on the exam.

    Exam 1

    Exam 1 consists of

    1. dynamic programming
    2. Divide and Conquer (DC)

    Read the dynamic programming (DP) section from the DPV textbook. Practice the dynamic programming problems over and over and over again.

    Attempt to answer all the dynamic programming (DP) problems from both the assigned practice problems and all the problems listed on the wiki. Some other reviewers suggest only practicing a subset of these problems but just cover your bases and practice ALL of practice problems — over and over again, until they become intuitive and until you can (with little to no effort) regurgitate the answers.

    For the divide and conquer question, you MUST provide an optimal solution. If you provide a suboptimal solution, you will be dinged heavily: I answered the question a correct solution but the runtime was O(n) and not O(logn), so lost half the points. 50% of my grade down the drain. So, make sure you understand recursion really well and solve for an optimal solution.

    Exam 2

    Exam 2 focuses on graph theory. You'll likely get a DFS/Dijkstra/BFS question and another question that requires you understand spanning trees.

    The instructors want you to demonstrate that you can use the algorithms as black boxes (no need to prove their correctness so you can largely skip over the graph lectures). That is, you must understand when/why to use the algorithms, understand their inputs and outputs, and memorize their runtime complexity.

    For example, given a graph, you need to find out if a path exists from one vertex to another.

    To solve this problem, should know explore algorithm like the back of your hand. You need to know that the algorithm requires both an undirected (or directed) graph and a source vertex as inputs. And the algorithm returns a visited[u] array, each entry set to True if such a path exists.

    That's just one example. There are many other algorithms (e.g. DFS, BFS, Krushkal's MST) you need to memorize. Again, see Joves's notes (recommendation #1 at the top of this page). Seriously, Joves, if you are reading this, thanks again. Without your notes, I would 100% have failed the course.

    Exam 3

    Understand the difference between NP, NP Hard, NP-Complete.

    I cannot speak much to the multiple choice question (MCQ) since I bombed this part of the exam. But I did relatively well on the single free-form question, again, thanks to Joves's notes. Make sure that you 1) Prove that a problem is in NP (i.e. solution can be verified in polynomial time) and 2) You can reduce a known NP-Complete problem to this new problem (in that order — DO NOT do this backwards and lose all the points).

    Summary

    Some students will cruise this class. You'll see them on Piazza and Slack, celebrating their near perfect scores. Don't let that discourage you. Most of students find this topic extremely challenging.

    So just brace yourself: it is a difficult course. Put the work in. You'll do fine. And I'll be praying for you.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-08-11T14:44:56Zsummer 2021

    Hands down the worst course of the 9 I have taken in this program. Topics in the class were certainly interesting but the course was ruined by the way this was graded. The teaching staff were approachable however the "grading TAs" were some of the worst I've seen. Right from exam 1 there was a mad scramble to figure out which is right, exact template with the right amount of context required to answer the free-form questions(which constitute a bulk of your final grade). Many solutions require hand wavy explanations and proof and this is expected to be in a very particular format. There was one TA who was helpful enough to unofficially provide the expected template for these solutions. The TA grading was so inconsistent that they were happy to deduct 5-20 points for a 20 point question because they did not like the structure or wording of the answer. It becomes another uphill challenge to prove you need a regrade which for some weird reason has to be posted on Piazza for the whole class to judge? Basically to pass this course you are expected to highly memorize and regurgitate answers if a very specific template and pray you get graded by a TA not having a bad day. The learning experience could be made so much better especially since this is a core course for 3/4 CS specialization.

    Rating: 1 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • Georgia Tech Student2021-08-11T05:17:25Zsummer 2021

    Good content but really poor execution of the class. Stress is so much on textual writing. Agree many could do well, but going by the reviews and even the commotion in piazza forum, one can easily guess people struggle. One other reason is, people who repeat will also mess up the avg and eventually the curve. So I see no one benefitting. People repeating would impact next batch and that will cause more new people repeating and vicious cycle will keep repeating. Grading was so harsh and lectures boring.

    I don't get what is the purpose of this course when there is 0 or 1% focus on application and 100% on writing skills. And with grading style you enforce people to repeat every single batch. As if gatech wants to make money but making people repeat this course. Just make it an elective course and lets see how many students continue in the course after first exam.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 25 hours / week

  • Georgia Tech Student2021-08-08T12:52:45Zsummer 2021

    As the other reviews point out, grading is inconsistent. You would be much better off learning algorithms at a different school (CLEARLY this is not GT's strength), but then again you probably need CS6515 to graduate. Getting a B is very doable, but putting in A work doesn't guarantee you an A. On the other hand, putting in B work might get you an A. That depends on which grader you get and if you guess correctly on the multiple choice questions. So my advice is to get lucky. Don't be like me and learn the material only to get wrecked by trick multiple choice questions and obstinate graders. I do recommend biting the bullet and taking this during the summer, because another 5 weeks of this would be actual torture.

    Just to be 100% clear, the previous reviewer says "I don't understand some of the reviews about subjective grading" and "I think I might get an A which is such an accomplishing feeling". I'm sure they did work very hard and learn some things, but there is no question that they also got lucky (or didn't get unlucky, depending on how you see it).

    Rating: 1 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-08-03T17:35:27Zsummer 2021

    Summary

    What a banger of a class. This is my 9th class and was by far my favorite class in the program. I had no algorithm background at all and only did the DP problems before the class started. I was so scared of this class and if you are reading this like me, I'm here to tell you if you put in the work you will be fine. I think I might get an A which is such an accomplishing feeling. I never felt like any of the material I couldn't grasp, except for maybe FFT yikes. Be prepared to work tirelessly on this class if you have no background. Don't get discouraged by the people who have taken an algo class before and know literally everything, try to learn from them and join a study group with them. This class ruined my life (In a good way) for 3 months or so.

    I don't understand some of the reviews about subjective grading. They literally give you templates and tell you what to expect. I feel like the "The grading was subjective and unfair" people are either lazy/didn't try/dishonest/"I know better" or a mixture of them. You go into the semester believing this and then you read the Piazza regrade threads and realize they are one of the adjectives above. This isn't to say the TA's grading was perfect there were mistakes, but anyone who honestly answered correctly but in a different format got their points back (me included).

    Our Piazza/OH was dominated by shitposters and that really took away from the class imo. I understand the high stakes of this class but 2-3 people dominated all of the channels of communications and wouldn't quit until they got answered. They also hijacked OH and just asked questions that were self serving for them and really ruined the experience. However, though all of the noise, you could usually get some great hints on exams in OH.

    Finally, I have to give a shoutout to Joves Luo and Rick Suhr. These two were model TA's and I feel never sleep. They always were online answering questions and I felt they truly cared about students and everyone succeeding who wanted to. I am not dogging the other TA's I just never interacted with them.

    Joves' notes are worth their weight in gold and use them if they are available. However, I would not be shocked if they are discontinued as our class was so whiny and needy that they probably ruined it for future semesters which is a shame.

    Homework

    These were great practice for the exams. They were about the same difficulty as the exam questions so be sure you understand them. Be sure to take advantage of the ability to review each others homeworks and use outside sources. Follow the templates and Joves' notes if provided as these are the format you should follow. Don't be a stooge and refuse to look at them and then whine about subjective grading.

    Coding Projects

    These were fun and trivial. Be sure to use all test suites provided by other students as they can save you from losing points on edge cases. This is the easiest part of the class imo.

    Quizzes

    These were meh. They are a good indicator of what to expect on the difficulty of the MC questions, which are HARD. More on that later. I felt these were meant to trick not test but still got full marks on them.

    Exam 1

    This was the easiest of all of the material. I was prepared for both long answer questions and didn't feel like either was unfair. The MC problems were BRUTAL and require a lot of studying to do well on. If you bank on this being the hardest test, you're going to have a bad time. You're going to want to nail this one.

    Exam 2

    By far the hardest exam. Graphs are just really hard imo. Both long answers were fair but HARD. Be sure to know graph terminology as well because the last thing you want is to not know how to answer a question because you have no idea what it is asking. ~~The MC I did initially the best on but got 3.5 points stolen from me #stopthesteal. I am salty about this but it is what it is.~~ They made this right at the end of the semester so no quarrels for me now.

    Exam 3

    This was a different format than the others in which it had 1 long answer and the rest MC. The reduction was very fair and straight forward but the MC WRECKED ME AS USUAL -_- NP-C reductions are by far my favorite topic. They are terrifying at first but once you get the hang of them they are fun. It is the most CS'y part of the class and makes up the "Science" in CS imo. LP is meh.

    What I did

    • All of the wiki problems + other book problems I felt were similar in difficulty/covered material not covered in the wiki (you will know this). I did at least 5 problems a day, every day. Thats right, 5 or more a day, every day. I had every problem memorized by the exam I did them so much.

    • Joined a great study group. These guys and girl are the main reason I succeeded in this class. They were all way better/more intelligent than me and I definitely am thankful for them. One of them was sus though, he knows who he is... ¯_(ツ)_/¯. If you don't join a study group you are doing yourself a disservice and good luck to you.

    • Spent a minimum of 3 hours every day on this class. It takes a long time to master this material if you have no background and you have to practice. I got burnt out about 3 weeks in but kept on pushing. This class will push you mentally and physically.

    tl;dr

    This was a great class and my favorite in the program. The material is challenging yet approachable. The MC is BRUTAL and I watched the lectures 5-6 times and still averaged 11/20 on them. Be prepared to work and you will pass this class. Get a good squad of people to #stopthesteal

    Rating: 5 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • Georgia Tech Student2021-08-02T00:44:49Zsummer 2021

    This was a very unpleasant and stressful class. It reminded me of a long programming interview, which takes months to prepare for and once it is over, you will never have to use that information again in your professional career. The lectures did not explain the material well at all. I spent more time watching youtube videos to try and understand concepts and algorithms that were supposed to be explained in the lectures. Exam performance is mostly based on how well you can memorize all of the practice problems and how lucky you get guessing on the multiple choice questions. The instructors definitely did not make our life any easier. They changed HW due dates in the middle of the semester without proper announcement causing some of the students to miss the deadline. One of the exams had several errors in it (including multiple choice format errors) and they still expected us to answer correctly on those questions. The last exam had a format change literally 1-2 days before the exam window opened, which caught many students off-guard and caused unnecessary stress.

    Overall, this is by far my least favorite class in the whole program. I know that 99% of the people reading this have to take this course to satisfy program requirements, but for the other 1%, please do yourself a favor and avoid taking this class!

    Rating: 1 / 5Difficulty: 4 / 5Workload: 18 hours / week

  • Georgia Tech Student2021-07-31T23:52:33Zsummer 2021

    The content is moderately harder compared to the rest of the classes I've taken (this is my 10th and final class in the program), but the grades have almost no relevance to how well you understand the material.

    Their definition of "pseudocode" is actually very specific, and is so formalized you could probably transpile it into ruby. Any deviation from "pseudocode" and you'll forfeit all or nearly all of your points.

    The exams were riddled with typos, errors and subjective questions, then no exceptions were made when these issues were brought to the attention of the graders.

    The expectations of what to submit for the homework was never clear, and the graders were absolutely brutal when they didn't see a problem solved in the exact format they wanted.

    The exams had open-format questions where you'd type out a short essay explaining your answer and multiple choice questions. The open-format questions completely dominated the weighting of points on the exams, so at the end of the semester there were only 5 questions (2 on exam 1, 2 on exam 2, and 1 on exam 3) that almost completely controlled your grade.

    The lectures were downright awful. Even when he lectured about algorithms that I already knew very well, it was difficult what he was talking about. They felt like a recitation of technically true, yet unhelpful facts. I had to learn most everything from YouTube and reading the book.

    Possibly the worst class offered in OMSCS.

    Rating: 1 / 5Difficulty: 4 / 5Workload: 18 hours / week

  • Georgia Tech Student2021-07-31T22:55:21Zsummer 2021

    Overall a great course on algorithms but A LOT to take in during the summer if you don't have a solid background. I took this as a non-CS engineer with no formal courses in algorithms and learned a ton. I'm sitting on a razor's edge grade wise after taking the final so I'm not sure I'll pass this semester, but I learned a ton and have a pretty solid understanding of the material at this point.

    Homeworks: Generally some problems from or similar to the book and worth ~10%. Depending on your grader you got most of the points or completely screwed over.

    Exams: Tough but generally fair. The hardest part is the multiple choice questions and (generally) the written portion is graded fairly - unless you're grader decided to screw you over.

    Coding Projects: Fun little projects to implement an algorithm, would have liked to see more of them. Very easy to get 100% on all of them.

    Quizzes: Small one or two questions quizzes to make sure you watched/understood the lecture material. Not worth much and you have multiple attempts.

    My one complaint (and that of the study group I was a part of) was the somewhat lack of consistency in grading. My guess is that one or two of the TA's are MUCH harsher than the rest so if you're unlucky and have them grading your problems, you can expect even the tiniest of mistakes to drop your score by a lot.

    Rating: 4 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-07-29T02:16:11Zsummer 2021

    No formal algorithm background but have taken plenty of math courses - the content didn't feel all that challenging, but (some of) the graders are just hopeless. If you use a slightly uncommon method that the grader has not seen before, don't expect him/her to be capable of understanding it. There are also those (unofficial) templates - stick to them, even though some parts do not exactly make sense and the question can be solved in fewer steps (some steps are somewhat overlapping) - just stick to them. Graders are not smart, so don't try to be smart yourself. One advice would be to make those templates official. Otherwise, it gives you the illusion that you can try to solve it in some other format, but in reality chances are you'll unnecessarily lose points if you try anything else.

    In theory there are regrade Piazza threads. But a lot depends on luck. If the first peer to review jumps in and makes a baseless comment without even carefully reading your answer (which happens quite frequently, especially a few overly active classmates...), it greatly diminishes your chance of actually getting a fair review. Some super active classmates are actually helpful (they actually read and provide thoughtful feedback), but some are just out there messing around, making snarky comments without providing any substance (they probably spend more time thinking about how to compose the reply then actually reading your original post/answer).

    All in all, course material is solid. Summer is probably not the best semester to take it since it skips some interesting topics, and (at least this summer) we didn't have the make-up final exam. I'm most likely still getting away with an A unless I really fuck up the final, but I do believe there are rooms for improvements as others have mentioned.

    Rating: 2 / 5Difficulty: 3 / 5Workload: 5 hours / week

  • Georgia Tech Student2021-07-22T14:59:25Zsummer 2021

    This summer the weight was chosen to remain at 75% exams 25% quizzes, projects, and HWs. Unfortunately, on top of the weights remaining the same, we didn’t get a make up final like the spring and fall semesters. The worst part about the class is how interesting the material is, but the unnecessary stress and subjective grading overshadows the material. For exam 1, I understood all the material but misread one of the free response questions that was extremely easy and like one of our HWs. This one mistake dropped my E1 grade from a B to a D. I spent the rest of the semester stressed and worried about passing and graduating since the exams counted for 75% of our grade with no make-up final. To echo what others have said, to succeed in this class you need to grind out practice problems assigned and mimic your answers to match Joves’ notes. All in all, the class needs to be completely revamped in my opinion. I could have learned all the material without being constantly stressed and full of anxiety due to the weightage of the exams and the poor subjective grading.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-07-22T03:15:26Zspring 2021

    This class has so much potential. Its learning objectives are literally the bread and butter of unfathomable achievements in computing over the last few decades. And how does this class attempt to live up to this legacy? By deemphasizing actual coding and judging understanding on high stakes exams graded by biased TAs with zero feedback. I came into this program to become a better software engineer so that I could make a difference in my field, not so I could feel good about surviving yet another weed out class. Whoever designs this class needs to seriously recalibrate the distribution of assignment weights. If a person can find the answer to a hard coding problem or conceptual problem, chances are that person could apply that knowledge to a real world situation. Being able to produce results under pressure still has its place, but that should not be seen as the end all be all of a student's abilities.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • Georgia Tech Student2021-07-21T12:56:05Zsummer 2021

    As others have mentioned, the exams are worth a lot of points. This is made worse by the fact that they are graded somewhat subjectively and extremely harshly, in the sense that if you don't get the exact answer the grader is expecting, there's a very real chance you'll get close to 0 points for that problem. So even a single question that is not completely correct can absolutely destroy your grade in the class. I've literally lost hair from the stress this class has induced, but more from the logistics relating to the exams rather than the actual material itself (which actually isn't too bad and is pretty fun even).

    Rating: 1 / 5Difficulty: 4 / 5Workload: 10 hours / week

  • Georgia Tech Student2021-07-18T23:01:31Zsummer 2021

    This is a cruel and unforgiving class. The material itself is challenging, just like many other classes. But whether you pass or fail this class is basically decided by 6 short answer exam questions, each worth 8% of your grade.

    There are 3 exams worth a total of 75% of your grade. Each exam has 10 multiple choice questions and 2 short answer problems. The short answer problems are similar to programming interview questions: wholly original problems that you need to solve on the spot, which all require a few "a-ha!" moments during the exam. However, the questions are typically vague. And they're each worth 8% of your grade. If you can't figure one of them out completely, you're sunk. There have been threads post-exam trying to interpret what the problem was actually asking. When it's not all that hard for the exam writer to add a few more clarifying sentences to the problem. The rest of the class involves 6 open-book quizzes, 7 homework assignments, and 3 coding projects. Together, these deliverables only total up to 25% of your grade. You'll want to score 100% on these, since they function basically as a "self-curve" on the exams.

    If you have a strong background in mathematical theory and have taken an undergraduate algorithms class recently, you can power through this class. But for everyone else, this class will basically ruin your life for 3 months.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • Georgia Tech Student2021-07-15T22:17:58Zsummer 2021

    Little code writing for this course. Grading is subjective and grading rubrics are never provided. Refrain from using any prior knowledge in any other algorithm classes. Pay extra attention to Jove's notes if provided.

    Rating: 1 / 5Difficulty: 3 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-05-21T19:21:11Zspring 2021

    A class that stuffed with rich contents. The only and biggest complaint from me would be, exams are taking way too much weight in the final grade (75% for 3 exams).

    Thank to the extra final exam, I was able to rescue my letter grade from B to A. I was 2 or 3 scores off from the cutoff.

    But truly, the time I spent on homework and projects are equal or even more than that in exams. Not to say the short-form questions are somewhat "you know then you know" fashion, it requires a bit "aha" moment when you're taking the exam.

    Rating: 3 / 5Difficulty: 4 / 5Workload: 30 hours / week

  • Georgia Tech Student2021-05-13T20:41:53Zspring 2021

    How difficult this class strongly depends on 1)whether you've taken an algorithms course before and 2) your general comfort with math and proofs. There's also a decent amount of misinformation surrounding the class. You should not, for example, spend all day leetcoding dynamic programming problems in order to prepare for the first exam. Pay attention to the TAs, Joves' notes (if available), and office hours and you should get a good sense of what to expect on the exams and how your answers should be structured.

    Here are some practical tips for success.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 12 hours / week

  • Georgia Tech Student2021-05-13T18:54:34Zspring 2021

    Background: Undergrad STEM BS, CS minor, 4.0 student in OMSCS. This was my 10th and last class. I'd never taken algorithms and was worried I'd be at a disadvantage compared to my BS CS peers, but I ended up doing above average for all tests. Ended up with ~90% skipping the final to get an A in this class.

    Effort: Watching lectures and doing actual deliverables was maybe 6 hrs/week. The rest comes from doing and redoing the practice problems. Highly suggest doing this to prepare for exams.

    Exams: About 4 of 6 exam problems were exactly the same as a hw problem but maybe with a small tweak. The other 2 were still based on a hw problem but needed a bit of a bigger leap. I felt prepared, stayed calm, and did not freak out about "bombing" a single question to destroy my grade. I was able to come up with a working solution for all problems, even if it was not the most optimal solution. There was a lot of partial credit.

    Things I did not do:

    • leetcode
    • extra DPV problems that weren't assigned as practice
    • read the DPV textbook
    • spend time rewatching and fully understanding proofs (you won't be tested on proofs themselves -- only the concepts/applications)
    • take my own notes. Thanks Joves lol. actually this is a bit of a lie. I did jot down ~5 sentences of high level concepts for each lesson
    • attend office hours. this can be useful to students who need to spend extra time going over problems if they don't get it the first time during lectures.

    Things I did:

    • joined a study group of ~6 people and had weekly meetings to discuss hw solutions. (I called them answer sessions). Also studied together by redoing problems together or quizzing each other via text
    • aligned my expectations with grader expectations. e.g. knew what was and wasn't important while watching lectures, synced my exam/hw response format to what they were looking for
    • watched all lectures
    • did all practice problems at least 2-3x times until i could do them from scratch. i didn't spend too much time trying to figure it out on my own first. i often just jumped to looking at the answer. but then spent time making sure i understood the answer, memorized, and could conjure it from scratch next time
    • had all lecture and practice DP problems straight up memorized but this turned out to be overkill for exam

    Overall I enjoyed the class. Class was well-run, instructors and TAs were great, and the material was worthwhile and I learned a lot about algorithms.

    Rating: 4 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • Georgia Tech Student2021-05-08T06:37:33Zfall 2020

    Took it while taking job interviews and found it very helpful especially the DP part. I don't find better resources available that has a better explanation and practice problem that you can be a DP expert. This actually helped me, among other factors, got my current job.

    The workload is manageable if you have background in algorithms, follow the video, read textbook as instructed and do practice problems.

    The downside is it has 3 exams, each of them has 2-3 questions but took 25% of your final grade. So if you bombed on 1 question, you know how much you lose in your final grade. The worse part is some of the exam question does requires some 'aha' moment to come up with a viable solution, especially for DP and NP problems. Btw, NP is not useful at all for real job in the industry but could be a intellectual enjoyment/challenge.

    Pro tip. I know this is a required course so you'll have to take it sooner or later and it's hard to get into before the last semester. But if you have the choice, pair with your job interview can be helpful.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • Georgia Tech Student2021-05-07T16:38:00Zspring 2021

    Enjoyed this class overall and definitely learned a lot, but like many have said very stressful at times.

    Background: my 6th course in the program, have taken IIS, ML4T, DVA, AI4R, and Comp Photo.

    Class Experience: I found the homework and quizzes to be of good difficulty that test the topics covered. Being open to collaboration and notes respectively, definitely take the time to ensure you get every little point you can as it could be down to the wire in your final grade where one quiz point could be pass or fail for the whole class. I averaged ~90% on these, its a great opportunity to learn how things are formatted/graded, and when the TA's say the test questions are like the homework and quizzes, they mean it.

    For tests, I bombed the first one hard... Like 12 points out of 60. This caused a very stressful semester for me as I did not want to drop and was willing to take a C to gain experience for the whole class to make a second run even better all around. I followed up with the second and third tests being much better, on average 43/60 points per test. The format for the types of questions and scoring in the second and third test is easier than test 1 but its still easy to lose all points on silly mistakes.

    Prior to the final they release tentative grades and possibly a curve as it doesn't happen every semester. this semester, the class was curved by 3% from the starting percentages, so a B was 67% and an A was 82%. I did well enough to earn a ~63.5%, i was 8 test points away from a B so every point matters. The final exam was cumulative and optional to replace the lowest score of your first three tests. Having a 12/60 this test was replaced for a higher score. On the final I scored and equivalent of 51/60 and my final grade was just over 80% for that sweet sweet B.

    Test content is derived from the techniques taught in the lectures which are direct reflections of the class book DPV. Ensure you critically understand that content and the assigned practice questions and you will do fine.

    Overall, take your time to learn what they are trying to teach you, they are very intentional with the things they post and say on piazza. If you stumble, you can recover. Keep your head up and stick with your goals.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 11 hours / week

  • Georgia Tech Student2021-05-07T12:51:40Zspring 2021

    Good, difficult course on algorithms. This class is very well run from an instructor perspective and does a great job of scaling the teaching of a topic that I think is particularly hard to scale.

    While not ridiculously hard or time-consuming, this is a very stressful course given the nature of the grading (heavily exam based), this is my 2nd class and frankly I was getting kinda burned out by the end. The final came in super clutch, so if that is an option for your semester don't feel bad if you don't have the grade you want after E3.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 12 hours / week

  • Georgia Tech Student2021-05-07T11:52:10Zfall 2021

    The problem with this class isn't that it's hard. It is hard, especially if you haven't been exposed to this material before. That's ok though, it's all definitely learnable and I'd even say interesting. The problem with this course isn't even the emphasis put on exams (75%). The problem is the subjective grading by the TAs on those exams. Unless you frame your answer EXACTLY as whoever is grading your exam wants it, you'll lose points - sometimes a lot of them. Example without being too specific: if you write let y = x, but the grader is looking for x = y, you could lose 10 out of 20 points on an exam. Those 10 points are basically 4pts off your final grade. Be prepared to fight for points on every exam through re-grades.

    The key to passing this (which I did, barely) is to not try to answer the question, it's to answer it how the grader wants it to be. Sometimes that's subjective and is the one major downfall of this class.

    This was my last class in the program, and I'll walk away with my degree - but it left me with a very sour taste in my mouth for the program and Georgia Tech in general. It's sad because I should be elated to finally graduate, but instead I'm angry at nit-picky grading that doesn't even matter in the long run.

    One thing I will say is DO NOT GIVE UP! As frustrating as this class is, there is still a good chance you can pull it off. I did absolutely horrible on all 3 exams and had a hail-mary of a chance on the final to pass. Despite thinking I had no chance of making up the points I lost, the curve was lowered by 3 points. With the curve and doing well on the final, it was just enough for me to make a B.

    Another one thing, Joves and Rocko are fantastic TAs - Go to or listen to every one of Rocko's office hours and I guarantee you'll learn more than sitting through the lectures.

    Rating: 3 / 5Difficulty: 5 / 5Workload: 49 hours / week

  • Georgia Tech Student2021-05-02T22:16:59Zspring 2021

    This was my final OMSCS course and overall, l enjoyed it. There are definitely things that I think would improve the course (more info below) but it was worthwhile and I think ultimately fair. I have a BS in CS and took an algorithms course in undergrad, so I think my workload hours (15 hours/week) is less than what a lot of people end up spending.

    General Breakdown
    Exams 1, 2, and 3: 75% total, 25% for each exam
    In the Fall/Spring semesters, a final exam can replace your lowest exam score
    8 HW Assignments: 10%
    3 Coding Projects: 9%
    8 Quizzes (the exact number depends on the semester): 6%

    Criticisms of GA
    My main gripe with GA is that we had a free response problem as one of our "multiple choice" questions for Exam 3. This is mostly on me for not preparing properly since we had a fill-in-the-blank question for the multiple choice section of Exam 2 as well. I lost 6/9 points for the free response problem on Exam 3 since I hadn't been expecting that I would have to provide my own answers hah. Yikes!

    I agree with other recent reviews that the fact that exams at 75% makes the class really stressful. I got acid reflux and really bad anxiety before each exam so they were unfun to me. I managed to do alright on them and think the anxiety was worse than the actual exam. I think a "Here are 3 problems, answer two of them" would be a better test format and I included that suggestion in my CIOS survey. The fact that the final can replace your lowest score is a really nice safeguard to have. It does mean that you have to do relatively well on the final, but I think this is how they try to address the high exam weight and the resulting stress. I also felt like some of the multiple choice exam questions were unnecessarily tricky or the "big problem" questions were worded in a confusing way sometimes. That being said, I do think the exams were fair. The big problem questions were similar to the ones on the homework/practice problems but usually with a twist. If you understood the hw/practice problem, then you should be able to pivot accordingly. Studying the HW problems and the practice problems will help you prepare for the exams and do well on them.

    Overall, slack and Piazza are full of amazing people who are very helpful. But every once in a while, things are weird. One case was that people kept sharing their grades after the exams. I never got the allure of that? I think it was worse when people were boasting about their 60/60 on exams while others were genuinely worried about just passing the class (grade-wise, I was between these two groups). This wasn't a huge deal but something that I just didn't understand.

    Positive Aspects of GA
    This class is REALLY well run. I never felt like we had any bumps in the road. Rocko was amazing at posting weekly updates with all relevant information. I also appreciated that the TAs didn't entertain unnecessary or repetitive questions. Instead, they said "this question was addressed in this post" or would give the link to the Piazza post that answered the question instead of answering it again. This was a breath of fresh air as a lot of other OMSCS classes have students that don't search for questions before asking them and it's not discouraged and results in Piazza being super bloated. We did have hiccups (Texas winter storm, Canvas being down for part of the exam window) for the exams that resulted in the deadline being extended. Despite the strict "we will not accept late exams," I think the teaching staff was pretty understanding when these cropped up and adjusted to them well.

    Joves Joves Joves. His notes definitely got me through the semester. I appreciated that he didn't give you his notes on the lectures but instead gave you notes on the critical information. You had to watch the lectures to understand his notes but they were extremely condensed and included solutions to practice problems/hw problems (after the due date, of course). If you're given his notes, I would highly recommend taking advantage of them. I used them as a reference and created a private Quizlet flashcard set to study for the exams. Not having to re-read my 200 pages of lectures notes that I took definitely made preparing for the exams a lot easier.

    Special shout-out to the other TAs too. Rocko was no non-sense, which I appreciated, and his OH recordings were also really helpful to me. He just seemed like he wanted to help us succeed, which is great to see in a Head TA. Christian was really great at responding to Piazza posts and teaching alternative ways to do things so if you didn't get it the first way, you had another to try. I didn't interact much with the TAs but I was really pleased with how quickly they turned out grades for HW and Exams, which definitely helped with the stress of this course.

    I had taken an algorithms class as an undergrad and this was a really good refresher while also teaching me concepts better. I learned a TON and feel like I'm a better computer scientist due to this class.

    The cohort I took this course with were really collaborative. People shared their testing files for the coding projects and helped others along the way with the homework. The collaborative nature of this class is awesome. I think I learned so much more than I did in my undergrad course because we were ALLOWED to look at solutions/collaborate with others which helped me learn a lot more thoroughly.

    Advice for those taking this course
    First, if you're doing the II specialization, I would highly recommend taking this class. At times, it was pretty stressful and I cursed myself for choosing this when I could've just taken SDP. But I'm glad I ended up taking GA to fulfill that requirement and would highly recommend it to others who have the option of taking it.

    Use Joves' notes. Watch the lectures but use these as a way to really understand the material and the format that the TAs are expecting.

    Figure out the format that the TAs are looking for and use it when practicing problems. They go over these in OH and in the solutions to the practice problems. They're pretty explicit about it/the requirements they're looking for. Set yourself up for success by making sure you follow the format and hit all the requirements.

    Do practice problems without looking at solutions and then verify using the solution. Repeat until you get it down. I had heard the class gets easier after DP and that was simply not true in my case. I loved that with DP problems, you can easily verify whether your solution is correct. You can't do that as much with other problems. The NP section was easier for me but Graphs were killer.

    Spend enough time prepping for both the big questions and the multiple-choice. For Exam 1, I spent all my time doing practice DP problems which was great and I did well on the big questions but I did horribly on the multiple-choice (like 5/20 bad). For Exam 2, I spent a lot of time studying lecture material for the multiple-choice. I did well on the multiple-choice but horrible on the big questions lol (like 20/40 bad). For Exam 3, I allocated equal time and ended up doing a lot better on the multiple-choice while also doing well on the free response questions. Moral of the story: prep for both!

    Participate in slack/Piazza. Help your classmates out if they ask for feedback in order to submit a regrade request. You can and will learn a lot from your classmates. Be sure to take advantage of them. That being said, the TAs were overall pretty fair and reasonable on grades and I only had to submit one regrade request.

    Final Thoughts
    Honestly, this class was tough but fair. I felt like the exams were hard and anxiety inducing but they were also fair and relied heavily on modifying problems we have already seen. I think Dr. Brito took pity on us and made the final manageable. I found it to be the easiest of the four exams (maybe because we had 4 free response and no multiple choice). All of this is to say that you can do well even if you get severe test anxiety. Try your best on the three exams but if you end up blanking on one of them, you can always use the final to make up for it. It's nice not to take the final but it's also a good fall-back in case you have to. Put in time and learn the material but don't stress yourself out too too much

    Rating: 4 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • Georgia Tech Student2021-05-01T23:43:15Zspring 2021

    TLDR: If you plan to take this class without any background algorithm experience, you better be prepared to put your nose to the grind. This is not a class for the faint of heart. There are people on their 3rd and 4th attempts trying to pass this class.

    My Background:

    • Embedded programming. Program 95% all day every day at my job. I hardly use the types of algorithms that were covered in this class due to space/time and the hardware the code is implemented on. With that being said, I have come across some of the algorithms that this class covered in my day job. (BFS, DFS, Dijkstra's). Let me be clear: Being good at programming DOES NOT mean you will succeed in this class.
    • I have a BS in Computer Science. My undergrad did not have the strongest algorithms class that I took. However, I would say it was probably an 7/10 in terms of learning the tough algorithms.

    The Brutal Part:

    Disclaimer: This is solely the opinion I have come to myself. ALSO TO NOTE: None of this applies to the top 1% who barely missed a point on anything the entire semester. There are those people out there. They are extremely helpful on slack/piazza. Just ignore their grades and do your best. Don't compare yourself.

    These exams are administered through Honorlock. You are allowed 5 scratch pieces of paper. Ensure you do the room scan correctly or you will be penalized and receive a 0.

    • Exams: 75%

      • Exam 1: (Grade: 65% or 39/60) -- Class average: 76.5% or 46/60
        • There were two long answer questions. These were both fair questions, however beware, the deductions for errors on these long questions are extremely severe. You will learn this as you do the homework(s).
        • After that there were some Multiple Choice, True/False, and Multiple Select. These were extremely tricky. I will admit that I am not the greatest with the material, but even still, these questions felt like they were to trick you, not simply test your knowledge of the subject.
        • Overall Review: I would say this exam was pretty fair. If I had more idea what the exams would have been like, I would have done FAR more studying.
        • Total study time for exam 1 was 30 hours.
      • Exam 2: (Grade: 51% or 30.5/60) -- Class average: 70% or 42/60
        • There were two long answer questions. The second one was very fair and I should have personally done better to answer it exactly how they wanted. (There was a very similar homework problem). However, problem 1 for Exam 2 caused problems for the majority of the class. It was never fully stated by the professor or TAs, but the overall loss of points on Exam 2 Problem 1 was probably the reason for the final grade adjustment. This question ruined most everyone.
        • After that came the Multiple Choice, True/False, and Multiple Select. These were pretty fair. I studied extra hard for these this time around so most of my exam points came from these questions. Again, understand that these are not simple/straightforward questions. You WILL have to think hard and potentially decipher some tricky verbiage.
        • Overall Review: I would say this exam was slightly unfair. I studied a metric ton for this exam but was extremely disheartened when I read problem 1.
        • Total study time for exam 2 was 23 hours.
      • Exam 3: (Grade: 79.6% or 47.75/60) -- Class average: 75% or 45/60
        • There were two long answer questions. They were both fair questions and mirrored homework questions almost exactly.
        • Next came the Linear Programming handwritten section. This section was quite tough. They threw in some simple algebra which really hurt a lot of people (myself included). However, they graded this fairly as they only deducted points of the wrong solution once. If you continued down the path of 'wrong', they continued to give credit. Clarity: You still had to do it correctly, but you could do max/min for the standard form part.
        • After that came Multiple Choice, True/False, and Multiple Select. These were semi-fair. Most of them were easily attained if you just studied the material. There was 1 or 2 questions that only the super brilliant got (or you just guessed correctly).
        • Overall Review: I would say this exam was the most fair of the 3. Studied hard and did very well.
        • Total study time for exam 3 was 25 hours.
    • Homework: 10%

      • This consisted of 8 HW assignments. They give you a week to do them and you are allowed to collaborate with your classmates. It is actually encouraged. Just ensure you cite that at the top of your homework. These are quite fair. They also go over the solutions to the homework in the next weeks office hours.
    • Quizzes: 6%

      • Pretty straightforward. There was 8 quizzes this semester. Sometimes less, depends on the semester apparently. It is a single question in which you get two chances. These are EXACTLY like the questions you will see on the exams so make sure you pay attention to these.
    • Coding Projects: 9%

      • There are three of these. These are dirt simple. Took maybe 5 hours total for all three. They are not meant to be difficult. Pseudocode is given in the book for some and others you have implemented via homework. Don't stress about these. These will be the easiest part of the class.

    Pros:

    • I would have to that hands down the biggest Pro of this course is the new TA Joves. His notes that he releases throughout the semester are godsend. Without these I would be positive in saying that about a large amount of people who passed this semester would have failed if it were not for these. He is very active on slack, and always willing to help. However, you should not DM him on slack. Ask all your questions in main slack and he'll do his best to guide you to the thought process so you can answer them correctly yourself. Oh.. and his name is pronounced "Jov-es". (Don't mess that up!)
    • Rocko holds office hours like clock work each week. He will answer your questions if you ask them in piazza prior. This class is tough, so giving him the chance to prepare to answer your question is very helpful. He then will ensure you understand it before moving on. Great office hours in my opinion.
    • The class material is actually really interesting. Take time to understand what is happening and how stuff works and you'll feel a sense of fulfillment once you complete it.
    • The final is a make up (if you need it). If you did poorly on an exam and do not have a B, you can take the final to bring up your overall grade. This semester the final was optional. I cannot speak to previous or future semesters.

    Cons:

    • The exams being worth so darn much. Makes it hard when you screw up on one thing on the exam.
    • The exams weren't really testing your knowledge of understanding the algorithms. In my opinion these exams were more written to see if you could understand the convolution given to you by the exam creator. (More on this above under the exam bullets).

    Overall: This is a great damn class and I am glad they require it. Only the most determined will pass and it makes this degree worth something. I learned a lot and am proud of myself for getting through. Make sure you have some great group mates or classmates to study with.

    Good luck to all future students.

    Remember this is just a review written by someone who took the class. This is not the final word on how it all works and everyone sees things different.

    Rating: 4 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-04-28T17:27:27Zspring 2021

    Let me start by saying that this class is unnecessarily stressful and difficult. I think there is probably a better way to teach and more importantly assess knowledge on this material.

    That said, now that I've finished, I completely understand why the course itself is necessary, and these are concepts that any good computer scientist or software engineer should have mastered.

    My advice for students

    • Start early. If you've never studied linear algebra or discrete mathematics, take a crash course. You also need to be good with algebra in general, and big O notation. Make sure you also understand basic algorithms like Dijkstra, merge sort, and binary search. This is especially crucial if you weren't a CS major in undergrad.

    • Plan your life in a way that you can dedicate the time needed to be successful in this course. For some it may only be 10 hours per week or less. For most, it will be much more. You HAVE to put in the time.

    • Form a study group early. Try to find people who are in your time zone and aren't going to flake out. They don't have to be 160 IQ geniuses, you just have to be willing to work together. This will be most helpful for completing the homework assignments.

    • Do something for this class every day. Do not wait until the week of the exam to start studying. Put in a smaller number of hours EVERY day.

    • Do LOTS and LOTS of practice problems, especially Dynamic Programming and NP-Complete Proofs. Make sure you know how to solve ALL of the assigned homework and practice problems from the DPV book, and can do so without looking at the solution. Make sure you actually understand them. The exam questions will be VERY similar.

    • If you make a poor grade on Exam 1, do not drop the class, and don't panic. Stick it out. The final can be used to make up for a low exam grade, but most students don't even need to take it.

    • Statistically, only about 5-10% who complete this course fail to make an A or a B. If you put in the work and are conscientious, you probably won't be one of them. If you get lazy, you probably will.

    • You MUST attend the office hours for this course. They are an extension of the lectures, and often critical info is given during them. During Rocko's mid week office hours, he does a good job of recapping and explaining the material which is often clearer than in the lectures, and during Dr. Brito's Sunday office hours, he often gives away hints as to what will be on the exams.

    • Don't wait until your final semester to take this course. If you are like many, whether or not you will get the needed B to pass will be in question the entire time, and you don't want that kind of anxiety when you are trying to finish and graduate. I recommend getting it out of the way sooner.

    Advice for faculty/staff

    • Please consider allowing a one page cheat sheet on exams. Having to memorize black box algorithms and formulas is unnecessary, and only adds to the stress. It would be better to spend that time practicing.

    • Something really needs to be done about the consistency in grading. I realize that's difficult in such a large class, but I got a minus 20 on an exam problem for a simple typo on an otherwise correct solution, whereas another student only got minus 5 for a solution that wasn't even remotely correct. Aside from the re-grade request, which was denied, I had no recourse and felt this was patently unfair.

    • Please re-consider the format and the weight of the exams. With 2 algorithm design questions times 3 exams, that's 6 questions which account for over 50% of the entire final course grade. There really needs to be either more questions, or the other components such as the homework and coding assignments need to count for more.

    • The class felt disorganized at times. There was often conflicting information (such as due dates), and you had to go digging through Piazza comments to find the right answer. It would be nice to have a web page setup that serves as a centralized, official source of info with all the assignments, due dates, etc. Other OMSCS courses, particularly those taught by Dr. Joyner, are really good about this.

    My Experience

    I did very poorly on the first exam for the above mentioned reason. Thankfully, due to hard work, I was able to make a comeback and got my B without having to take the final...barely. This was only due to the lowered grade threshold (call it a "curve" if you must). I'm glad I decided to stay in the class, but that entire situation just created stress and anxiety I didn't need in my life.

    That said, the quality of the material and the content of the course was excellent. The head TA Rocko did an excellent job and it's very apparent that he cares about students in the class and wants them to succeed. Another TA named Joves shared his notes from when he was a student, and I have to be honest, I don't know if I would have passed this class without them. They were crucial. Perhaps something similar should be officially published as a part of the course material.

    At the end of the day, my takeaway was that nearly all problems that have to be solved in computer science can in some way be reduced down to these algorithms, and I have no doubt that I will be able to take this new knowledge and skill into my everyday work, which to me made this course invaluable, and I see why it's a part of the required curriculum.

    This was definitely the most difficult course I've ever taken, but I'm both proud and happy to be done.

    Rating: 4 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • Georgia Tech Student2021-04-27T15:31:42Zspring 2021

    This is my last course in the program, and I feel this is the type of courses OMSCS should provide (shame on 7641 machine learning). It's solid and useful, and I have to put in some time to get it passed. On the other hand, it's not that difficult as many mentioned here. I just watched all videos, did homework and practice problems, and prepared for exams by reading the textbook and notes, to get a decent A.

    I think my only two complaints are that, this course is so hard to enroll in at the early stage of the OMSCS program, and it should have provided more guidance on coding projects (I think this is essential in job interviews). Happy graduation!

    Rating: 4 / 5Difficulty: 4 / 5Workload: 18 hours / week

  • Georgia Tech Student2021-04-27T02:02:49Zspring 2021

    Overall, the worst part about this class is how over-hyped the difficulty is! It makes it impossible to go in objectively. Even the study groups on slack are full of doomsayers and people claiming they know they'll fail from day one. Cut it out! Jeez guys, it's just algorithms.

    And frankly, although the grading is heavily geared towards the 3 exams, the curve makes it pretty straightforward to pass with a B. This semester, a B was [67% - 82%].

    The exams are 75% of your grade but the other 25% is HW (were you're allowed to look up the answers), Quizzes (8 total, with homeworks, these are also pretty straightforward) and Coding Projects (3, very easy. Often just typing out the psuedocode from the book).

    So you get 20% of the 25% of those assignments, pretty easily. Then you just need to get ~62% average on the tests to pass the course. And if you can do better on the homeworks/projects/quizzes (I know you can!) then you really only need about a 60% on the tests to pass. Given the structure, this isn't guaranteed but it's doable.

    So chin up! Do the homework practice problems. Don't despair, this course is doable and even enjoyable if you don't let the constant doomsday prophesying get to you.

    I thought it was awesome, stimulating, and incredibly stressful - although the last one was totally unnecessary with the right mindset.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-04-26T18:03:19Zspring 2021

    This is my second semester. Before this course, I have some backgrounds in DP, Divide and Conquer, and Graph, but no idea of Maxflow, min-cut, RSA, NP, etc. This course is in fact same as undergraduate algorithm course for on-campus students, so do not be afraid of it. I end up with 99% and below are some of my advices.

    1. lecture video.

    Watch the lecture videos, and focus on the idea of an algorithm, instead of the proof process. Some of the proof can take a long time to understand, but it is not important for exams, so you could just skip them. Take a snapshot of lecture videos, copy them into word, make notes there. convert word to PDF. When review it, review PDF on iPad if you have one, and highlight or make note (using apple pencil) whatever is important. Before exam, you should be able to go through the PDF and only focus on your notes/highlights in a couple of minutes. Very fast.

    1. note provided by previous TA

    Really good note! Try convert to PDF and read on iPad, and make notes there. Review at least 3 times and make sure you can come up with the solution in you mind in a few seconds. Do not worry about details at the beginning. Come up with a solution fast and go to next problem. When you can have a solution easily in your mind, layout solution details.

    1. Book and practice problems.

    For book, read DP/Graph/Path related chapters should be enough. I did not read much about RSA, Maxflow, LP, NP, etc.

    For NP, RSA, Maxflow related problems, the problems in the note are enough. But I do recommend doing more problems on DP/Divide and Conquer/Graph in the DPV book.

    Rating: 4 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • Georgia Tech Student2021-04-26T03:32:04Zspring 2021

    I came into this course with almost no algorithm experience! Listening to the horror stories about GA I spent the time between semesters to watch the lectures and get as much prep as I could before the semester started. I ended up putting lots of hours for this course but learned a ton and ended up with 96.35/100 which was way more than enough to get an A. My two cents are:

    Advantages:

    1. Great teaching staff delivered a very well organized course that help us navigate through the challenging material.
    2. Office hours were a great complement to the lectures and teaching staff were very responsive on piazza and slack.
    3. Grading was fair.
    4. Course material is very well organized with a great set of lectures and practice/homework problems. Reading the textbook helped solidify our knowledge of the topics.
    5. Course material is top notch and necessary to become a good software engineer but also prepare for interviews.

    Disadvantages:

    1. I felt sometimes there was ambiguity on what we needed to study to succeed in the exams. In Exam 3 professor selected a set of problems from the book that helped us concentrate on specific problems for the exam. This was extremely helpful.
    2. The way the course is graded (75% of the grade comes from the 3 exams which are closed book) it relies heavily on exams which creates a lot of stress.
    3. I wish there would be more coding assignments.

    General comments:

    1. Prepare prior to starting the course as much as you can (at minimum watch the lectures for the first exam). This was golden for me as it is a really fast paced course and you jump from one topic to another in a single week.
    2. Practice, practice, practice the problems and focus on those given by the professor.

    Rating: 4 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • Georgia Tech Student2021-04-25T23:44:55Zspring 2021

    Here are my main takeaways:

    • Do all the practice problems assigned. This is the most valuable thing for preparing for the exams. You'll notice patterns in many of the problems. Dr. Brito even says he gets his inspiration for the exam problems from the book.
    • Do not ignore the format of how the TA's expect you to answer the long free-form questions.
    • Don't give up after Exam 1. I did poorly (mainly because I ignored my own advice in bullet 2) and it was stressful having a poor exam grade hang over my head the entire semester, but in the end did well enough where I could skip the final.
    • Do not gloss over the quizzes and homeworks. This is especially important if you do poorly on an exam. My Exam average (before exam 3) was a C, but my average for quizzes/coding projects/homeworks was ~97% so I still had a B overall going into the third exam.

    I rated this as "Medium" because I think the material is very straightforward but there is a lot of it and it requires practice to know how to implement the algorithms on the spot in an exam setting. I think this is one of those classes where you see a direct relationship between how much you spend on the material and your overall grade. I loved this class almost as much as I love being done with the degree.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-04-25T22:07:47Zspring 2021

    I took this class in Spring 2021 as my fourth class, along with SDP. My background is a BS in Physics and 5 years of experience in tech. Finished with a high A and won't have to take the final cumulative exam. I had studied the topics in the past.

    This class has a lot of pros and cons, and I would like to leave a few tips for future students as I found previous reviews misleading, specifically regarding how to study for the exams.

    Pros:

    • Algorithms is an interesting subject, and the class is not proof-based focused on computability. Therefore, since most of tech companies interview based on algorithmic questions, a small subset of this class also helps you prepare for interviews (DP, Graph algorithms, and Divide and Conquer)
    • The staff behind this course is very professional. Grading is very fast, despite the difficulty in grading the free-form homework and exam questions, and I believe it's fair. I never had to dispute a deduction.
    • Homework is very good to understand the content.
    • If you don't have any background in CS, this class is a must take. Even if you're doing the II specialization, try to get into this class somehow.
    • Exams are high-stakes but grading is generous. There is more leniency in exams 2 and 3 compared to exam 1 in the form of lower deductions for mistakes.
    • Two office hours per week: one by the head TA and another by the professor. I didn't watch so I can't comment on the quality.

    Cons:

    • The course has to cover a lot of ground (entire DPV book), but it chooses to specialize in a few cases in from each chapter. This is a design decision, perhaps to prioritize the most crucial content, but in my opinion a lot of interesting stuff was left out. For example, in the second part of the course, when discussing strongly connected components, there are many applications that combines dynamic programming techniques with SCCs/DAGs. However, none of it was explored neither in HWs or Exams. Another example: In the final third of the course, classic problems like the Traveling Salesman Problem or 3D-matching were forgotten. The extremely relevant Simplex algorithm was glossed over.
    • The HWs and exams share the same themes, which is why I pointed out the above. I believe the content that is covered and graded in the HWs shouldn't appear again in the same form in the exam. However, that's exactly what happened, and therefore there wasn't space to cover other interesting applications of the algorithms in the book. I believe is part of the teaching philosophy of the Professor that the content in the homework is what the student is expected to study, and therefore it's what should be in the exam. However, that only rewards students who repeatedly solve the same questions over and over again, and not those who seek knowledge and applications outside of the given problem set, even if in the textbook. For the first exam, I had solved a lot of interesting questions in preparation for the exam, but was disappointed because the questions were rehashed ones from the HWs. The same happened in exam 2. I can provide an example of what I think would be more interesting: In the max-flow type of problems, there are interesting applications like edge/vertex-disjoint paths that a well-prepared student should be able to solve even if this problem wasn't in the HWs nor lectures. However, the professor chooses to rehash questions from the HWs and rewards memorization instead of ability to generalize. It's his class and his call to apply his teaching philosophy, but I respectfully disagree and I don't think it's the best way to test understanding of the material.
    • There was a 3-point curve this semester (before the final exam) that I don't think was necessary.

    If you're taking GA and want to do well, read my paragraphs above. Unfortunately, to maximize your chances to get a good grade you only have to exhaustively repeat the HW questions because the exams will have questions with the exact same theme (same concept applied the exact same way). I saw previous reviews suggesting to solve a bunch of DPV questions, but they're not useful for the reasons I mentioned before. Each DPV chapter has dozens of problems, and only a handful (those already in the HWs) will be the ones covered in the exams.

    Overall, this class was good and I'm glad I had the opportunity to take it earlier.

    Also, don't feed the trolls here. Each time they edit their posts, their grades comically improve by a letter. Remember that if they were so smart they wouldn't be belittling students in a review board, but solving Millennium Prize Problems or doing something worthwhile instead.

    Rating: 4 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • Georgia Tech Student2021-04-25T18:04:05Zspring 2021

    Its very hard to summarize this course. The content was very interesting and extremely useful for anyone who wants to succeed in Computer Science.

    However, the grading format may as well be designed to cause as much stress as possible with each exam (only about 10 questions long each) being worth 25%. Make sure you do well on the homeworks and coding projects (find your own solution, then verify it), because you'll need that extra boost if you flub an exam.

    My advice to succeed in this class is to go to every office hour, because Rocko teaches the concepts way better than the videos. Also do every single practice problem, not once, but until you truly understand the concept, because alot of the exam questions are based on them.

    Good luck to all students who take this in the future, and remember that you can recover from a poor Exam 1 grade (I did)

    Rating: 3 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-04-20T02:02:51Zspring 2021

    Just took Exam 3 and I'm fairly confident I'll get an A. Edit: did get a comfortable A.

    This is a medium class for me, because I was already familiar with over half of the materials. I'm rating it as Hard for someone who may not have as much prior experience.

    I had a lot of trouble staying awake for the lectures, not because of the material, but because the way Vigoda speaks just puts you to sleep. Besides lectures, I spend a few hours per week working on the HW and Quiz. Exam week is where I have to play catch-up, needing about 15-20h for reviewing materials, doing the practice tests I neglected. In terms of difficulty I rate Exam 3 < Exam 1 < Exam 2.

    If you come from a non-CS background, this class will help you think like a programmer. I liked it but I'd never take it again. Shout out to Joves, whose notes have been indispensable for the exams.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 8 hours / week

  • Georgia Tech Student2021-04-13T01:25:58Zfall 2020

    Definitely a course that would be great to take at the beginning of the program, but hey, what can you do? All in all, timeless content that anyone who's more than a "copy from SO" programmer should know. Success in each third of the class boils down to figuring out a few 'tricks' to solve the problems and knowing to use which when. Not hard at all if you pay attention to lectures and do a few extra practice problems each week.

    Rating: 4 / 5Difficulty: 2 / 5Workload: 10 hours / week

  • Georgia Tech Student2021-04-09T06:31:08Zspring 2021

    This is my last class in the program. I come from a non-CS background and learned about algorithm here and there on the internet. I find the homework problems challenging. However, you could always find solution to a similar problem on the internet and it is allowed as long as you answer the question in your own words and cite the website. The goal of the homework problems is to learn the material. Bottom line is that the homework does not worth much in the total grade, so even if you mess up here and there, it does not really matter all that much. Go to office hours to see the solution and really understand the questions is important. Quiz are easy and open book. There is no time limit on the quiz and you get two tries. Coding assignments are very easy. I spent a lot of time on exam weeks to review the lectures, practice additional problems from the text book and got good grades. But I'll admit that if I hadn't had the time to study for it, I could easily fail. I spent less than 10 hours on a regular week and 25+ hours on exam week. Overall I feel that I learned a lot from this class. Update: Just finished the 3rd exam. I am pretty confident of getting an A. Again, review lecture videos and do practice problems from DPV. You'll be fine for the exams.

    Rating: 4 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • Georgia Tech Student2021-04-07T03:58:31Zspring 2021

    To the reviewer below, lovely review taking shots at your fellow classmates. Might I recommend having some compassion? What this individual may not understand is that for pretty much everyone in this class, they are in it because it is a requirement. Also, not everyone has taken an algorithms course previously, or has experience with these concepts.

    As for me, I haven't taken an algorithms course previously, and I am a horrible test taker. This is a bad combination for the course as 75% of the grade comes from the tests. If you bomb one, you can make it up by taking the optional final exam, but that final exam is cumulative, so who knows how that'll go.

    The lectures can be difficult to follow at times, but there is an abundance of material that can help (loads of stuff on YouTube, some extra material provided, etc). For those that struggle with the content, try to make time to work through the practice problems provided each week, this will prepare you pretty well for the tests.

    While there is quite a bit of pressure to perform well on the tests, and that pressure only increases because you need a B to graduate (for most), the course is structured to help. As mentioned previously, the final exam is optional and it will replace your lowest test score. Also, you just need a 70% to pass (again though, bomb one test and you drop below this easily).

    Tip, take your time with the weekly quizzes. I didn't on one and now realize that is 1% of my grade which would help.

    Rating: 3 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • Georgia Tech Student2021-04-05T13:04:32Zspring 2020

    Well where do I begin, I am still in awe of this course even after one year. This course is a difficult one and you might ask what is the point of learning all the advanced algorithms if you are not going to use them in day-to-day work, but that is until you reach to the end of the course where you begin to appreciate the course's primary goals. The main goal for this course as I understand is not entirely about teaching the most difficult or the most important algorithms, but I guess it is to teach generally the theory of computation. The same could have also been taught using more formal approaches like the earlier course 6505, but we all know what happened after the same.

    The course does have its pain points and the main one being the exams and the format of the exams, but once after you have suffered through the pain, the relief one gets is also very high. Hence for me at least the pain was worth the trouble. The whole experience makes you feel better afterwards, even though I am not sure if the pain was necessary or not.

    Note: The reviewer above me is not talking about my review but for another review which was later deleted.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-04-04T23:05:54Zspring 2021

    Love that the reviewer below took the time to insult the intelligence of other reviewers. Sounds like an instructor trying to defend bad course design or a pretentious student. My experience aligns more with the negative reviews. The class isn't taught in a practical way as it's very concept-heavy and not so implementation focused. The average exam grade is between a low B and high C. You can make up the rest through other deliverables, but they're only worth one exam altogether. It can be particularly annoying for someone on their 10th course trying to graduate or for people who have not taken algorithms previously. Otherwise, some of the topics covered are useful like DP and Graphs. Time-wise the course hasn't taken more than 10 hours a week and I have a low A.

    EDIT - to the reviewer below, did i offend you by calling you out for being pretentious? maybe condescending was the better word. sorry that you have a fragile ego but your words do come across as condescending and now your edit just makes you sound unreasonable. your review doesn't add any value aside from putting other people down. don't fire shots at other reviewers if you don't want to get called out. don't try to gatekeep and say "oh well then these struggling students must be lazy and should leave the program". we all come from different backgrounds and we're in OMSCS for different reasons. that's the beauty of the program. it makes CS accessible for just about anyone. a lot of students in the program don't come in with strong math / CS backgrounds. the course design is especially bad for these students. it's the last class for most students and the stakes are high. sure you end up passing, but the reviewer that called the course "unnecessarily stressful" is spot on. there are simple tweaks that can be made to the course to make it less stressful without sacrificing any rigor. i'm saying all of this with a decent grade in the class. learn some empathy my friend.

    EDIT 2 - to the reviewer from 4/6, a 98 ain't any different from an 85. you and i are going to get the same grade but i probably spent less time :)

    Rating: 2 / 5Difficulty: 4 / 5Workload: 10 hours / week

  • Georgia Tech Student2021-04-04T17:15:02Zfall 2020

    If you've reviewed this course and include judgement like "the majority of the class are failing each and every exam", maybe your understanding of math is the problem, and not the class. If your complaint is "there's no prerequisite course" and it's required, then maybe you're in the wrong program. Yes, the class is hard, but it's doable with work. If you're not able to do that work, then change your specialty to one that doesn't require it, or try another program.

    edit: Love that the reviewer above thinks it's ok to insult someone himself but is not ok with others doing that. BTW - I didn't insult their intelligence, but their understanding of math, and willingness to do work. While insulting me for being pretentious, you have defended my point - the majority of people pass the class. If the design of the class is so bad, why did around 85% of students have an A or B last semester, literally 0% failed, and 10% withdrew?

    edit 2: I am absolutely pretentious and condescending. I wasn't hurt by you calling it out. I was calling you out for being a hypocrite for doing exactly what you're critical of. Which you continued to do in your edit. And then you sound really pretentious yourself saying "i got an A and did less work" than some other reviewer. Good for you, simultaneously being the lone defender of the weak and failing 2% of the class while telling everyone how great you are for getting an A in just a few hours of work.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • Georgia Tech Student2021-04-03T15:02:15Zfall 2020

    This course is going to be easy, if you had some exposure to hard math or CS problems solving in the past (example: A => B is the same as !B => !A). Otherwise, it could be very tricky and you will have to spend much time gaining the necessary background.

    Pros. 1) You will learn to justify your opinion and will start seeing flaws in arguments of others. 2) You will learn to trace algorithms in your head, which a useful skill for anyone dealing with code. 3) You will learn standard techniques for many classical problems you will definitely see again later in your career.

    Cons. 1) Few coding assignments. Not really hands on. 2) TAs miss alternative solutions quite often. Get feedback from other students and get ready to prove your point. 3) Sometimes it's not clear how optimal your solution is. It seems alright, but there could always be a faster one and you never know when to stop digging. But such is nature of Algorithms in general, not just for this course. 4) Presentation of Graph Algorithms is not very clear about which graph representation is used. It could become a hurdle in HW and Exam problems, as sometimes you want to use an Adjacency List (actually default) and sometimes an Adjacency Matrix.

    Tips. 1) If you lack the background mentioned above, do as much as you can of the following in no particular order: take MOOCS on Algorithms, preferably ones that require you to write and justify solutions; read Algo books, e.g. DPV. Solve Algo problems from leetcode and such. 2) Read the book properly. Videos are only the beginning. Clarify every single doubt for yourself. Find a reason why they have presented solution in this particular quirky way. 3) Unit test your Coding Assignments a lot. E.g. you can lose 6/10 marks for missing out "=" in ">=" sign (I did). Test cases from Piazza help a lot.

    Rating: 4 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • Georgia Tech Student2021-04-02T18:10:19Zsummer 2021

    Actually, I think my original review was a bit heated, so I removed it to try to be fairer. Plus, I see two new reviews here. Also a disclaimer, I withdrew from this course and will take it again in the summer for what it's worth, so I only made it past exam 1. But that doesn't nullify what I experienced before withdraw.

    First, I am a state certified public high school teacher for over 10 years. So, I would like to think that I have a little credibility seeing as my degree is in education. My main problems with this course are its design and how the exams are weighted. The other problem is there's no prerequisite course that leads up to this class which means making it required and unnecessarily hard is not very fair to students looking to graduate.

    The video lectures are poor quality. He (the previous professor) will tell you the mechanics of the algorithms, but rarely show you "how" or "when" they are used. There are many convoluted explanations that just don't make any sense. Without concrete examples, you aren't really going to "get it" at all. Also, the videos are recycled from the old course and from a different professor. If students are to take this course seriously and work many hours, then why hasn't the course overall been treated in a serious manner with an update? It's insane they expect students work even harder to put together a course using a "resource dump" rather than updating the course itself. The course design has major flaws. For example, we don't need xyz, but they are in the video lectures. We need to know xyz algorithm, but that's not in the video lectures. But no worries, here are 10 different resources you can find it at.

    That said, there are too many resources and the class is way too fast-paced. With the video lectures, office hours, DPV practice problems, quizzes, coding projects, and other "suggested material" due almost weekly, you will never have time to get through everything. By the time you think you understand a concept, you are already on to the next thing leaving you not much time to do the suggested "practice problems" that are supposed to help you with the exam. Then there's a slack group, piazza group, outside notes, outside suggested books, and on and on. Information is too much, not centralized, and not focused at all. You spend 80% of your time in this course working on something that's worth 25% of your total grade.

    And ok so the exams are worth 25% each? That's alright I guess. However, they are weighted very poorly. If you mess up on one of the response questions for the exam, then you fail it. And there aren't many questions on the exams overall. Meaning the ton of material you just studied, well most of it isn't covered. Coming from a background in education, I would never set my students up for failure like this. I am not complaining because the exams are too hard, but that they are too weighted and designed poorly. This isn't the kind of exam someone with a background in education would design -ever. What kind of exam do you miss one question and fail? None that I've ever seen in my entire career. I will tell you now I only ever got past exam 1, but I read the reviews here and the rest are the same structure and similar means. So take my word for what's it's worth. Judging by the numbers, the majority of the class are failing each and every exam. That's not poor exam design?

    The TAs are very responsive and good in general. There are office hours. But you are not going to have a lot of time to spend on them. Overall, they just need give the course an update so that it's more focused. TAs want students to work hard, the students want a fair shot at passing the course if they are working hard. The course doesn't have to be made easier, but the exams should be designed to be passable at least by over half the class and cover the material from the video lectures more closely. This was not the case for me when I took this course and I doubt it will get fixed. The TAs work hard, they really do. But that doesn't fix the underlying structure of the course design.

    I have seen teachers that after a course is designed, they never want to let it go even if it is outdated. Because they get into a rhythm with it. But what they don't know is they are actually creating more work for themselves. Because a course that is poorly designed means students have more issues with grades and grasping the material. Taking time to update a course actually reduces headaches, improves morale and motivates students to learn.

    Response to above review:

    That doesn't go without saying that NEARLY ALL students that both passed and did not pass complained about the exam for this course in Slack. According to the reviewer below exam 2 was 41.5/60 = 0.69% average which looks like failing. And exam 1 was 44.6/60 = 0.74% barely passing. Fall exam 1 was 34/60 = 0.56%.

    I am guessing at this point that these are TAs responding which means that anyone reading those reviews should take them with a grain of salt. One below this practically is trolling students calling them idiots. It's a complete joke that people come here to tell others they don't belong in the program and see no issue with the exams. You are either extremely ignorant about this situation, or you have some vested interest to defend the course. I'm guess it's the latter.

    And many many students in this review site complain about the weight of the exams. Look below at the plethora of comments about the exams, I hope you are not blind. If many students are complaining about the exams semester after semester, then perhaps it's an issue with the exams -not the students. Many students that have problems with this course have high GPAs at gatech. They absolutely do deserve to be here by admission standards. It's asinine to say otherwise. It's wrong to say "maybe you're in the wrong program" because everyone was accepted to this program fairly. And many take this course as their last course, so obviously they have been successful at gatech.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 19 hours / week

  • Georgia Tech Student2021-04-02T15:19:55Zspring 2021

    I'm in the course right now and it could be better. It will involve looking at a lot of outside resources if you have not seen the content before. The course lacks focus and the exams suck as other reviews have mentioned. Class averages for exams 1 and 2 were 44.6/60 and 41.5/60 respectively. Exam 1 was easier this semester than previous semesters. The two problems on exam 1 were easier or on par with the HW problems. Exam 2 felt harder. HW alone is not enough to prepare you for the exams. Doing all the problems in DPV might be worth it. The problem is that these if these exam questions don't click in an exam setting, you're SOL.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 15 hours / week

  • Georgia Tech Student2021-02-06T04:51:38Zspring 2021

    I'd be entirely lost if I hadn't already taken an undergrad algos course. The lectures are awful and being part of graduate-level curriculum should not excuse poor lecture quality. Vigoda is a poor speaker and the lectures don't give meaningful background on the topics covered - they're mostly him writing out the solutions to a bunch of problems in very dense and unintuitive ways. He often jumps from point A to point Z without explaining the in-between. None of the lectures go through definitions. Basics like what is time complexity, what is the master theorem, what is a recurrence relation, or how does Dijkstra's work aren't explained at all, so good luck if you haven't seen the material before. Pretty lazy if you ask me. Why call it an INTRO course if you're going to assume we know everything already? These topics aren't properly explained but the exams and hws require them of course. The reviews that are praising the lectures and textbook must all be math majors. Watching Tushar Roy would be a better use of your time because his videos are way more intelligible. I'd skip the lecture videos (except for the quizzes which you'll want to study for the exams) and just use hws, office hours and piazza to learn the material. Make sure to watch Rocko's office hours. Oh yea, It was unclear to me who the professor of the class was - thought it was Rocko until after the 2nd midterm but apparently it's Brito, who is largely absent from Piazza / Slack. This class is very much run by TAs. Kinda unfair if you think about it from a compensation perspective.

    There are topics that aren't really useful to cover, and it felt like they were thrown in just to make it seem like a graduate level course (i.e. FFT, RSA). Prepare to rip your hair out trying to grasp FFT only to forget it entirely the moment exam 1 ends (here's a secret - you can probably skip FFT entirely and get by grade-wise on exam 1 because that's certainly what I did). Biggest waste of time ever because you know you'll never see that crap again.

    The course is structured to make it unnecessarily stressful - 75% from 3 exams, 10% homeworks, 9% coding projects, and 6% from quizzes. The 25% per exam is fine, but these exams are weighted in a way to make you fail. Each exam is 2 problems worth 33% each (66% total) and 33% from multiple choice / select / TF. Blank on 1 question on any exam and there goes literally 8% of your course grade. Pretty common occurrence. They pretend like they're fair and offer an optional final exam to replace your lowest grade, but rumor is that the final is tough as balls, so I'm guessing anyone who goes into the final with a C or below probably won't improve their grade anyway.

    The coding projects are trivial - not sure why the coding projects are so basic (e.g. code knapsack using this awful template code designed so you can't just grab a solution from leetcode) - my undergrad algos class had tougher and more meaningful projects. The two I've done so far took about 30 minutes each.

    The grading on the homeworks is ridiculous - be prepared to lose a huge chunk of your grade on a question because you accidentally labelled something an integer instead of a number in your problem definition.

    Also, if you're thinking you'll be doing a lot of coding and implementation because this is an algos course, think again. Aside from writing pseudocode for DP problems, every other topic basically asks you to explain solutions in paragraph form.

    Overall, it's feels like a low quality course that's hard for the sake of being hard, not for the sake of learning. I can't think of anything positive about it aside from the fact that it forces you to do problems and that a 70 gets you a B. Also the TA team is pretty good (thank god for Joves' notes). If you're in Interactive Intelligence, avoid this class. Your time will be better spent on free online algo MOOCs plus leetcode. For every other specialization, suck it up I guess (or switch to II?). Hoping to get out of this disaster of a class with a B.

    Rating: 1 / 5Difficulty: 4 / 5Workload: 8 hours / week

  • Georgia Tech Student2021-01-12T15:14:24Zfall 2020

    This was my first formal introduction to algorithms, and I have to say that it has definitely affected the way I approach the problems I encounter in my job. Even though it didn't feel like it at times, it seems the material really stuck for me. I got a 45% on exam 1, yet in the 6 or so weeks since the class ended I've managed to deploy a recursion and a divide and conquer implementation in the projects I work on. So I guess it worked?

    I haven't got anything useful to suggest as a replacement, but I'd hope to see this class place less emphasis on seemingly all-or-nothing exams in the future. The first was difficult for me, but I agree with others here that the second and third exams were a bit easier. I was fortunate enough to not have to take the final and get a B.

    Rating: 3 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • Georgia Tech Student2020-12-15T04:15:35Zfall 2020

    This class definitely lived up to the hype, it was challenging, interesting, gave me a stress rash, and I loved every minute of it. The class was well run with great TA's, a responsive professor, difficult, but fair, assessments and great classmates.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • Georgia Tech Student2020-12-14T18:44:32Zfall 2020

    Exams are the key to this course, In my case i came to this class without much preparation and had another class in parallel with some critical office deliverables but some how managed to clear this class. TA's are very quick in responding and i would mainly thank the fellow students, the notes were very useful. Some of the mistakes i did which you can avoid is :

    If possible, Prepare well for this course. Because it is a roller coaster ride and we have lot of topics to cover

    Take every exam / problem seriously because it is easy to lose a problem - Exam has the maximum weight

    Don't lose hope, even if we miss one of the exams we still have a final exam but it is cumulative we may need to prepare all the topics, In our case final exam was a little bit tough than the previous exams with more questions

    All the best

    Rating: 4 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • Georgia Tech Student2020-12-09T16:10:20Zfall 2020

    This was my final course and it was one of the more difficult courses in the OMSCS program. I barely managed an A and there was no curve for Fall 2020.

    Exams are heavily weighted at 75% comprised of 3 exams and 1 optional final that replaces the lowest exam score. This semester, the mean/median scores were as follows: exam 1 (34/37 out of 60), exam 2 (47/50 out of 60), exam3 (49/52 out of 60), and final (66.5 mean out of 100). Exams comprise of 2 written questions and a set of MCQs. The only way to do well on the written portion is to do practice problems. There really isn't a way around it. MCQs can be confusing so make sure to understand the lectures. I felt that homework (10%), polls (5%), and coding quizzes (10%) were all relatively fair.

    Good luck!

    Rating: 4 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • Georgia Tech Student2020-12-09T03:47:51Zfall 2020

    This was easily one of the top courses I've taken in the program, and going into it it's not even a topic I'm super interested in. I think what really made the course successful is extremely involved TAs and students.

    It's tough to give a difficulty rating. I've heard the course is tough so I really worked hard and spent a lot of time practicing the problems. I ended with a 97%, but on the other hand I feel like if I put in medium effort I could've been scraping by hoping to at best get a B. Since it's largely test based with a few problems, if you're unable to solve a test problem or two it could be a stressful course. But it has the advantage of containing almost exclusively senior students who are great at helping each other out, and once again the TAs are excellent.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 15 hours / week

  • Georgia Tech Student2020-11-24T19:03:08Zfall 2020

    This was one of the best courses in the program. It is definitely challenging, and takes a lot of practice and thinking to absorb and understand the material. The homework assignments were very helpful and the TAs and forums are great for getting feedback on the problems and understanding them.

    I had spent the previous two summers watching the lectures and going through the problems, so it's almost like I'm taking the course for the 3rd time in Fall 2020. There is nothing like the deadlines and pressure of exams to help you focus though.

    The option to take a final to replace the lowest exam is great. I ended up not having to take it even though I did poorly on the first exam. One thing to remember is to persevere through the course and keep doing the problems and you will get it.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • Georgia Tech Student2020-11-23T18:34:27Zfall 2020

    It is a hard class, but not as hard as many said. I put 8 hours or less on average a week, and ended up with an A (90%+ on homework/exams and 100% on coding quizzes/polls). I am not trying to sound smart. I was very struggling for AI and ML. I took 15+ hours a week for each of them, and ended up with solid Bs.

    All I want to say is that don’t be scared about GA. There were other classes harder and more time consuming than GA. Study hard, and you will be just fine.

    I usually spent 1 - 2 hours on each week’s lecture videos (I played them at 1.5x to 2x), and another hour on reading the textbook. Some homework assignments were really hard, usually I spent like 1-3 hours for each depending on how hard it was. There were 3 coding quizzes, which were fairly easy. I just followed the textbook or lecture to implement the algorithms. I spent no more than 1 hour for each. Polls were easy as well. It took only a few minutes. If you understand the material well, you can get to the right answers quickly. Studying for exams were stressful. I put 3-5 hours during exam weeks. During exam week, there was no assignment. There were 3 exams, and I skipped the optional final, which is used to replace your lowest exam grade.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 8 hours / week

  • Georgia Tech Student2020-11-23T00:15:28Zfall 2020

    I took this without any previous preparation and I found this extremely hard. If this is your first introduction to algorithms, do not go in like me.

    Fall 2020: Exams - 75% Poll - 5% HW - 10% Coding Quiz - 10%

    The exam model makes it even harder. You have 2 long answers worth 40p in total and 20p worth of MCQ. Mess up one of the questions in the first part and you are down a grade. MCQs aren't a walk in the park either. There is an optional final but for that you'll be studying the entire syllabus again with more questions and more MCQ. If it comes to a point where you can pass GA on either Exam 3 or final, put all your effort in Exam 3. don't be lazy.

    Whoever said "it gets easier after Exam 1" needs to clarify what they meant by that because it only got harder after Exam 1 in Fall.

    Content:

    For DP -> You can do a certain set of problems and get one of them easily. There's at least a boundary to this category until you hit repetition of patterns.

    For Graphs -> Good luck with the million combination of questions. To add fuel to fire, we had some number theory lessons with this one. #TeamFKGraphs

    NP/P & Linear Programming -> Lots of possibilities for tricky MCQs. Do NP-C reductions for everything covered in lectures at least. Do all the book problems. This exam is not in any way easy. If you are given a completely unknown problem you haven't seen before, it'll be insanely hard to reduce in an exam setting.

    Tips:

    General tips for people who have not seen algorithms before except when someone compared them to a cooking recipe:

    1. Do DPV chapter-6 problems and get a head start for Exam 1.
    2. Do the entire DPV problem set and get a head start for the entire course. (if you hate yourself)
    3. If you want a assured B, do all the practice problems, homework problems and wikidot problems without looking at the answers first.
    4. Some luck.
    5. Don't give up after Exam 1.
    6. Join a study group and teach the problems.
    7. Watch the OH and respect the TAs. TA's are human too. They make mistakes. Don't jump the messenger like a..
    8. Don't boast about how you registered for GA in your first semester and quit the entire OMSCS program after Exam 1. Yes, this happened to one person.
    9. There will be less handholding in this class. So, it won't be like ML4T.
    10. If you had an option to choose between having maximum homework or less homework - pick maximum homework. Exams will have variations of homework, book or lecture problems.

    The other realm:

    • If you have been leetcoding, you'll find E1 and E2 - somewhat easy. Make sure you stick to the exam format and rules. We know you like top-down dp approach and like to code but guess what? Dr. Vigoda can't pronounce memoization. The only area you would put some effort is to study for Exam 3.

    • If you took a UG-Algo class recently or years ago, don't worry about GA.

    Positives:

    • Great TAs - very hard working. Basically the team completed grading for E2 before drop deadline for 550+ people in less than a week for the sake of students.
    • Rocko (Gold) & Chris (Gold) & Cailin Pitt's motivational message on Slack - Without these three I would have quit half-way.
    • Joves' study guides - You might get negative marks if you pronounce his name wrong next semester, so watch out.
    • I like the guy who writes the announcements too. Forgot his name.
    • Very well-structured class.
    • Free Dr. Vigoda ASMR lectures.
    • Coding quiz and polls are good grade boosters
    • Can compose a book from Nishant's piazza posts and sell on Amazon.
    • Rocko's motivational videos at the start of exams.

    Not so positives:

    • Not a fan of exam format. One small tumble and you are down a grade.
    • The know-it-alls who don't own up to their mistakes, I-want-CCA-ers and hey-I-got-100-on-this give-me-attention crowd. There was this one annoying guy who took this course along with Deep Learning who wouldn't keep his mouth shut. They would do all the assignments so close to the deadline and shit on the TA's or the program whenever he got the chance. If you see a guy who says GA is a cakewalk or this course is too easy - that's the smart ass I'm talking about
    • This course would have been a great on-campus course. You'll understand why at the end of GA.
    • Dr. Vigoda saying something is a toy problem.
    • You'll hear everything in Vigoda's voice & talk like him after exams. Replied to my mom, "let me prove why this claim is true" and she was confused as f, because all she said was that we needed more rice next month.
    • Someone questioned why a past student made notes. lol?
    • Mistaking someone with a similar name to Ada from GIOS.

    Feedback:

    • I think GA is a well run course with awesome TAs and I'm glad I was part of this particular group.6515 team should be proud of their work.
    • Make it a rule to not let students post OH bluejeans in public (slack) next semester or make it so it's authenticated to our GA student group only for obvious reasons.
    • Please make sure not to show anonymous posts with TA view by accident.
    • Share some meditation videos and how you deal with anger management by TA-ing this class.

    so uhm yeah. good luck and " "just have fun with it" - Rocko " - Michael Scott.

    Note: This fall 2020 batch was an incredibly smart batch. The mean was over 80% and there was no curve this semester at all. So do not depend on the curve blindly.

    Rating: 4 / 5Difficulty: 5 / 5Workload: 30 hours / week

  • Georgia Tech Student2020-11-22T22:35:37Zfall 2020

    I have just passed this course - as I will not be sitting the final (optional) exam. This is my 9th course in the program.

    Overall I was quite anxious about taking this - as it had been many years since my undergrad course. The first module on DP certainly didn't help - but once I got back into the swing of things, it became easier to see the light at the end of the tunnel.

    The material for this course is top notch, the videos are excellent and the TA's, office hours and support on Piazza is probably the best I've seen so far.

    This course has a significant workload, both in staying on top of the lectures, and in the weekly homework (I'll leave a breakdown below of how it ran for Fall2020). A couple of times I wasn't able to stick to my schedule and needed to work through the weekend to get things done.

    The course does have a lot of work, however all of the coding, polls, and homework only account for 25% of the grade - then three exams account for the remaining 75% (there is the option of taking a 4th exam that will replace your lowest score). Exams 1-3 are only for the modules leading up to it, exam 4 covers all of the semester. Exam 4 is only open to those that have strictly less than an A, though you need to do the math as it's easy to make your grade worse by taking it.

    Office hours and the unofficial guides online [1, 2] are excellent to help prep for the exams and to reinforce each of the modules.

    In terms of difficulty:

    • Homework was average difficulty, and focused on the module for that week.
    • Coding quizzes were trivial (e.g. implement this algorithm in python, using this skeleton provided). These did a smoke test with gradescope, but you could not see the full test suite.
    • Polls... these were mostly ok, but seemed to be designed to trick - you get two attempts at them, but you can open them and leave them open for as long as you like (there is no time limit).
    • Exams: All of exams 1-3 were of the format: two long form written questions, worth 20 points each, and 8 MC questions worth 20 points - so total out of 60. For exam 1 and 3 we were told what each question would focus on, we didn't get this for exam 2. I found exam 2 to be the easiest (only 1 MC incorrect), and exam 3 to be the hardest (all MC correct but groking NP reductions....).

    Here's how things broke down in terms of deliverables:

    • Week 1: Homework 1
    • Week 2: Homework 2, Poll 1, Coding 1
    • Week 3: Homework 3, Poll 2
    • Week 4: Homework 4, Poll 3
    • Week 5: Exam 1 (covering DP, Divide + Conquer)
    • Week 6: Homework 5, Poll 4, Coding 2
    • Week 7: Homework 6, Poll 5
    • Week 8: Poll 6, Coding 3
    • Week 9: Exam 2 (covering Graphs, Max Flow)
    • Week 10: Homework 7, Poll 7
    • Week 11: Nothing! There was some election or something in the US.
    • Week 12: Homework 8, Poll 8
    • Week 13: Exam 3 (covering NP completeness and Linear Programming)
    • Week 14: Optional recap.

    Overall my grade was 82.36%, which is a B (unless the cutoffs get shifted).

    Good luck!

    [1] https://teapowered.dev/assets/ga-notes.pdf

    [2] https://gt-algorithms.com/

    Rating: 4 / 5Difficulty: 4 / 5Workload: 10 hours / week

  • Georgia Tech Student2020-11-19T16:19:25Zfall 2020

    TL;DR Great course, not as scary as the stories go,definitely possible to score at least B on 1st try.

    I was really nervous starting GA, and this was my last course in OMSCS. Took it alone for this semester. I would suggest doing so. I took summer off and started prep for GA then.

    Coming from a non-CS background and hearing horror stories about GA and finding out that the breakdown this semester was reverted to 75% exams made me nervous.

    I spent the summer starting from basics of time complexity analysis etc, I saw all videos on YouTube by Abdul Bari and then watched all videos from Standford's Tim Roughgarden. Then watched Udacity CS6515 videos as well. Wanted to read/solve DPV, but did not find time to do that in summer.

    There were 8 hws, 8 polls(basically 1 MCQ per poll) and 3 coding quizzes (pretty easy). Hw were 10%, polls 5%, coding quizzes 10% and exams (3) 75 %. An option final to replace worst score can be taken if needed.

    The homework and practice problems were similar to what we saw in the exams. The exams were 60 points with 2 long questions for 20 points each and MCQ/short answer questions being 20 points broken into 8 parts.

    The lectures are great, the textbook is slim and concise. Doing the exercises at the back of assigned chapters and homework is all you need to get B or better and the mantra is "Practice, practice, practice". The OH are great, very well managed and great source for understanding stuff anything you missed.

    Try solving DPV problems on your own, but do not hesitate to look up answers online if you are struggling/stuck and remember to look up similar problems online for practice, especially for NP complete section of the course. Also put in effort to understand the 'trick' behind the solution. Study smart not hard!

    The exams and grading was fair. Exam 1 MCQs a bit tricky. At least 1 questions out of the 2 long ones was very similar to hw problem.

    We moved to Honorlock this semester, and that was a problem on its own as well for exams. But then from exam 2 we moved to Canvas for exam delivery and it went smoothly after that. Also the strict requirement for external Webcam no longer holds because of that.

    For exam 1 the nerves of test taking took a toll on my score, but exam 2 and 3 got me back in the game. I went from thinking about dropping at one point and managing a B to now after exam 3 getting an A(the score aren't out yet, but from Piazza discussion I know what score to expect, and my exam went very well).

    A big thanks to my colleagues this semester for creating and sharing study docs and engaging in Piazza discussions. This was I think my first course were discussing any question from Book or homework, exam or otherwise was not frowned upon rather encouraged (on Piazza) Thanks to the TA team as well was being so great!

    So here I am ending by OMSCS journey on a high note concuring the GA beast with an A the first try!!

    I got OUT!!!

    Rating: 4 / 5Difficulty: 3 / 5Workload: 12 hours / week

  • Georgia Tech Student2020-11-16T19:53:09Zfall 2020

    This class was tough. I enjoyed learning the material, and the exams mostly reflected the homework and material. There was a lot of good discussions, and crowdsourcing going on.

    This class is non-stop full of work. I took this class by itself, and will say that it is just as hard as taking one hard class + one easy class in a semester. There is homework due every week (mostly), and the second third of the class is tough because you might end up being a week being from studying for the first exam.

    Make sure you are mentally prepared for this class.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 36 hours / week

  • Georgia Tech Student2020-10-25T07:27:35Zfall 2020

    If you are planning to switch job this course would be ideal to align the skills needed for interviewing. I did this course in my Undergrad and this was a good refresher. Lectures are super helpful in getting crisp understanding of the concepts. But every week you will have lot of deliverables which makes difficult to plan outings or family time during weekends. I think this course should not be taken along with other course.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 8 hours / week

  • Georgia Tech Student2020-10-23T02:01:15Zfall 2020

    This is my last course in the program, possibly my favorite. Very well run. Difficult material, but they set you up for success.

    The material is fascinating if you're a Computer Science nerd like me... I went down so many rabbit holes, but had fun doing it.

    Excellent instruction team. Textbook is great, slim and to the point. Lectures are the same. Weekly Office Hours to help you with key points and walk through solutions to problems.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 13 hours / week

  • Georgia Tech Student2020-08-14T04:09:59Zsummer 2020

    If you have taken undergraduate algorithm course. This course isn't that different. Since I was already familiar with the material, I found the course to be okay.

    Rating: 3 / 5Difficulty: 2 / 5Workload: 4 hours / week

  • Georgia Tech Student2020-07-28T13:34:46Zsummer 2020

    I was really nervous for this class because of everything I had heard and because I don't have a CS background, but I enjoyed it and didn't find it all that challenging. I'm genuinely confused about the complaints regarding unfair grading. The professor basically gives a template for how to answer each type of problem and a lot of the exam questions seemed to be a modified version of a provided practice problem. My advice to students is do all the practice homework problems, watch the office hours, and invest in an external webcam. (Shelling out $50 for a webcam is annoying, but it does make the exam proctoring less stressful)

    Rating: 4 / 5Difficulty: 3 / 5Workload: 5 hours / week

  • Georgia Tech Student2020-07-27T16:10:31Zsummer 2020

    I spent the 7 prior semesters hearing horror stories about GA and I don't have an undergraduate CS degree (and thus have never taken an algorithms course), so I went in expecting a very painful semester. I was pleasantly surprised to find the material challenging yet approachable, and the workload very manageable. The lectures are well-done and explain things very clearly, yet aren't overly long and bloated. I rarely found myself having to do outside research to understand the lectures despite my limited algorithms background. Overall, you'll learn a lot of useful and interesting material if you're willing to put in a reasonable amount of time/effort.

    Another great thing about this course is that the instructors seem genuinely invested in the success of every student. Grades came back in a very timely manner, Piazza questions were answered quickly and thoughtfully, and regrades were reasonable and amicable. The thought and care the TAs put into their work made this class one of my favorite so far in the program. I believe the head TA for this semester was different than usual, but he did an excellent job.

    My main issue with the course is the exam format. This semester, exams counted for 60% of the final grade, which I understand is less than the 75% they used to count for in previous semesters. However, like other semesters, each exam was heavily proctored and had only 2 main questions so if you blank on one, you're in some hot water grade-wise. I don't feel that this small sample size is a good measure of student ability and knowledge (especially for those with test anxiety); for example, I froze up and got an extremely low grade on the first exam (<50%) even though I truly feel that I understood the material completely, and I spent a ton of time practicing for it. That being said, I still ended the semester with a very comfortable B, so don't panic if you have a rough first exam. I just wish there were a better way to test student knowledge that didn't come down to a high-stakes all-or-nothing test scenario where one bad question can throw away weeks of studying.

    Most of this has been said by others before, but here is my advice for success:

    • Watch for patterns, especially with DP and NP-Complete problems. With enough practice, you will notice patterns that make it very easy to identify what needs to be done for any particular problem. Which brings me to my next point...
    • Do ALL the optional practice problems give on the homeworks, plus extra out of the book. This is absolutely the best way to prepare for the exams and if you get lucky, the exact problem you practiced will be on the test (happened to me in the final).
    • Take the homework and coding quizzes seriously and make sure you're confident about both the correctness and completeness of your answers. I ended up with a 99 average on the homeworks which saved me from my disastrous first test score. You can check your answers on the internet so take advantage of that safety net.
    • Don't panic. This class is not the smoldering hellscape that other students would have you believe, and you'll get through it just fine!

    Rating: 4 / 5Difficulty: 3 / 5Workload: 12 hours / week

  • Georgia Tech Student2020-07-27T06:33:33Zsummer 2020

    This class is difficult not in subject matter but the grading structure of the class overall. Homework (25%), Tests (60%), Polls (3%), Coding Quizzes (10%). There are several issues here: 1. There is no leeway if you completely bomb a question on an exam. There are typically only three problems total. If you bomb one, you are essentially done. In addition, the tests in my opinion are not fair. Many times it feels like russian roulette as to the difficulty or subject matter of problems presented on the test. The hw problems are not indicative of the difficulty of the problems you will encounter on the test and you can be sure that the professor will throw in some "trick" to trip you up. 2. Homework is 25% of your grade. You only get six to eight total. This would seem as though it's to your advantage. However, homework grading is extremely subjective at times with TAs pressed to meet tight deadlines and grading several assignments at a time. In addition, instead of being able to learn by doing the hw, you are now stressed and fighting for points as doing well on the hw is critical to success in the class due to difficulty of the exams. There is no room to learn here. Make a mistake and bomb a hw and that's essentiall 3 points off your total grade. 3. The proctoring requirements for exams make a stressful exam even more stressful as one has to ensure they perform each step or else be deducted points. 4. When submitting coding quizzes, there are base cases that are automatically graded on the spot and give feedback as to whether your algorithm passed. That's great, until you are deducted points for not accounting for some arbitrary case not listed in the requirements. 5. The lectures are as dull as they come. Brutally dull and superficial at times. Professor goes over simple examples in the lecture which does nothing to help with the actual difficulty of exam questions as stated previously.

    Rating: 1 / 5Difficulty: 5 / 5Workload: 16 hours / week

  • Georgia Tech Student2020-06-25T23:40:43Zspring 2020

    This is a great class. The subject closely follows that of the textbook by Dasgupta, which is a phenomenal resource, and essentially covers the entire book, including some interesting unconventional topics like the FFT and NP-Complete reductions. The class lectures by Eric Vigoda are also done very well.

    The course handles like a tough undergraduate algorithms course in terms of scope and pace. In terms of assessment, it's straightforward and fair. The homework and exams are meant to test your fundamental knowledge and aren't especially hard or tricky.

    That said, this is algorithms, and it requires logical thinking and mathematical facility, so don't expect to learn the material without banging your head against tough problems. And that's really the key to success: do lots of problems (and spend time on them before peeking at solutions).

    The TAs who are active are excellent, and the course is very organized. This is definitely one of the top courses in the program.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • Georgia Tech Student2020-05-12T05:19:49Zspring 2020

    I put in like zero effort and got a B with a software engineering background (I excel at math). I didn't read the textbook at all but I did do the problems in them to prep for exams, which I highly recommend as the exam questions are similar/identical. The material is fantastic, the lectures are fantastic, and the problem sets are fantastic. I loved this class, it's easily the best I've taken so far. You aren't drowned in homework and, if you struggle, can apply efforts into studying the material your own way.

    Rating: 5 / 5Difficulty: 2 / 5Workload: 6 hours / week

  • Georgia Tech Student2020-05-06T17:21:22Zspring 2020

    I have a non-CS background, coming into this class relatively cold with no formal background in Algorithms. Apart from some small mention of Big-O back in my undergrad when I took an introductory course to CS (which was about 8 years ago), this is the first time I’ve encountered these topics. I have a fairly strong math background, though. I took this class in my last semester in OMSCS, along with two other classes, and while working part-time. I ended up with an A in the class.

    The strategy to doing well in this class is to study the well-established algorithms and concepts and be able to apply them for new situations. For example, in Dynamic Programming, the Longest Common Subsequence can be applied in some way to the Palindrome or Edit Distance problem. In Divide & Conquer, all problems can be solved using a Binary-Search-like or MergeSort-like approach. In NP-Completeness, a lot of problems are some version of another problem. I think that in order to master the material, your best bet is to do a lot of practice problems in order to “recognize” the problem.

    My main critique about the course is regarding the lecture material and textbook. I personally felt the lectures and textbook chapters were way too concise. There were moments where the professor or author is like “Oh, and of course, this is the obvious solution? Isn’t it elegant?” and I’m scratching my head like “What??” Then I proceed to read the chapter a couple more times, and google for online lecture videos of these concepts to get an alternative lesson. Throughout my time at OMSCS, I think I ended up having to search for supplemental study materials more often in this class than any other class I’ve taken. I’m a bit surprised at some of the other reviews that say the course materials are perfect, but I also wonder if this may be due to my non-CS background.

    For the most part, I enjoyed taking the class with the instructors as I thought they were very knowledgeable. It was nice to have office hours and hear someone talk about the concepts in real-time (Rocko is awesome!). I think considering how theoretical this class is, it’s difficult for the online format of OMSCS to properly capture the heart of a class like this. This is one of those classes where I almost wish I could be in a classroom to ask questions during a lecture. Of course, this is not a fault on the instructors, but the nature of the game. That being said, I’ve always thought that the instructors were fairly open-minded to discussion on Piazza. There were a handful of times when a student opens a discussion on their different (though correct) algorithm for a problem, and the instructors (and students!) chime in with helpful feedback.

    Grading is kind of tough, if I’m being honest. The key to getting points for your answer is making sure you apply the concepts in the most efficient manner. Your Big-O matters! I always try to make sure that I state my assumptions clearly, and construct my answer as concisely and as completely as possible. For the most part, I’ve always been able to get full points back, or at least, partial credit. But then, at times, during these regrade requests, the instructor also decides to take off points for something else, or decides to penalize more for something already penalized, so proceed at your own risk! It’s a bit frustrating, and at times, I do feel a bit discouraged about asking for points back for something that I’m pretty sure is correct. Though they offer a chance for you to redeem a bad exam grade with a cumulative final, so that's pretty helpful.

    Overall, this is not my favorite class because it's more of a writing class than a programming class, but I do think it is important to take. You have to put a lot of work into it to do well. I can see how if someone is also working full-time while doing this class may have some challenges since this class requires a lot of dedication and time to master the material if this stuff is pretty new. Heck, I barely feel like my own sanity is intact after this semester! Now that I’m done with the program, I intend to try my hand at actually programming the concepts taught in this class during my free time. I think these topics are definitely important to learn in order to be an effective programmer.

    Rating: 3 / 5Difficulty: 3 / 5Workload: 10 hours / week

  • Georgia Tech Student2020-05-05T06:06:44Zspring 2020

    OMSCS

    Rating: 5 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • Georgia Tech Student2020-05-03T08:16:33Zspring 2020

    I have to admit that I was really bad at algorithms before this class. I didn't do well at all in undergraduate and even when I took this class previously at graduate level. I had trouble answering a Fibonacci question in an interview 2 years ago. Not only did I not use the dynamic programming solution but I think also got the recursive solution wrong. Yep I was that bad even probably 5 months ago. I mean if you know the answer to Fibonacci right now before opening the book with dynamic programming or if you can just read the Fibonacci question and think of a way to solve it in O(n) if you have had any programming experience or if you also know what O(n) means then I think you will be just fine in this class given you study regularly and follow how to properly use the format in the class to answer questions. Remember to follow the format while answering.

    For those that are worried or have limited background or are just bad at it (like I was - hopefully 'was') there is only one way to get through this class clearly. And that is practice practice and practice like the professor says. First of all the official book is DPV. Get that right now, and if you plan on taking it in summer then start solving DP problems and watching lectures right now. You will need to first make sure you strengthen your basic algorithms. Meaning the book and lectures have certain basic algorithms that you need to know and once you know these problems you can use them as guidelines to solve more complex and twisted worded problems. However the only way to get that is to solve lot of them and maybe even repeatedly solve the ones you cant remember how to solve if you look at them a week or so later.

    The proctoring rules makes it a bit harder (sorry guys this is the common format of algorithm exams usually - 3 tests and some projects with home works and exams using pen and paper) but here are few things I followed that you might find useful (could be different when you take the class so DO NOT DEPEND ON THIS)

    Invest in a good external webcam that can be mounted. I took all OMSCS exams in the last 2 years with an external webcam so I already had one. Macbooks mostly have decent webcams so maybe they are exempt from this but the proctoring setup will get tricky without an external webcam.

    The basic idea is that while you write the test on a desk, your screen should be visible, your workspace should be visible, and when you upload the scans everything about you and your scanning hardware must be visible. Problem is that you will need to push your laptop away from you if you used the in-built webcam so that the entire workspace is visible so you either need a large desk or some way to achieve this possibly by mounting it higher at an angle or something but be very careful and confirm everything including your head can be seen. I bought a 10$ amazon basics tripod. Mounted the camera and set it at a distance. This way pretty much all the area was visible and it was a very simple and cheap solution that worked. TRY YOUR SETUP BEFORE YOU TAKE THE ACTUAL TEST.

    Why proctoring setup is important? You need to stop feeling stressed of inadequate proctoring requirements and focus on the test itself. If you worry about proctoring, you will miss the fact that the test itself is the part that gets you the grade not proctoring. So get it out of your way first.

    A phone can be used end of the test to scan and upload or a scanner connected to the PC. No you can't scan and send from the phone directly, you can email it to yourself or use a data cable but the upload must happen from your proctored device. So make sure you have backup device in case your primary scanning device doesn't work. I had a scanner but I used a phone with a scanner app for all three tests where I emailed myself the scans then opened the email in the proctored PC and uploaded via Gradescope. The phone method is way faster than a scanner.

    Finally practice the setup with the onboarding. I also asked a friend to setup a practice exam for me (he sent me some random problems from leetcode in mail and then I didnt look at the mail until I took the practice exam) before exam 1. So I practiced with the onboarding which is unlimited attempts and open throughout the semester. I think that helped.

    I ended up with an A. Study regularly for this class (recollecting something you practiced 2 weeks ago can be tricky). And remember to keep your calm during the test. You might not get it initially but if you wait for a few minutes and think about the problem from different ways you might get it eventually. Also whatever format for the semester they give you, you still need to put in same effort but the class is very well managed so that can help you put the effort in right places. This might all sound a bit stressful and lot of work, but honestly as a Computer Science Graduate Student, its really fun to do algorithms once you start getting a hang of them which I can only say now after being terrible at it for so many years.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 25 hours / week

  • Georgia Tech Student2020-04-27T19:19:05Zspring 2020

    One of the best classes I have taken. A must do for anyone who has not already taken an algorithms course. The course covers a range of interesting algorithms and their time complexity, going through most of the DPV book. The lectures are excellent as well as the TA and Professor involvement in Piazza.

    The course is hard but very fair. Most exam questions were similar to questions in the textbook so if you studied you should do well. The nature of the exams did add pressure. In one exam I got less than half points, mostly due to misreading one of the questions. Despite this I was still a hair under an A grade going into the final, and the final is optional and can only improve your grade by replacing the weakest exam score.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 10 hours / week

  • Georgia Tech Student2020-04-24T18:54:28Zspring 2020

    One of the best courses in OMSCS and hats off to Prof Brito and the TA team.

    Videos are the best and provide in-depth understanding of the topic

    Textbook selected for the course covers the topics in details. But Prof's videos and TA classes make it possible to understand all the material.

    Not an easy course but definitely one with the most learning.

    Can't express enough gratitude for Prof Brito and TAs for their understanding of the entire pandemic situation and adapting the course load to help the students as best as they can.

    All in all, one of the best courses I have ever attended anywhere

    Rating: 5 / 5Difficulty: 5 / 5Workload: 20 hours / week

  • Georgia Tech Student2020-04-23T21:05:19Zspring 2020

    One of my favorite courses in OMSCS! The lectures are very clear and the textbook is very concise. The homeworks were very good preparation for the exams so there were no surprises. For Spring 2020, the first exam (DP, D&C) was easy, so they made exam 2 (graph algorithms) quite difficult, and ended with a moderate exam 3 (NP completeness, LP).

    My biggest tip for those who take the course is to do as many of the DPV problems as possible and really study them. Sometimes exam questions are taken straight from it. I did this and ended up with ~98% in the course.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • Georgia Tech Student2020-04-21T18:30:28Zspring 2020

    Lectures are very in depth and well organized. Get started on them early because they can be very long. To succeed in the class, do as many practice problems as you can get your hands on. I spent the time every week to do 5-10 problems from the textbook and I believe it paid off greatly. This class was a lot of work on top of the coronavirus pandemic. Expect an assignment or exam every week. Do not underestimate the time you'll need to devote to the class. As with many others, this was my last class in the program and I found it very enjoyable. I learned a lot and I only wish I was able to take the class earlier in the program.

    Rating: 4 / 5Difficulty: 5 / 5Workload: 25 hours / week

  • Georgia Tech Student2020-04-21T16:42:01Zspring 2020

    Overall very good class. Leave your computer alone, spend much of your time on your scratch paper and understanding the concepts from the video and the book and all will be good. Algebra is must. Try to do as much exercises as possible in the text book after each chapter.

    Rating: 5 / 5Difficulty: 3 / 5Workload: 35 hours / week

  • Georgia Tech Student2020-04-14T19:08:06Zspring 2020

    Overall, this class was reasonable this semester. I worked my butt off and got an A. This was also my last class in the program.

    Similar to previous semesters, if the coursework is not familiar to you, you will need to study and practice a lot. The secret is to do as many practice problems as you can.

    The tests were difficult and the proctoring was ridiculous but it is worth it in the end. If you do well enough, you can finish the semester pretty much in April.

    Homeworks were worth 30%, Tests worth 20% each, quizzes worth 10%. Homeworks were important and you really need to make sure you get every detail right, and follow the instructions.

    I have an EE bachelors so Algorithms was not my strong suit. But I'd like to think it is one of them now.

    Rating: 5 / 5Difficulty: 4 / 5Workload: 20 hours / week

  • Georgia Tech Student2020-04-14T16:59:39Zspring 2020

    Background: This is my last class in the program and I've taken it once before. I previously dropped after Exam 2.

    This term the class seemed really reasonable.

    -Homework had significant weight. It could really help your grade if you put effort into it. DO NOT BLOW IT OFF. YOU'RE JUST PISSING FREE POINTS AWAY.

    -A "final exam" was offered optionally so that you could replace a low exam grade. (I did not take it so can't comment on how bad it was).

    -Exams were hard but they were reasonable when grading them; especially exam 3.

    -Rocko's office hours were awesome. It really helped.

    Outside of that:

    -Participate in the Slack channel. (#cs6515)

    -Do the additional "not-required" homework problems. Besides outright practice (DP), some of the questions are really close to exam problems.

    -Completely tanking an exam problem can still drop you 8% of your final grade.

    -Their proctoring requirements are still pretty ridiculous.

    Overall, the class has a reputation that proceeds it. They've made changes. If you put forth your best effort, getting a B should be reasonable. Getting an A is a bit more of a challenge.

    I ended up with an A.

    Rating: 4 / 5Difficulty: 4 / 5Workload: 15 hours / week

  • Georgia Tech Student2020-04-14T05:54:59Zspring 2020

    A very easy class. I like the lectures, which are crysta