Algorithms, Part I

Provided by:
9/10 stars
based on  21 reviews
Provided by:
Cost FREE
Start Date On demand

Course Details

Cost

FREE

Upcoming Schedule

  • On demand

Course Provider

Coursera online courses
Coursera's online classes are designed to help students achieve mastery over course material. Some of the best professors in the world - like neurobiology professor and author Peggy Mason from the University of Chicago, and computer science professor and Folding@Home director Vijay Pande - will supplement your knowledge through video lectures. They will also provide challenging assessments, interactive exercises during each lesson, and the opportunity to use a mobile app to keep up with yo...
Coursera's online classes are designed to help students achieve mastery over course material. Some of the best professors in the world - like neurobiology professor and author Peggy Mason from the University of Chicago, and computer science professor and Folding@Home director Vijay Pande - will supplement your knowledge through video lectures. They will also provide challenging assessments, interactive exercises during each lesson, and the opportunity to use a mobile app to keep up with your coursework. Coursera also partners with the US State Department to create “learning hubs” around the world. Students can get internet access, take courses, and participate in weekly in-person study groups to make learning even more collaborative. Begin your journey into the mysteries of the human brain by taking courses in neuroscience. Learn how to navigate the data infrastructures that multinational corporations use when you discover the world of data analysis. Follow one of Coursera’s “Skill Tracks”. Or try any one of its more than 560 available courses to help you achieve your academic and professional goals.

Provider Subject Specialization
Humanities
Sciences & Technology
4701 reviews

Course Description

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 basic iterable data types, sorting, and searching algorithms.
Reviews 9/10 stars
21 Reviews for Algorithms, Part I

Ratings details

  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars

Rankings are based on a provider's overall CourseTalk score, which takes into account both average rating and number of ratings. Stars round to the nearest half.

Sort By
Homer Thompson profile image
Homer Thompson profile image
10/10 starsCompleted
  • 9 reviews
  • 7 completed
5 years, 4 months ago
I said this in my review of Part II, but it applies equally well to Part I: For anyone who loves programming, this is a truly memorable course taught by one of the great heavyweights in the field. It's really something to see that such an important researcher as Sedgewick is also a phenomenal teacher. It's beautiful the way he shows the algorithms operating. Most powerpoint/pdf lectures are just frankly wastes of time to me, but Sedgewick animates his algorithms slowly and without skipping steps on his slides so that you really see how the algorithms work. It can be so hard to look at a piece of code and decipher exactly what the process is that's being executed, but the animations really help to clarify. Part I is a really awesome survey of sorting algorithms and search data structures. I loved the way Sedgewick taught how to do real, industrial-strength implementations of quicksort, for instance. I loved the discussion of the Dutch... I said this in my review of Part II, but it applies equally well to Part I: For anyone who loves programming, this is a truly memorable course taught by one of the great heavyweights in the field. It's really something to see that such an important researcher as Sedgewick is also a phenomenal teacher. It's beautiful the way he shows the algorithms operating. Most powerpoint/pdf lectures are just frankly wastes of time to me, but Sedgewick animates his algorithms slowly and without skipping steps on his slides so that you really see how the algorithms work. It can be so hard to look at a piece of code and decipher exactly what the process is that's being executed, but the animations really help to clarify. Part I is a really awesome survey of sorting algorithms and search data structures. I loved the way Sedgewick taught how to do real, industrial-strength implementations of quicksort, for instance. I loved the discussion of the Dutch National Flag problem for partitioning. These kind of critical details are very often left out of algorithms courses where you are usually presented with a simpler quicksort that doesn't perform nearly as well. Another highlight was the bouncing balls in a container simulation (could have just as well been gas molecules in a box) using priority queues. I mean what a cool application that would be impossible to run without such an efficient data structure. The percolation project was pretty difficult, but also really interesting. Sedgewick gives such a clear discussion of union-find. My favorite project though was the one on K-d trees, which are extremely important in 3D graphics. It was by far the hardest project in either Algorithms I or II, but so satisfying once you get it up and running and meeting all performance deadlines. The only complaint I have about the course is the left leaning red-black trees. While the code is really really short for them, it's also much more clever and difficult to follow than the more straightforward CLRS implementation, and it also doesn't perform as well (which is why you see CLRS style red-black trees in the C++ STL, for instance, rather than Sedgewick's left leaning red black trees). Don't get me wrong: the left leaning red-black tree data structure is pretty cool, but I think it would be better taught as a modification of the classic RB trees. To close this review, this comment I made in the review for Part II applies equally well to Part I: Professor Kevin Wayne was EXTREMELY active on the forums. I can't count how many times I'd have a question about something and Professor Wayne would weigh in within a couple of hours to answer me. I don't know how he has the energy, but we'd be fools to not take advantage!
Was this review helpful? Yes5
 Flag
