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

stars

5,015 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 --

â€¢Mar 8, 2021

A lot of repetitions of the same thing. It seems like one idea could be taught in <3 minutes but instead we recover previous material and repeat the same thing resulting in >10min. Still a great course. Lack of solutions for programming assignment. I spent a day trying to find on web a good implementation of karger's algo for min cut problem and didn't find what I was looking for, they all make same mistakes in implementations like copy the entire graph, sample not uniformly or copy all edges to list from set just to sample one.

By Frank J M

â€¢Feb 25, 2019

lectures were great. Pace was just right. It is great being able to repeat parts of the lecture to improve your understanding. I only wish the Part 1: Basics books covered the week on graphs and the contraction algorithm. The Algorithms Illustrated book was a great companion for the course. Not having a book companion made the graphs and contraction algorithm material a little more difficult.

I like the the lectures are not copies of the book. The flow of topics match, but the explanations in lecture are often different.

By Kevin H

â€¢May 31, 2022

Great course on divide and conquer algorithms. For a MOOC I felt like this course provided a fair amount of rigor which is great if that is what you are looking for. Prof. Roughgarden focuses on mathematical proofs which is a weak spot of mine and it challenged me without being too much for me to figure out and grasp. The assignments are quite refreshing since they allow you to implement an algorithm as you see fit, I learned a lot about programming in general by developing my own implementations of these algorithms.

By Benoit P

â€¢Dec 29, 2016

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.

By Jason H

â€¢Jul 29, 2018

This is the place to start upgrading your programming skills to the next level. If you have some prior programming experience solving problems with data, but have never rigorously looked at the efficiency of your algorithm and wondered "Can this be better?" this course is designed for you. You'll learn to think and talk like a software engineer and not just a computer programmer. The course has some very practical problems to solve, which will give you a sense of empowerment to tackle big data sets with ease.

By Rohit S

â€¢Jun 9, 2020

This course was very helpful.

I learned a lot from this course.

I learned why algorithms are important how they help to optimize time and space complexity , moreover I learned how to analyse time and space complexity of any given algorithm.

I learned various sorting algorithms and various other algorithms used for solving problems such as finding number of inversion and finding minimum cut.

This course will not only help me in my academics but also add to my resume, which will help me to get a job.

By Charlie Z

â€¢Jan 28, 2018

Roughgarden creates a great mental model for algorithms. He explains the ideas that connect them and how they are organized. He doesn't waste your time, hitting the key components in both the math proofs and in explaining the algorithm implementation. The way he teaches in like induction; he uses a super simple example (base case) and abstracts that out to get the general case.

After the course, I *get* algorithms now... (instead of memorizing them, I can see how to deduce them). Thank you!

By Mohamad S

â€¢Jan 12, 2019

I was always looking for a good material to study this complicated topic , and after a lot of purchases and digging , I finally found this course , these sequence of courses will not give you every detail about every algorithm in the universe but it will give you the knowledge that will enable you to walk alone in the street of algorithms . Really great course , I'm still in course no 2 of the 4 courses but i'm very happy of what i've seen so far and looking forward to finish them all isA

By Hrishikesh A

â€¢Dec 14, 2016

Tim gives great insights and draws attention to the right things at right time! Exercise and quizzes are very helpful and makes you think in right direction. Also the in-video-quizzes are well thought of to make you think about the topic being described in the video and thus makes it easy to understand the contents. This is just the right course anyone should take to improve/learn algorithm and data structures course. I've got got aaha! moments multiple times. Can't thank Tim enough!!

By Berk B

â€¢Apr 26, 2017

I had a great time taking this course. It was a very good course in algorithms that explained the core concepts really well rather than just providing a high level overview. The assignments take some time but it aligns with what the instructor is teaching. The instructor is absolutely excellent because he takes the time to go through the math and iterations which helps to develop a deeper intuition for these algorithms. Looking forward to completing his other courses when I got time.

By Manuel V

â€¢Aug 8, 2019

This course immersed me in the fundamentals of one of the most interesting and useful problem solving methods in computer science.

