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. It does not offer a certificate upon completion. Princeton University is a private research university located in Princeton, New Jersey, United States. It is one of the eight universities of the Ivy League, and one of the nine Colonial Colleges founded before the American Revolution.
Instructor Details
Courses : 1
Specification: Algorithms, Part I

63 reviews for Algorithms, Part I
Add a review Cancel reply
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Lucian B –
Course is amazing, great content
Anton M –
Great introductory to middle course on data structures and algorithms. You’re expected to know some Java in order to follow it, but acquired skills can be easily transfered to other languages. On the other side, instructors will favor usage of classes (like set or stack) from customly written library, not standard Java one. Another thing, after each subject there are some examples of interview questions in the form of exercises. They feel like badly prepared and you’ll spend most time looking for a better explanation/answers on the forum threads.
Hao Y –
a little difficult
meng l –
goold…
Karim B –
Excellent teacher
TulasiJagan –
Great one to start when you are trying to have your baby steps in this field. Very elegant code examples with very few lines for every method defined.
Peng–Fei G –
Very great course not only teach the data structure and algorithm, but also introduce the real application which utilize these.
Peng Fei G –
Very great course not only teach the data structure and algorithm, but also introduce the real application which utilize these.
Kim, S –
Good exercises and grading system
lenaxiao –
Course projects are fantastic! Love it!
Lixiao F –
really challengable course for begginers. But you can therefore make amazing progress after overcoming difficulties in the course. pretty awesome course
Michael O –
Excellent, well articulated explanations on how to understand and implement algorithms.
Azat –
Thanks to Coursera and Mr.Sedgewick and Mr.Wayne for the fantastic course.
Rob A –
Excellent course, great teachers. I am very much delighted to enhance my knowledge. Thank you!
Jeffery –
I’m following quite well with the course.. awesome Coursera
Eugene C –
Helpful for Senior Software Engineer
Eva R K –
Good explanations, challenging exercises.
Himanshu T –
Greate content, greate assignment, and lectures are very clear. There are some questions in the interview section, I did not understand, It will be good is you provide answers to those question too. But overall Greate Greate Greate content, It helps a lot to build my concept and fundamentals on DS and ALGORITHMS. Hope we will find some more course like this one.
GAGAN S –
Awesome course…
Rajneesh v –
one of the best described course, content and presentation is way way better than other similar courses.
weiwei –
excellent course. easy to understand and coding assignment helps to enhance my understanding
Sergei K –
absolutely awesome course, it took me much more time to pass it than 6 weeks, but I don’t regret any spent second
Sujit C –
Every thing is covered in a nice way.
Alvaro V P –
Fantastic course!!
Daisuke N –
Great contents
Ievgenii F –
Pretty challenging but quite rewarding once completed
Sri C –
Simple and Elegant .
Sudheer K K –
Very useful and highly recommended.
Zhuojun Q –
so grateful !!! I love the project and the teacher !!!!
Zijun H –
excellent course with clear well organized structure. Worth studying and reviewing when you need knowledge about data structure and algorithms.
Liang W –
Highly recommended! Especially the homework is very helpful!
Raditha D –
Fantastic course
1nas –
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!
jawahar –
Time is priceless.So spending the time on this course is really worth for the life.It’s my life changing course.My lifetime salute to Robert Sedgewick & Kevin Wayne
Mohammed A S –
Awesome course. The instructor is one of the best in the business. It gives you a proud feeling to be taught by someone who himself has contributed so much to the tech world in terms of Algorithm and Data structures. Though sometimes it does get a little frustrating as the topic is so hard. My only complain about this course is as the course is in java for people trying to implement the Algorithms in other languages like c++, python it gets a little hard to find the alternatives of language specific features in other languages so i wish some help was given on that regard. Overall great course. A big thanks to the instructor for making this course.
Sky –
This is the best algorithm course that i have ever experienced
Kaizuoli –
wonderful course
Simin L –
Great class! Strongly recommend for everyone who wants to study algorithm&data structure!
Natalya N –
Greate course with fantastic manner of lecture. I finally understand topics which left not understood after univercity course
Padmashree N S –
N/A
Henry R –
Very clear, and detailed explained.
Pham X H –
Perfect course. It helps me to summarize the basic algorithms which are applied for my work
Liyang L –
Excellent course covers basic algorithms and data structures, where theories are intuitively explained along with practical applications. What impress me most is the programming assignments, which are both challenging and fun, helps strengthening my understanding of the topics and improve programming skills. It’s very satisfying to improve my code and pass every correctness/memory/timing/bonus tests. I do wish there are more programming assignments. However, I hope each topics are taught more in depth, I feel those text books contains way more contents than online courses, but reading those walls of texts are too dry and daunting compared to online learning and practicing. I understand that buiding a learning platform like this requires huge efforts, so this is just my wish.
Samir k –
At 1st this course seems easy but as you start working through it, you wouldn’t be able to do any assignment without a proper understanding of other data structures and algorithms, which aren’t mentioned in the content. Every week you would be introduced to a small, basic algorithm and/or data structure and by the end of the week, you would be doing a tough assignment, which literally boosts your confidence… Highly recommended for software engineers.
Nikita Z –
This course is outstanding!
Mrzhang –
very good and it is free, thanks.
Eduardo C C –
Everybody should take and learn from this and the algorithms II courses, both are awesome. Why?, because you will learn a lot of skills beyond the algorithms taught in the course, (which by the way are all awesome, for example, you will learn to implement the kd tree algorithm and also how it is used for computer graphic acceleration and how it’s implemented in the famous machine learning algorithm k NN, and if you dive a little more in the material you will be able to run the famous flocking boids algorithm developed by Craig Reynolds in the field of artificial life) By working on the project assignments, you will learn by doing the best practices in OOP, coding style and documentation writing. And most importantly, you will gain the skills necessary to think algorithmically to effectively solve hard problems and how to write fast and memory efficient code. All those skills will be very useful when you work on your own projects. Also, you will understand why a good algorithm worths much more than a supercomputer and the importance of its study, because knowing about algorithms will make you able to answer questions like: how do I know if the algorithm I’m writing is the best option available to solve this kind of problem?, Does my algorithm scale well with the size of the problem I’m trying to solve? and much more. After completing this course you will be able to answer all these very important questions and you will have the right skill set to tackle real world problems. Definitely this and the algorithms II courses are among the bests courses in the world available in CS and you can take both for free!!!!
Andrew –
Amazing course. I’ve learnt a lot about algorithms and Java.
Anant d –
Great course ever, This course cheers up me for Learning Algorithms. I have always loved to learn and the great courses lectures are so well taught and educational.
Johan R –
Excellent course. Good lectures and interesting and challenging problems. Only drawback is that we are forced to use Java. It obviously helps with grading, but would have liked to use a language I am more familiar with.
Yaroslav V –
Excellent course. The best
Lue L –
Great course!
}ilvinas R –
Recommended for everyone that does programming
tosakyo –
Very useful course.
Abdelrahman A –
I loved this course. My first time to complete an online course from A to Z. I have learnt al a lot of stuff which I was curios about. Thank you Prof Robert!
Giuseppe D C –
The course is very well done, the assignment part is quite tricky, but very rewarding when you pass them!
Vassili K –
A very useful course for software engineer, well described algorithms in detail. Thanks!
jxtxzzw –
This course tells the basic algorithms and data structures, the best place of this course is the high quality of its assignments. They not only strengthened the understanding of the algorithm, and made us konw the importance of paying special attention to the exception handling, processing, immutable data types, function calls with no side effects, time complexity and space complexity, and these assignmnets help us to think about any possible corner cases, deepened our coding ability or is benefit for future programming work.
Bharath K B K –
Professors Wayne and Sedgewick have prepared a wonderfull course. Though it was difficult to keep up with the pace, I am glad i did. Many many thanks for this opportunity to learn these important concepts and usage.
voxvvox –
very useful
Parker L –
Very well structured course! This course leads me into the world of algorithms, I very like it!
Eugene B –
The useful and a loyal course (thx for moving deadlines feature). I think that I obtained knowledge about most of the standard algorithms. And as a plus, you obtain a good mind map for searching solutions for complex tasks.
Evgeniy S –
Very good course