Prashant Singh profile image
Prashant Singh profile image
10/10 starsCompleted
  • 3 reviews
  • 1 completed
2 years, 3 months ago
-You will learn algorithms -Programming assignments are in Java -Prof. Robert always gives the basic idea behind the Algorithm and explains the java code very easily. -Short video lectures are good. -You will get to implement all the data structures like min heap etc...
Was this review helpful? Yes0
 Flag
Deep Hathi profile image
Deep Hathi profile image
10/10 starsCompleted
  • 1 review
  • 1 completed
3 years, 6 months ago
PROS: This is the best introductory course to learn about algorithms. It provides best of quizzes, programming assignments and interview questions. It uses java as a vehicle language, however it doesn't use high level java specific features, so, if you know some other object oriented programming language then you are good to go. Using the book Algorithms by the professor Bob Sedwick and Kevin Wayne would also be helpful. Best part of this course is programming assignments. Don't miss them. CONS: Doesn't provide any certificate or even mark sheet( and rightly so). I believe that shouldn't be a concern if you are really motivated. ADVICE: Go for it.
Was this review helpful? Yes0
 Flag
prashant singh profile image
prashant singh profile image
10/10 starsCompleted
  • 10 reviews
  • 8 completed
4 years, 3 months ago
If you really want to learn basic data structure Queue,Stack,quick sort etc in an interesting(NOT BORING) and want to implement yourself in Java then take this course.After taking this course I understand the difference between queue and priority queue(Really imp. data structure).Sedgewick sir will easily walk you through the java code for each data structure.
Was this review helpful? Yes0
 Flag
Richard Kirkpatrick profile image
Richard Kirkpatrick profile image
10/10 starsCompleted
  • 6 reviews
  • 6 completed
4 years, 7 months ago
Review: As many of the others have indicated, this course is a fantastic course for understanding the power of algorithms. Some Algorithms courses focus on the analysis of algorithms and others focus on the design or implementation of algorithms. This course takes a very application approach to algorithms. Within a week of enrolling in this course, I was using its implementations for improving my programming for my job. For example, I learned how to analyze the memory usage of a program and used this to improve some software at my job. In addition, I have used the tools from this course to improve the efficiency of our algorithms. This alone made the course worth it. Pros: * Course is very application focuses and introduces the students to almost all the big topics in algorithms (unions, analysis of algorithms, graphs, string processing, sorting, searching and so forth) * Reading material, lecture notes and additional... Review: As many of the others have indicated, this course is a fantastic course for understanding the power of algorithms. Some Algorithms courses focus on the analysis of algorithms and others focus on the design or implementation of algorithms. This course takes a very application approach to algorithms. Within a week of enrolling in this course, I was using its implementations for improving my programming for my job. For example, I learned how to analyze the memory usage of a program and used this to improve some software at my job. In addition, I have used the tools from this course to improve the efficiency of our algorithms. This alone made the course worth it. Pros: * Course is very application focuses and introduces the students to almost all the big topics in algorithms (unions, analysis of algorithms, graphs, string processing, sorting, searching and so forth) * Reading material, lecture notes and additional resources provide an excellent method for learning the material * Programming assignments give you a great understanding of the material * Instructors provide a very good approach to solving problems: define the problem, write out the API, develop the test client, visualize the algorithm, and break up the problem into small pieces to solve Cons: * Exercises and final exam are randomly generated and must be completely restarted after each attempt; 10 attempts and 3 attempts are allowed on the exercises and final exam, respectively. Slight mistakes are often not given partial credit and can take the fun out of learning. * Java coding practices are not followed (as mentioned by other reviewers). For example, variable and class names are often abbreviated. I am assuming the instructors did this to fit the code on the lecture slides so it is understandable, especially since all the variables are well defined. * Programming assignments can take a large amount of time (10 - 20 hours per week). While I did not mind this, be ready to spend a large amount of time on some of the assignments if you do not have extensive experience. The instructors could cut back on the amount of time spent by providing coding templates, more helper functions/methods and separating out the grading for different pieces of the code. * Dynamic programming is not a focus in this course (or the next). While it is mentioned informally, it seems like this topic should be considered for future offerings.
Was this review helpful? Yes1
 Flag
S P profile image
S P profile image
9/10 starsCompleted
  • 4 reviews
  • 3 completed