Each problem assignment is so carefully thought out, that it forced me to apply what I learned and constantly ask myself "could I do better?"

Very well combined with historical reviews and mentions of the "protagonist of the week", which enriches the learning and made me get closer to the way of thinking of those who pushed our beloved computer science.

By Haluk O

â€¢Mar 8, 2021

I learned more from this course than any other study I have done in 3 years I have been studying programming. Great professor, great content. I advise anyone who is interested in programming to take this course to see how computer scientists think, and how they use math in theoretical sense. Being a math major myself, I immensely enjoyed how the course was structured around proofs and theorems, and at the same time I found it easy to digest.

By Ravi P

â€¢Sep 6, 2020

What a wonderful journey.Tim Roughgarden is one of the best instructor I have ever encountered, this course is very totally worth it and goes very well and indepth, the problem covered and the material discussed were just WOW!.

But I won't suggest this course to any beginner as this course is sort of high-level and also requires you to have a strong fundamental knowledge. Overall best course looking forward to the 2nd course now.

By Yohan S

â€¢Jan 4, 2018

This was perfect introductory class for me to begin my learning on algorithm. As the instructor said at the introduction, many of the algorithms were fun and challenging and the explanation of the instructor was great. Although the fact which the Programming Assignments do not check the actual code but the final output was the only downside of this class, everything else is great for checking one's understanding of the course.

By Assaf V

â€¢Jul 9, 2021

The instructor is very good. He is very knowledgeable and keeps the lectures interesting. The homework assignments are good but only require to directly implement algorithms learned in the lectures. Maybe adding some assignment which requires a use of some algorithm but with some trick/ingenuity on how to use it would be nice. Moreover, the final exam was too easy to my taste. Other than that, really great and fun course.

By Sophie Z

â€¢Jun 25, 2017

This course not only taught me some basic concepts of algorithm but also taught me how to analyse the underneath disciplines as well as how to manipulate them. The analysis using probability seems complicated at first, however, the instructor managed to illustrate it in an easy way. I especially love the assignments, they are very enlightening. The test cases in the forum is also of great help in my debugging process.

By Ethan h

â€¢Dec 11, 2017

I would probably still be fascinated by algorithms without the enthusiasm of these lectures, but it certainly helps. The discussion forums don't seem to be too busy these days, but enough people have taken this course over the years that I'm sure any stumbling blocks along the way have already been navigated somewhere in the archives. Anyone who enjoys puzzle-solving and analysis should appreciate this course.

By Ellen Y

â€¢May 6, 2017

The instructor speaks very clearly and describes everything in a good amount of detail. There were quizzes throughout lectures that keep you engaged and test your understanding, and I liked that I could use the problem sets as a way to practice since there's no penalty for multiple tries. I really enjoyed the course and would highly recommend it to anyone looking for a solid understanding of algorithms.

By Vladimir M

â€¢Dec 5, 2020

Excellent course. Very good and thorough explanations of brilliant algorithms and their asymptotic analysis. Also refresher on discrete probability was very good and useful. Separately want to thank professor for great problem sets and assignments. What else I can say, very very solid and useful course for everyone striving to get better at analytical thinking and problem solving. Liked it all the way

By Hao W

â€¢Mar 10, 2021

The course material is clear, and the instructor is enthusiastic about the material which is quite nice. The only drawback is the course focuses a bit more on theory rather than implementation, but since the class is not targeting any programming language it makes perfect sense. I'm also expecting more materials from the programming assignment, with less focuses on weekly quizzes (i.e., theories.)

By Jonathon P

â€¢Oct 8, 2018

I am a professional software engineer and I've made it through week 3 of this course so far. The lectures are well done, easy to follow, and it feels like a 1-on-1 tutoring session with one of the world's top professors.

I already feel like I have grown as an engineer after implementing merge sort to find array inversions (among other exercises and assignments). I can't wait to see what's next!

By Ashish D S

â€¢Aug 1, 2018

