KS
This is an excellent course. Though the assignments are quite challenging, it is rewarding to complete them. Professor Roughgarden's explanations are wonderful.

The primary topics in this part of the specialization are: data structures (heaps, balanced search trees, hash tables, bloom filters), graph primitives (applications of breadth-first and depth-first search, connectivity, shortest paths), and their applications (ranging from deduplication to social network analysis).

KS
This is an excellent course. Though the assignments are quite challenging, it is rewarding to complete them. Professor Roughgarden's explanations are wonderful.
TG
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.
MB
T​hanks a lot to Prof Roughgarden for great lectures, to course mentors and fellow students for fruitful discussions. It was a hard, but insanely informative course.
OS
Nice that this course gives ability to learn the inner implementation details of data structures. That was required for my work and was covered in the course on great level.
AU
I like the handwritten slides during the lecture. It reminds me of actually sitting in class and the professor developing the material on the chalk board live. Very cool.
LT
this course is a lot more difficult and challenging than the first course because of the concepts are more abstract, but it's really interesting!
HC
Focused on principles and motivations behind algorithms. You might forget an algorithm you learned, but you will definitely be able to come up with one quickly after this course.
AA
The best algorithms course available. More on the theoretical side which in my opinion is more important, if theory is understood, implementation becomes second nature.
AC
Tim really did an awesome job preparing the lectures for this course. Material was presented quickly, efficiently, and engagingly. I highly recommend this class.
JE
I am very confident in the skills I learned. I have read some books on algorithms but this course makes the application so clear regardless of your programing language.
KS
Learning algorithms is a must for all computer scientists. This course propels you on the path and kindles the spirit of inquiry and knack for finding better solutions.
HN
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.
Showing: 20 of 238
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.
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.
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.
The course was exceptional. Coming from a background unrelated to computers, I encountered no issues in comprehending the material. Despite the considerable time it required to grasp all the concepts, I remain committed to completing the course and earning the specialization certificate. I highly recommend this course to anyone serious about advancing their programming skills. However, a word of caution: enhance your probability and statistics knowledge to fully benefit from this course.
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.
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.
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.
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.
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.
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.
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.
Clear, concise, a right mix of rigorous mathematical proofs and engineering advice.
wonderful
noice
Using slides would have been better but anyway great content. Over simplified sometimes though.
we can't understand the writing. please provide the slides to understand better.
Generally useful and good course in terms of content. But, explaining things is often unecessarily long and often unclear. The hand writing in slides do not help much in being clear either.
The biggest disapointment is the poor explanation of Dijkstra algorithm. I knew how the algorithm works and still struggled to understand the explanation. I pitty those who learn about Dijksta first time here.
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.
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.
Great course. I would recommend making the videos more concise. Also the figures of speech are sometimes difficult to understand for non-native speaker. Personally I don't find them to be useful for such technical course. I like studying by examples, the are lot of them in this course, I wish there were even more. Sometimes I find myself preferring the explanation from the top recommendation on YouTube, which is most often made by some random Indian guy, although I'm Russian.