- All DegreesExplore Bachelor’s & Master’s degrees
- BusinessExplore MBA & Business degrees
- Computer Science & EngineeringExplore Computer Science & Engineering degrees
- Data ScienceExplore Data Science degrees
- MasterTrack™Earn credit towards a Master’s degree
- University CertificatesAdvance your career with graduate-level learning

Back to Divide and Conquer, Sorting and Searching, and Randomized Algorithms

stars

5,036 ratings

The primary topics in this part of the specialization are: asymptotic ("Big-oh") notation, sorting and searching, divide and conquer (master method, integer and matrix multiplication, closest pair), and randomized algorithms (QuickSort, contraction algorithm for min cuts)....

KS

Sep 13, 2018

Well researched. Topics covered well, with walkthrough for exam.le cases for each new introduced algorithm. Great experience, learned a lot of important algorithms and algorithmic thinking practices.

DT

May 26, 2020

Thank you for teaching me this course. I learned a lot of new things, including Divide-and-Conquer, MergeSort, QuickSort, and Randomization Algorithms, along with proof for their asymptotic runtime

Filter by:

By Siddhant

•Jun 3, 2017

Best

By 何浩源

•Jul 19, 2019

喵儿额

By Julia

•Jun 2, 2018

WOW

By Xie R

•Feb 10, 2019

好

By Denny K

•Jan 14, 2019

I'll give this course four stars.

I think if you want to know about how good this course is, you can check the other reviews. I'm not trying to be picky, just want to brief out that there is something needs to be improved.

This course has been launched for a while, it'll be great if we can improve it, and I sincerely believe this kind of knowledge should be shared with more people who interested in computer science.

To be honest, maybe it's because of my first language is not English, I felt frustrated from time to time. That doesn't mean the material wasn't good, what I learned from this course is quite amazing, the explanation sometimes is just obscured. I knew even the idea behind the algorithm or analysis aren't easy to understand, but what I feel is the professor assume you know everything he's talking about, and the whole sentence become very long.. long enough to let student cannot focus on the idea itself.

If professor can try to explain idea in more plain and easy to understand words, this will be 5 stars recommendation. Content is great, quiz and assignment is challenging enough to bring you lots of fun. If professor can improve that small pieces I mentioned, it'll enhance the overall efficiency of learning.

Anyway, thank you for providing us a such good course.