4 years, 7 months ago
Was this review helpful? Yes0
 Flag
Daniele Antonioli profile image
Daniele Antonioli profile image
9/10 starsCompleted
  • 2 reviews
  • 2 completed
4 years, 11 months ago
The course content is rich, well organized and well presented. It is not a conventional approach to the subject, the topics are presented in a "constructive" manner and usually the level of abstraction (but not necessary difficulty) increases week by week. The programming assignments/quizzes are really good, the autograder is fantastic. You can learn a lot of Java, Data Strucuture, Programming best practices, Algorithms design analysis and comparison.
Was this review helpful? Yes0
 Flag
Borys Zibrov profile image
Borys Zibrov profile image
10/10 starsCompleted
  • 9 reviews
  • 8 completed
5 years, 1 month ago
I've taken a number of computer science courses and this one is definitely among the top ones. Robert Sedgewick speaks a bit slowly but explanations are great and easy to understand. Drilled exercises are a bit boring, but programming assignments and final exams were very engaging and of high quality. Also programming interview questions were an interesting addition to the course, though not enough help to solve them was provided (only small hints, and a not very active sections in discussion forums). Had to google for answers : ) and some still remain unsolvable for me. First part focuses on basic topics like searching and sorting, and also deals with basic data structures -- a stuff, really, every programmer should know. So, if you don't know how to implement a hash table you may consider taking this course :) There's not much math in this course, the focus is on learning about different algorithms and data structures, and using th... I've taken a number of computer science courses and this one is definitely among the top ones. Robert Sedgewick speaks a bit slowly but explanations are great and easy to understand. Drilled exercises are a bit boring, but programming assignments and final exams were very engaging and of high quality. Also programming interview questions were an interesting addition to the course, though not enough help to solve them was provided (only small hints, and a not very active sections in discussion forums). Had to google for answers : ) and some still remain unsolvable for me. First part focuses on basic topics like searching and sorting, and also deals with basic data structures -- a stuff, really, every programmer should know. So, if you don't know how to implement a hash table you may consider taking this course :) There's not much math in this course, the focus is on learning about different algorithms and data structures, and using them to solve day-to-day problems, not about developing mathematical models to analyze algorithms and such stuff. Java basics are required if you want to have an output from the autograder but I think programmers in other languages might also find this course useful (if they don't mind some Java :). Finally, there's also a book and an excellent website, so you can really get "it".
Was this review helpful? Yes1
 Flag
Philippe Kernevez profile image
Philippe Kernevez profile image
3/10 starsDropped
  • 1 review
  • 0 completed
5 years, 4 months ago
15 years of experience with Java development. I would progress on algorithms. I found that the assignment lack of tooling in comparaison with others courses. * No code provided : for example the interface we have to implements and some basic test cases to pass with our first implementations * Others course provide 'submit' mechanism and do not required to do a zip manually with only the assignment class code (and nothing else). I really dislike that I can't respect Java standards : * Unable to do JUnit tests because we can't enrich our code with new methods. We should only have to implements the required interface, and respect this interface why remove errors with new methods ? (in java test classes need to have a default access to method under tests) * necessity to have out class in the default package. This leads to unusual errors as Java has not been design in this way and discourage to do that. * I don't like to have a lot of err... 15 years of experience with Java development. I would progress on algorithms. I found that the assignment lack of tooling in comparaison with others courses. * No code provided : for example the interface we have to implements and some basic test cases to pass with our first implementations * Others course provide 'submit' mechanism and do not required to do a zip manually with only the assignment class code (and nothing else). I really dislike that I can't respect Java standards : * Unable to do JUnit tests because we can't enrich our code with new methods. We should only have to implements the required interface, and respect this interface why remove errors with new methods ? (in java test classes need to have a default access to method under tests) * necessity to have out class in the default package. This leads to unusual errors as Java has not been design in this way and discourage to do that. * I don't like to have a lot of error due to not respect the course source code standards. Why should I have the same places for brackets, accolade or parenthèse. * Usage of an unknown Java editor in place of classique standard IDE like Eclipse, IntelliJ or NetBeans. It has been quite hard to hand made a 'standard' environment. I drooped this course because I spent to much time to deal with surprising requirements instead of focusing on algorithms. Even parts of the lesson are really interesting.
Was this review helpful? Yes2
 Flag
Wei En profile image
Wei En profile image
10/10 starsTaking Now
  • 2 reviews
  • 1 completed
5 years, 4 months ago
Professor Sedgewick gave great explanations on the various algorithms showed, with interactive diagrams. Also, the programming assignments are interesting. While it's not too hard to get a somewhat good grade for them, getting full marks is a challenge that really gets people thinking on how to optimize algorithms. The quizzes, while sometimes posing hard questions, tend to be simulations and calculations.
Was this review helpful? Yes1
 Flag
jac profile image
jac profile image
8/10 starsCompleted
  • 5 reviews
  • 4 completed
5 years, 5 months ago
Interesting course. I took it with some friends,some professional programmers (including myself) and a couple of noobs. It was a fair bit of work, and I was the only one who completed it - it was far too hard for the noobs, and the others just missed a few deadlines and quit. Turns out I didn't really remember the details of most algorithms, and needed the detailed review to get it (along with basic algebra like exponent rules, which was embarrassing). When I allowed myself enough time, the assignments were fun and the auto grader gave useful error reports. I did feel that the unlimited uploads made it easy to test against the autograder instead of writing proper tests, but that's a problem with my own self discipline. The forums were very active and useful.
Was this review helpful? Yes1
 Flag
soesilo wijono profile image
soesilo wijono profile image
10/10 starsCompleted
  • 19 reviews
  • 19 completed
5 years, 1 month ago
With the famous Princeton professors, and a legend in algorithm Prof Robert Sedgewick, this course is simply one of the best course in Coursera. Very well structured, with very good and comprehensive PDF slides. Very precious course. Though, unfortunately there is no statement of accomplishment or certificate awarded for completing this course due to Princeton policy.
Was this review helpful? Yes1
 Flag
Colin Jack profile image
Colin Jack profile image
10/10 starsTaking Now
  • 4 reviews
  • 3 completed
5 years, 8 months ago
Excellent course that is perfect accompaniment to their excellent book, you will need to know some Java and I'd recommend use of eclipse not but they give you great libraries and with the help of the discussion forums it should be easy to follow along.
Was this review helpful? Yes1
 Flag
Andrey Berezhinsky profile image
Andrey Berezhinsky profile image
10/10 starsCompleted
  • 1 review
  • 1 completed
5 years, 8 months ago
The best course I've taken so far. Excellent lectures. Lecturer seems to be very competent. The best part of the course is assignments. I have really enjoyed doing them. Didn't really like the quizes at first. But at some point I realized that the quizes had helped me to uncover some holes in my understanding of the material.
Was this review helpful? Yes1
 Flag
Student profile image
Student profile image

Student

10/10 starsCompleted
6 years ago
This was my first MOOC. The strongest parts were: \+ Lectures \+ Programming Assignments \+ Discussion Forums The weakest parts were: \+ Quizzes \+ Final I really like the auto grader. It provided instant feedback. The test cases and resource utilizations were extremely helpful in completing the assignment. While getting the assignment to work wasn't a major challenge, getting to work within the time and space boundaries was. It was a challenge to optimize these assignments, and without the auto grader and its feedback, I doubt that I would have reached those levels of optimized performance.
Was this review helpful? Yes4
 Flag
Karthik Puthraya profile image
Karthik Puthraya profile image
10/10 starsCompleted
  • 5 reviews
  • 5 completed
6 years ago
Brilliant practical introduction to Algorithms. I did this course along with the theoretical Algorithms course by Prof. Roughgarden. These courses complement each other wonderfully and I strongly recommend both these courses. In the process of this course, I got to learn Java. My programming background was limited to C++ and some Matlab before I took this course. Prof. Sedgewick is a very likable teacher and course material is top-notch. Everything is very well-planned and the programming assignments drive the concepts right home. The forums are lively and TAs very helpful. Two thumbs up and looking forward to the Part 2 of this course!
Was this review helpful? Yes4
 Flag
Cristian Angelini profile image
Cristian Angelini profile image
6/10 starsDropped
  • 1 review
  • 0 completed
6 years ago
Took this and Algo II, the structure of both courses is identical, and so is my review. Good to excellent lectures, explanation is very clear, examples on spot and in the end you finish your unit knowing it, especially if you try to replicate what he's saying with your own IDE, and test results. I took it as a algorithms and Java refresher, both topics I'm unfortunately not using since few years, and for that, it worked. The weakest point are surely quiz. With the randomization occurring at every attempt, replicating algorithms in pen and paper was an unpleasant, frustrating experience, and I quickly lost interest in completing it - the power of repeatable quiz, is to fix knowledge errors and misconceptions by feedback, not punish those trying to learn. Assignments were quite interesting and I wish I would have tried a couple more... In the end, the lack of any sort of reward or performance measure, even only the honor certification,... Took this and Algo II, the structure of both courses is identical, and so is my review. Good to excellent lectures, explanation is very clear, examples on spot and in the end you finish your unit knowing it, especially if you try to replicate what he's saying with your own IDE, and test results. I took it as a algorithms and Java refresher, both topics I'm unfortunately not using since few years, and for that, it worked. The weakest point are surely quiz. With the randomization occurring at every attempt, replicating algorithms in pen and paper was an unpleasant, frustrating experience, and I quickly lost interest in completing it - the power of repeatable quiz, is to fix knowledge errors and misconceptions by feedback, not punish those trying to learn. Assignments were quite interesting and I wish I would have tried a couple more... In the end, the lack of any sort of reward or performance measure, even only the honor certification, drained my interest in investing more time than simply watching the videos, and I finished skipping few units, to start different courses. Overall, the very high quality of the lectures will make me consider to check the courses again in the future for improvements.
Was this review helpful? Yes2
 Flag
Patrix Rembang profile image
Patrix Rembang profile image
8/10 starsCompleted
  • 10 reviews
  • 10 completed
5 years, 8 months ago
Great lecture videos. The lecturer uses pictures and animations to teach the data structures and algorithms that make the explanations very clear. Some proofs of the algorithms' performance are included. The code presented in lectures is very clear and clean. The programming assignments are quite tough and fun, and only differ slightly than the Princeton's equivalent. The downsides are the exercises, which require us to simulate some aspects of the algorithms by hand. On each try, the questions are new, so if you only have 1 mistake in previous try, you have to do it all over again, which is frustrating. The job interview questions are more interesting than the exercises, although they aren't graded. There's also no statement of accomplishment, and you even won't find your final points in your Coursera course records. Definitely the course to take when you first tackle this subject.
Was this review helpful? Yes1
 Flag
Sai profile image
Sai profile image
10/10 starsCompleted
  • 14 reviews
  • 13 completed
6 years, 7 months ago
This course is based on Chapters 1 to 3 of the textbook written by the same professors (http://algs4.cs.princeton.edu/home/). Frequent use of animations that simulate algorithms step by step made it so easy to understand how they work. I took this course mainly to learn about Java (I knew C++). All the 5 programming assignments were in Java and Coursera submission page gave you detailed feedback as to which tests passed or failed, etc. I found every assignment well thought out and often dealing with an interesting problem of its own, for example, percolation (using union-find tree) and 8 puzzle (using stack for solving a simple AI search problem). On the other hand, quizzes were very boring where you were asked to simulate the algorithms taught in the lecture by hand (e.g., what does the input array "SDHFIENCPV" look like after 5 swap operations in quicksort?). Since it is Princeton University's policy not to offer any kind of certif... This course is based on Chapters 1 to 3 of the textbook written by the same professors (http://algs4.cs.princeton.edu/home/). Frequent use of animations that simulate algorithms step by step made it so easy to understand how they work. I took this course mainly to learn about Java (I knew C++). All the 5 programming assignments were in Java and Coursera submission page gave you detailed feedback as to which tests passed or failed, etc. I found every assignment well thought out and often dealing with an interesting problem of its own, for example, percolation (using union-find tree) and 8 puzzle (using stack for solving a simple AI search problem). On the other hand, quizzes were very boring where you were asked to simulate the algorithms taught in the lecture by hand (e.g., what does the input array "SDHFIENCPV" look like after 5 swap operations in quicksort?). Since it is Princeton University's policy not to offer any kind of certificate in Coursera (at least up to now), it doesn't matter at all if you skip them, though. I believe Part II, which starts in November, will cover chapter 4 through 6 and am looking forward to it.
Was this review helpful? Yes4
 Flag
Doug profile image
Doug profile image
10/10 starsCompleted
  • 6 reviews
  • 6 completed
6 years, 8 months ago
Really well-done. Best of the online algorithm classes so far. Great teacher, well-organized, homework supports material. Feels like a top-notch, university level course. Course follows a very good textbook written by the instructor.
Was this review helpful? Yes2
 Flag
Dirk Meister profile image
Dirk Meister profile image
8/10 starsCompleted
  • 2 reviews
  • 2 completed
6 years, 7 months ago
A good introduction (or review) to the basic data structures and its implementation. It is focussed on the implementation in Java and the usage and not on format correctness proofs. Good organization and material. Some treatments of Java details have been wrong or at least you can discuss if a experienced Java developer would do certain things the way they presented it.
Was this review helpful? Yes1
 Flag

Rating Details


  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars

Rankings are based on a provider's overall CourseTalk score, which takes into account both average rating and number of ratings. Stars round to the nearest half.