Chevron Left
Back to Algorithms, Part I

Learner Reviews & Feedback for Algorithms, Part I by Princeton University

4.9
stars
11,268 ratings

About the Course

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms. All the features of this course are available for free. People who are interested in digging deeper into the content may wish to obtain the textbook Algorithms, Fourth Edition (upon which the course is based) or visit the website algs4.cs.princeton.edu for a wealth of additional material. This course does not offer a certificate upon completion....

Top reviews

HM

Invalid date

The best online course I've taken so far. The autograder really does its job! The tests are so thorough that it always takes me several attempts to finish an assignment, but it is always worth it!

SP

Invalid date

It was an wonder ful course that makes me proud and I was little disappointed that I can't get my certification after completion of it I was really tried hard to get on to so provide certificate

Filter by:

26 - 50 of 2,256 Reviews for Algorithms, Part I

By Manoj K

Feb 17, 2019

Excellent course material, including the programing assignments.

I wish there were additional programming assignments spanning more topics from the course (shorter ones in addition to those in this course).

By Yu H

Dec 9, 2018

best algorithm course I've ever seen!

By Tao Z

Jan 1, 2019

非常好,清晰明了。

By Hyun K

Nov 20, 2020

Still waiting for Kevin Wayne to appear... In all seriousness, the course was incredibly tough for me (someone who is not a compsci major) but was also very rewarding. It took me 6 weeks to complete and probably around 10 hours per problem set. Kdtrees was the most interesting pset and collinear points the least (wording was slightly confusing for me).

I would like to provide the following advice for those who are struggling but really wish to complete it.