By Ahmed A (

•Jul 25, 2022

Definitley not an introductory course, if you don't have a strong mathematical background, and a strong ability to convert high-level ideas to concrete code, then this course is definitley not for you. This being said, the course was very fun, challenging, I have learned a lot about algorithms in general and about randomized algorithms in particular.

The randomized algorithms required some extra work on my part to understand the probability required to grasp the proofs and the analysis, but the review provided was good to some extent.

ON THE INSTRUCTOR: Professor Tim Roughgarden focuses on very high-level ideas, gives excellent motivation for each topic, which pushes you as a student to learn more. That being said, I did not like the audio quality in some videos.

Again, don't enroll unless you have a good grasp of the prequsites, otherwise it would be painful to stop every now and then to learn some math then come back to the course.

By Tahmid C

•Apr 1, 2021

Overall a decent course. The mathematical proofs can be rigorous at times. The programming assignments can be challenging because the instructor tries not to hold your hand through the process. My main issue with the course is the structure. Sometimes topics don't seem to be in a logical order for the best learning experience. Also, the course really expects you to understand lists and reading from text files in order to complete week 4's programming assignment. What should have taken maybe an hour, took me almost 3-4 hours. In my opinion, the Princeton Algorithms course is better. It is structured better and it can be clearly seen that more time was taken to design the course. Their auto-grader is phenomenal. I would recommend it over this course.

By SERGEJS I

•Aug 31, 2019

I think the course is nice, I have finally understood what the divide and conquer algos are. I like the algo's non-mathematical analysis.

However, I think that the course was overfilled with the complex math which explained significantly worse than actual algos. I like math a lot (my favourite subject), but then the course description should tell about that course contains advanced math, because it is not suitable for everyone.

I also think that a technical task on a quick sort was confusing, it was very difficult to provide a correct answer though the task was simple. I did not like the technical task for the min cut problem. This algorithm available everywhere online, and you must use the pseudo code to implement it (I have not learnt much).

By Chao G

•Dec 27, 2016

I would recommend this course to anyone who has some experience with coding, but has not taken an algorithm course. I particularly like this course because it is more "math-heavy" than some of the other courses. After taking this course, you might not be able to solve all Leetcode problems (so probably will not help with your interviews directly), but from an intellectual point of view, I think the instructor does a good job explaining why people care about algorithms and how to analyze a class of algorithms rigorously.

By Fanghu D

•Nov 25, 2016

The unique value of taking the course: read and think through the material with guidance and completing its assignments is the efficiency by saving all the search cost would I collect on my own the good and succinct presentation of the knowledge and exercises with solutions (at least correctness checks.) The entire detail of an algorithm is hard to keep afresh in memory and one needs to refresh it from time to time. It is very cost-effective to take a course like this to accelerate the refresh.

By Neeladree C

•Jun 27, 2017

Thanks a lot sir ! Learnt a lot of new things in this course. Although, I was a little familiar with the course materials beforehand, there were some mathematical nuances that I was unaware of and now I am ! Your way of explaining things, I guess, is what keeps people glued to the course. Also, the assignments are pretty good. However, I do wish the Final Exam to be a little more difficult. Currently as it is, most of it is merely a revision of past assignments. Thanks !

By Krishna K

•Jun 4, 2019

I think the videos and teaching are great. However, this class is somewhat hard with the math and one can easily get stuck with some of the algorithm problems. This class really needs an ongoing monitor/mentor in the forums to help guide you through the class. Also, sometimes, even when you get the right answer for the quiz, it can be difficult to ascertain whether you actually understand the concept. I docked one star for the lack of ability to get help.

By Xixuan W

•Jun 30, 2019

Generally, this course is great, and it focuses on some core theories of algorithms in Computer Science.

Personally, I think the tricky part is the analysis of the algorithms which requires some advanced math knowledge and a lot of patience.

To be honest, though I have finished this course, there's still a must for me to review the whole course later. Also, I need to implement all the algorithms again in both java and python I guess :)

By Linan

•Sep 1, 2018

Good subject to take, however, the rhythm in my opinion is quite fast, and less practical example was given to connect with our real life, the teacher is nice, except for too fluently speaking LOL, I am not a native English speaker, thus I have to reduce the speed of the video, but then, I stepped into sleepy soon, even X 0.75 speed is crazy hypnosis technique. LOL, anyway, those just my own thinking and thanks to the teacher.

By Rodney N d S

•May 11, 2020

This course is very good! Every week your are given a programming assignment in wich you have to code some classical algorithms in the language of your preference. Some exercises are difficult to do, but search for help on the forum. The only bad point is that the teacher talks too fast,a lot of time I had too look for better explanations. It's difficul to follow Tim's rithm.

By Dolly Y

•Aug 28, 2017

The discussion forum is basically dead.If you ask a question, you will probably get an answer in two months.The programming assignment is not as well-designed and challenging as the Rice and Princeton algorithm specialization. There is no autograder. You just need to enter the output of the programming assignment. Nevertheless, it takes a thorough and rigorous approach.

By Wan H L

•Oct 1, 2017

The instructor offers me a very clear explanation on different algorithm designs. The assignments are also thought-provoking and is able to stimulate your brain.

One thing for improvement is the sufficiency of algorithm exercise. It seems the algorithm exercise the course offers is not enough for those who would like to pursue higher challenge in algorithm puzzles.

By Daniel Z

•Feb 18, 2019

Good introductory course: allows to relatively quickly go through the topic without getting stuck in too much detail; hands on assignments are nice and useful. The slides I feel could be further improved to (i) aid rapid understanding, (ii) be more helpful in problem solving and (iii) have a few more maps back to the bigger picture.

By Rishi B

•Jun 6, 2018

This was a good course, but it is not for people who want to get work done using algorithms. It is pretty math heavy and requires ample amount of dedication and understanding. Some high standard videos like the ones on Graph Theory was not very well explained, I had to see some youtube videos to get a nice understanding about them.

By Chris S

•Mar 7, 2018

I thought the course was well instructed, Tim is a good professor and doesn't give up too many of the answers. I found the probability section needing more review as I didn't come into the course with a statistics background, and I felt that hurt my full comprehension of the material. Other than that, awesome course.

By Weiming H

•May 23, 2018

I really like this course and think that the course is very helpful for me as a non-cs major student to learn more about algorithms.

However, I found it hard to find answers to the quiz and the questions. I tried in the forum but in vain. Might be an improvement of the Coursera system and organization?

By Aniruddha S

•Jul 6, 2020

Excellent course for students to study why and how the popular algorithms work. The course was very much focused on the math behind the algorithms and I felt it could have been better if the course focussed more on real time applications using the algorithms and their implementations with pseudocode.

By Sandesh K A

•Nov 16, 2018

Perfect start for a NOOB, all algorithms are explained in a detailed way. Only draw back i felt which can be addressed in further version is to include few programmatic assignments, so that developers can relate how the algorithm is translated from mathematical equation to running code.

By John Z

•Nov 13, 2017

Sincerely speaking, the lecture is too coarse. It will be more help, if there are more details in lecture. But not only in videos. It is quite waste of time by watching videos one by one. However, by finish this course, I have regained basic algorithm knowledge learned in college.

By Krish R

•Mar 23, 2018

I took this course to understand more the approach of problem solving and less the mathematical analysis. To understand why the things the way they are , Its sufficient to understand conceptual analysis, rather than mathematical analysis , at least for me.

- AWS Cloud A Practitioner's Guide
- Basics of Computer Programming with Python
- Beginners Python Programming in IT
- Developing Professional High Fidelity Designs and Prototypes
- Get Google CBRS-CPI Certified
- Introduction to MATLAB Programming
- Learn HTML and CSS for Building Modern Web Pages
- Learn the Basics of Agile with Atlassian JIRA
- Managing IT Infrastructure Services
- Mastering the Fundamentals of IT Support

- Basics of Computer Programming with Python
- Beginners Python Programming in IT
- Building a Modern Computer System from the Ground Up
- Getting Started with Google Cloud Fundamentals
- Introduction to Cryptography
- Introduction to Programming and Web Development
- Introduction to UX Design
- Learn HTML and CSS for Building Modern Web Pages
- Mastering the Fundamentals of IT Support
- Utilizing SLOs & SLIs to Measure Site Reliability

- Building an Agile and Value-Driven Product Backlog
- Foundations of Financial Markets & Behavioral Finance
- Getting Started with Construction Project Management
- Getting Started With Google Sheets
- Introduction to AI for Non-Technical People
- Learn the Basics of SEO and Improve Your Website's Rankings
- Mastering Business Writing
- Mastering the Art of Effective Public Speaking
- Social Media Content Creation & Management
- Understanding Financial Statements & Disclosures