Awesome course! Professor Roughgarden is fantastic. The material was appropriately challenging. Perfect amount of rigor. Only one minor squabble: the hash problem set is terribly misleading.
It was an awesome experience to learn from such a teacher. Now I have a much clear view of the graph algorithms. I have enjoyed this course. Thanks to Stanford for offering this course.
By Divij S•
Similar review as the first course.
1) Assignments 1 and 4 test your ability to write optimized code which can handle large input sets (1 million integers) more than knowledge of the algorithm itself. This would be fine except that there is no support or material for figuring this out. Assignment 1's solution as taught in the course, for the most part, does not work for that input size. It's a week of frustration trying to figure out how to handle that. I STILL don't have a proper solution for that problem.
2) NO support from staff/mentors/students in the forum, especially for those input size problems.
3) Quizzes tend to test maths knowledge not taught in the course too much - this is less the case in this second course than the first one
Probably not going to do the 3rd and 4th courses.
By Krishna K•
I think this is an excellent class. However, I really needed to both watch these AND read Cormen's Algorithms textbook to understand and grasp the concpets (And even answer the quizes). I think the pseudo code could be better guided as it is a struggle to really understand what it is supposed to contain.
I think a nice additional feature that should be added to the class is a solutions explanations for the quizzes and final exams. This should only be unlocked after passing the quiz, but it would be useful as an aid to understanding why the solution is right, rather than just guessing. Some other coursera classes do these, and I think for this class in particular, it would be a big help.
By Alexander L•
Very interesting. I learned a lot of new things. 5 stars!
Just a few things that could be improved:
-- The video and its audio are not really synchronized (maybe because the video is pretty old)
-- The subtitles are not good. Even the english ones were not written by someone who knows what the professor is talking about...
Nowadays there are better solutions to validate whether someone solved a programming task. geeksforgeeks.org and hackerrank.com for example just execute the program with test input.
But all in all: Very positive experience.
By Mario R G•
Magnificent, well structured and explained, with some creative ways to see algorithms.
The only thing I would recommend is to use additional references for the graphs section, CLRS and KT for example helped me a lot.
By Jayachandra B A•
Interesting problems and explanations. But mathematical analysis is going off of my mind. It has very good explanation. Not sure, whether I can carry forward that knowledge or not.
By Hoang N•
One of the greatest courses on this website. However, I believe this course will be more approachable if it contains more practical guide such as sample solution for algorithms.
By Danijel P•
This is an excellent course! It is well explained and I would recommend it to anyone interested in algorithms and data structures covered in this course.
By Ziyan H•
By Chris S•
Good course, but instructor does start to move fast and a few walk-throughs in certain spots would be beneficial . However the lack of it makes you do your own research, which is also beneficial.
By Anurag G•
Using slides would have been better but anyway great content. Over simplified sometimes though.
By SARAGADAM N•
we can't understand the writing. please provide the slides to understand better.
By Brian C•
This was another good one, providing a slightly deeper dive than I had seen in other courses. The big revelation here, for me, was the addition of Bellman-Ford algorithm for evaluating shortest path in networks (graphs) that have some negative distance values between nodes.
I also like the approach to data structures (high-level, then drilling down into increasing detail for level of interest) I find it hard to say I understand a data structure based on "Interface and Theory" and I would have felt the certification meant more with at least a rudimentary implementation. I guess that makes me a coder at at heart.
I am about to jump into the next course of the specialization: Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming As with the two courses before, I am expecting new revelations about the kind of programming issues I've been solving for more than fifteen years.
By Shiv K•
Really taught me a lot. Rather well-explained, except proof of Dijkstra's - Wikipedia explains it better and faster. But good walkthroughs of how algorithms work, because it helps you to visualise and understand properly. Interesting assignments, although it would be useful to have test cases provided because, especially for week 1 and 4, it takes a ridiculously long time to run the program, and it would be wasted time if you turn out to get the wrong answer. Test cases would help you be more sure that your code is right before you attempt to run it on the humongous file. I had to use PyPy to speed the programs up because I use Python which is generally slow. Advice: for week 1 and 4, use C or C++ or some other fast language. Or Cython if you can get it to work.
By Benoit P•
This is a great course. The teacher is very clear, and the material is very interesting. The programming assignments are interesting: the problems asked are very simple, but the input is generally too large to use brute force: you really have to implement the algorithms presented in the videos. This makes you realize how much smart algorithms can make a difference.
The level of the class is relatively high, compared to other Coursera courses I've taken. If you want some serious training on algorithms, look no further.
By Victor C•
The course is exceptional, but it could use some touchups. For instance, some of the programming problems are ill-described and you implement what is not "asked" for. Use the forums do get actual detail that should have been included. On the other hand, that's what "real world" problems are like; except they are even worse; even the question is not asked... In that sense it presents a real mystery which requires pre-programming thinking that is in itself a long wrought skill.
By Piyush S•
I think this was the best course of the specialization. Stacks, queues, heaps, search trees, hash tables etc. are data structures everyone should know; when to use and their raison d'etre as he says.. and to that end this course is very effective. This course also has a very nice flow. And of course, Prof. Tim Roughgarden is simply awesome. I wish I got a chance to be in his offline classroom.
By Jonathan M•
Very comprehensive introduction to data structures like graphs, hash tables, and heaps. This course does a great job of introducing these concepts at a high, language agnostic level. The focus is more on conceptual understanding and understanding how and why the data structures work; with this understanding the programming assignments become manageable.
By Hagen T•
This is an excellent course on algorithms, that has given me a deeper understanding of the subject.
I am a theoretical physicist using this course as preparation for coding interviews, and the speed, amount of rigor and optional material (the optional theory problems in particular) feel perfect for my learning effort.
By Aria B•
I particularly like the fact that you can answer the home-works in any programming language you are comfortable with. I also like the level of material. As someone who has technical background but not computer science, I learn many new ideas in every course of this specialization with minimum waste of time! Thank you!
By Anthony J O•
I enjoyed this course, it was more challenging than the first one in the sequence, especially in the graph-search portion. The last 2 weeks are much more simple, but it is still essential for any serious student of CS to learn about data structures, especially common and practical DS such as heaps and hash tables.
By Joshua S•
It's a good course, but doesn't offer as much breadth as the first course. If you've never seen these concepts at all, this is a great starting point. If you are looking for a refresher, you might find that this course doesn't cover all the topics you want to drill into.
By Damian C•
I found this second part of the Algorithms stream fascinating. Getting into the details of Algorithms I only knew by name before was an extremely rewarding experience. Lots of fun and very enjoyable. Thanks Coursera for making the available, keep the good work!
By John W•
I am still really enjoying the course. The programming assignment for week four didn't require a hash table to implement, so didn't seem entirely relevant to the week's material (instead I used sets). At any rate, would wholeheartedly recommend the course.
By Konstantinos F•
The professor is amazing. He has the ability to present the material very clearly, concise, and with a good dose of humour! I would definitely recommend it to anyone interested in algorithms and data structures as an undergraduate or a professional.
By YEH T P•
Data Structures helps me resolve problem quickly, and force me to think the problems in a more solid way. I will try to figure out what kind of operations I need when solve a specific problem and which data structure is suitable in that situation.