1. Go through the lectures and try to implement the data structures yourself (unless he says it's not necessary e.g. llrb tree) e.g. in week 1, I made my own QuickFind and QuickUnion class. It doesn't have to be perfect but it helps to grapple with the idea.

2. Always look at the FAQ and command line input/output example. Coupled with reading the specification clearly should clear up 90% of the issues in what you are required to implement (unless it's the collinear points pset). If still confused, reading the discussions may be helpful.

3. Try to do the psets when your brain is working at its best. Writing something half baked late in the night will probably lead you to take longer than if you hadn't written anything at all.

4. Lastly, have patience. The fact that you're struggling so much means that you have the most to gain from solving the psets. Focus on the learning gains you will get rather than the difficulty you're having right now and you'll see it's all worth it in the end.

Thank you very much for making this high quality resource publicly available at no cost.

By Natsu O

May 27, 2020

The content was easy to understand. However, the professor is not as enthusiastic as I expected him to be, and the programming assignments are focused more on applying an already implemented data structure to a problem rather than writing algorithms from scratch.

By Dharma T N

Jan 5, 2024

Literally one of the best courses (not just in algorithms) I have ever done in my whole life, and I have done a ton of courses. And Professor Robert Sedgewick is my new all-time favourite professor right now. The pros: 1. Tough concepts are explained in a beautiful way for everyone to understand. 2. Especially loved the clarity in terms of the professor's explanation. 3. Normally, courses on algorithms don't focus on coding implementations. But this course is different. It gives a detailed coding implementation (in Java) for every algorithm/data structure we learn. This gives an insight into how industry strength code is designed. 4. For a person who has perfectionism like me, I worry a lot about the structure and outline of the topics and the courses. This course perfectly makes me happy in this regard. 5. Every single thing the professor talks about has some meaning and importance to it. Zero fluff. 6. We can see the passion in the professor's eyes as he explains every concept. The cons: 1. None that I can think of. Bottomline: This course is a MUST-DO for every person who is aspiring to become a software developer. This course bettered my understanding of algorithms and data structures. It also made me a better programmer for sure.

By Justin C

Aug 13, 2017

Lectures are pretty good and material is fairly well explained. Be warned that significant knowledge of Java is expected and it isn't taught here.

By Serhiy

Mar 28, 2017

Topics are interesting, explanation is boring

By Priyansh D

Dec 24, 2020

The instructor has a very bad speech problem I guess. Before every word, he speaks 'uh', 'ah' 'uhh'.

Very irritating.

By Ufuk D

Sep 21, 2020

Too much detailed first assignment containing open-ended irrelevant tasks. Got bored.

By Bhavya B

Jun 12, 2020

No certificate issues after lot of hardwork

By YASIR P

Aug 13, 2020

The course is just awesome. The course is taught by an expert in the field, and that fact reflects in the content of the course. The assignments are well designed and very involving, which helps the learner think deep, come out with a solution, improve the solution as much as possible after autograder evaluation, which is really good. That way, the learner consolidates the concept which he/she learned in the video lectures.

Also I see there are many people complaining about enforcement of the Java as the programming language for assignment submission. In my opinion, that is not a probelm at all, if you are strong in some other language, say C++, it is very easy to adapt and in the process you end up learning, not just Data Structures and Algorithms, also a new language, Java, which is a very widely used language. People should see it as a boon, since it gives double returns for your efforts. I feel very bad, because it is only because of the enforcement of Java, some people gave bad rating for the course.

WINNERS TRAIN, LOSERS COMPLAIN

By 1nas

Jan 16, 2020

Personally, I think that the assignments in this course (not in the Algs textbook) did negligible improvement in solving problem. On the other hand, writing assignments feels like doing a Java project on your own. This feels not bad since it's not easy for programming noob like me to explore and participate in projects on GitHub owing to lack of confidence : (. BTW the autograder is so awesome that it even examines your Java code style! This is pretty good for students who had learned C/C++ before to form a better code style in Java. For the videos, it's pretty good for novice (I've been confusing for a long time to find a good way to start and learn Data Structure). However, in other words, the CS knowledge taught in this course is far beyond needed. It's still necessary to drill yourself on other sites like LeetCode, and learn the relevant mathematical algorithm analysis (maybe by reading Introduction To Algorithm).

Still, I will definitely proceed with the Part 2! Genuinely appreciated, Mr. Sedgewick!

By Scott W

Jun 21, 2020

All is great except that there are too many "um"s in lecture videos. But that's totally tolerable considering Professor's age.

Anyway, I've learned a lot from this course, especially those fabulous PROGRAMMING ASSIGNMENTS!

By Trevor C

Mar 22, 2021

Good curriculum, but poor presentation.

These are the building blocks for physics engines and data structures, and most people won't have to implement this directly, but it's helpful to understand applications and limitations. Nearly all coding interviews will ask about these concepts as well, so this material has lots of value in finding a job. The explanations are detailed, and the visualizations for the various data-types are fairly good.

That said, there is room for improvement. After the first couple of assignments, I switched to auditing this course, because of all the issues.

- The content was not migrated very well, resulting in many/most exercises having disclaimers that they haven't been migrated yet, and others having links to resources that will need a few extra step to work. I think the materials might just be out of sync with the assignment descriptions, but they certainly didn't go smoothly for me.

- Practice problems have hints, but no answers. It's useful to think through, but you either know the answer, or you don't. You're probably better off just working through problems on codeforces.

- Long lecture format was from a traditional classroom. This works alright, but feels a bit bloated in comparison to other Coursera courses I've taken. The checkpoints are trivial, and added after production, so they didn't add much either.

By Gavin F

Jun 30, 2020

A very well made and informational course. However, it is quite difficult, specifically the projects. Even as a CS undergraduate, this really was not easy at all. This certainly also requires a lot more time dedicated to it than suggested.

By Johan L

Aug 19, 2022

Help is way too cryptic to be actually helpful.

By Joshua L

Jan 13, 2021

I spent hours trying to setup my Intellji environment. No help on the web whatsoever. Course material seemed great, but the instructions for the programming were non-existent.

By Petros Y

Feb 4, 2021

Too much time to setup and no explanation on how to use the algorithms in Java. It just tells you to import the package. The discussions do not help much either. I'm a CS student at a state school and found this way too confusing. The only value in this course appears to be the videos but definitely NOT the exercises. It may suit other learning styles but not mine.

By LETICIA D A

Jan 13, 2019

É ruim pq o curso é em ingles, e pelo menos a legenda deveria ser em português, e até a legenda ta em inglês também, pra quem está iniciando e não tem nenhum conhecimento em inglês é péssimo.

By Stephen L

Sep 18, 2021

Endless technical issues with Java class paths and config etc, and sparse, unclear assignment specifications makes this course a inefficient use of time.

By Rishikesh

Jan 6, 2024

didn't get certificate

By Vaibhav P

Jun 4, 2020

One of the best courses I did. I am guilty of not finishing many courses on coursera, but this one kept me hooked and motivated enough to keep coming back at regular intervals and actually finish. The actual learning from the course is more than just algorithms as we get detailed feedback on style and even some design aspects of the code we submit. The only downside of such depth assessment review system is that we are forced to use Java for the solutions, sometimes which can have its own learning curve, and hard to get 100% score because of some nitpicks which are not worth spending time to fix for a course assignment (they would be for actual production code though). Also, the specs provided are sometimes missing requirements which we only find out by submitting once and reading the assessment with failed tests.

One thing that I think should be improved is the hint system for quizzes. After we submit, in most cases the hints are not enough to understand how to solve the problem. So it leaves you less fulfilled than ideal, knowing there is unsolved problem out there and no real help.

Overall, totally recommended.

By Ben

May 11, 2019

I have taken several online courses, mostly on Coursera, which I've enjoyed and learned a great deal from. However, I would have to say that this is the best online course I've taken so far. The subject matter revolves around some of the most fundamental algorithms for computer science and emphasizes the importance of data representation. The choice of Java as a programming language for this course helps emphasize the distinction between data structures and abstract data types. The lectures relate the material to concrete and interesting real-world applications but also occasionally mention related open problems in computer science. The instructor is very clear in his explanations, which often make use of excellent and helpful visualizations. Lastly, the assignments are challenging but rewarding and the feedback provided by the automated grader, which accounts not only for correctness of the submitted APIs and their implementations, but also for coding style, timing, and memory use, is an invaluable learning tool.

By Jeremy s

Aug 20, 2019

I am thrilled with this course. I learned so much in such a short time. The instructor was very thorough and his explanations were detailed and comprehensive. My favorite part of the course was the assignments for each week. These assignments taught me to think critically and to approach problem solving in a more directed and sophisticated manner than I had previously attempted. My skill has improved dramatically, as well as my confidence. Additionally, I developed a perseverance to truly understand complex material and complete assignments that I never would have guessed I could achieve. Thank you so much for this course.