Excellent course on Algorithms. I have done few UCSD algorithm courses before (I equally liked them as well), this course is more focused on Mathematical part. Programming assignments are probably simpler as compared to UCSD course but quiz are hard and requires considerable knowledge of probability and combinatorics. Better to do this course after some basic course on discrete mathematics.

By Matt C

â€¢Nov 9, 2017

Absolutely not what I expected. The instructor is excellent, you can tell his passion about what he is teaching and he presents it great. That being said, this course is way more difficult than what I expected, so be prepared to put in some time and effort to get the most out of it. The material definitely stuck, I'll never look at algorithms the same way again, that's for sure1

By Sam S

â€¢Mar 27, 2020

A very thorough and rigorous beginning to algorithms. Professor Roughgarden does an excellent job walking through everything in a clear and succinct fashion. There isn't too much programming needed, but it can be tricky if you aren't familiar with how to operate on various data types. A good understanding of high school math (algebra in particular) will help you in this course.

By GongPing

â€¢Jun 11, 2017

These lectures are incredibly mind-blowing, full of insights for algorithm designs and valuable suggestions. This course is really a great enjoyment to follow, because the lectures & quiz & programming assignments are so well arranged! Wish I had took this lectures earlier. Thank you very much Prof Tim Roughgardern for providing the world with such an excellence on-line course!

- Google Data Analyst
- Google Digital Marketing & E-commerce Professional Certificate
- Google IT Automation with Python Professional Certificate
- Google IT Support
- Google Project Management
- Google UX Design
- Preparing for Google Cloud Certification: Cloud Architect
- IBM Cybersecurity Analyst
- IBM Data Analyst
- IBM Data Engineering
- IBM Data Science
- IBM Full Stack Cloud Developer
- IBM Machine Learning
- Intuit Bookkeeping
- Meta Front-End Developer
- DeepLearning.AI TensorFlow Developer Professional Certificate
- SAS Programmer Professional Certificate
- Launch your career
- Prepare for a certification
- Advance your career
- How to Identify Python Syntax Errors
- How to Catch Python Exceptions
- See all Programming Tutorials

- Free Courses
- Artificial Intelligence Courses
- Blockchain Courses
- Computer Science Courses
- Cursos Gratis
- Cybersecurity Courses
- Data Analysis Courses
- Data Science Courses
- English Speaking Courses
- Full Stack Web Development Courses
- Google Courses
- Human Resources Courses
- IT Courses
- Learning English Courses
- Microsoft Excel Courses
- Product Management Courses
- Project Management Courses
- Python Courses
- SQL Courses
- Agile Certifications
- CAPM Certification
- CompTIA A+ Certification
- Data Analytics Certifications
- Scrum Master Certifications
- See all courses

- Free online courses you can finish in a day
- Popular Free Courses
- Business Jobs
- Cybersecurity Jobs
- Entry-Level IT Jobs
- Data Analyst Interview Questions
- Data Analytics Projects
- How to Become a Data Analyst
- How to Become a Project Manager
- IT Skills
- Project Manager Interview Questions
- Python Programming Skills
- Strength and Weakness in Interview
- What Does a Data Analyst Do
- What Does a Software Engineer Do
- What Is a Data Engineer
- What Is a Data Scientist
- What Is a Product Designer
- What Is a Scrum Master
- What Is a UX Researcher
- How to Get a PMP Certification
- PMI Certifications
- Popular Cybersecurity Certifications
- Popular SQL Certifications
- Read all Coursera Articles

- Google Professional Certificates
- Professional Certificates
- See all certificates
- Bachelor's Degrees
- Master's Degrees
- Computer Science Degrees
- Data Science Degrees
- MBA & Business Degrees
- Data Analytics Degrees
- Public Health Degrees
- Social Sciences Degrees
- Management Degrees
- BA vs BS Degree
- What is a Bachelor's Degree?
- 11 Good Study Habits to Develop
- How to Write a Letter of Recommendation
- 10 In-Demand Jobs You Can Get with a Business Degree
- Is a Master's in Computer Science Worth it?
- See all degree programs
- Coursera India
- Coursera UK
- Coursera Mexico