Save for later

Divide and Conquer, Sorting and Searching, and Randomized Algorithms


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).
Get Details and Enroll Now

OpenCourser is an affiliate partner of Coursera and may earn a commission when you buy through our links.

Get a Reminder

Send to:
Rating 4.7 based on 583 ratings
Length 5 weeks
Effort 4 weeks of study, 4-8 hours/week
Starts Dec 14 (6 weeks ago)
Cost $79
From Stanford University via Coursera
Instructor Tim Roughgarden
Download Videos On all desktop and mobile devices
Language English
Subjects Programming Mathematics
Tags Computer Science Algorithms Math And Logic

Get a Reminder

Send to:

Similar Courses

What people are saying

computer science

This course is must for any Computer Science student This course is about following topics: large integers multiplication, merge sort, quick sort, master method and Karger's min-cut algorithms.

I guess I should go and read the maths for computer science resource.

Course is very good Very Nice course,I have got a Master Degree in Computer Science,but i stll learn much new knowledge and thinks from this course.

I would recommend people who want to do software engineering or computer science to pick up this course.

Nice! Very well done and clear even for people without a computer science background.

Very useful, pretty clear lecture Although some concepts were a bit too hard to chew, this is a great start for someone who's new to computer science.

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

"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.

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.

I'm in transition between my original degree (engineering) to computer science, and I want to build a great foundation of my knowledge.

(Although I couldn't see the answers) in Overall, it's a great course, and I recommend it to anyone with a passion for computer science.

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.

For me, whose prior math coursework was mainly focused on areas of math not as prevalent in computer science as other in disciplines (e.g.

Now I am determined to be a computer science major in college.

Read more

divide and conquer

Hoppefully, there is a github branch with that already... but better to merge it to here Great learning experience Now I truly understand how to think of algorithm in terms with Recursion applying Divide and Conquer, and how to use Master method to prove an algorithm's complexity.

A very good course for having the notion of algorithms, identify problems which can be solved by divide and conquer approach and analyse their time complexity.

Really good course on divide and conquer algorithm design approaches.

A little too much math than what was anticipated, I would have preferred more of why did the CS choose a divide and conquer approach than proofs.

数学系的学生修这门课感觉很带劲~ Very good review of divide and conquer algorithms, however, I only recommend for those who are willing to put in the hard work as I found it challenging.

A bit too heavy on the probability and mathematical proof side, otherwise I learned a lot about divide and conquer algorithms and minimum cut as well as the Master Method for algorithm analysis.

This course really helped me understand how Divide and Conquer Algorithms work.

Awesome Course Great course I think the course is nice, I have finally understood what the divide and conquer algos are.

such a good course which I had never learned from anywhere I have learned a lot about important concepts about algorithms through this course, to name a few, divide and conquer (recursion), randomized algorithms, and introduction to graph.

It's good enough but lack of thorough analysis it ‘s a challenge course ,but give me a useful theory to learn other divide and conquer algorithm I am a professional software engineer and I've made it through week 3 of this course so far.

An awesome course for learning algorithms in Divide and Conquer Strategy.

Read more

tim roughgarden

Tim Roughgarden explains things in a crystal clear way.

A lot of new thing i have learn from this course Tim Roughgarden does an amazing job at explaining this topic.

The instructor, Prof Tim Roughgarden, has done a great job explaining the nuances in the course material.

It was an awesome and challenging course.And ,the lecturer Mr.Tim Roughgarden did introduced the gist that I need.So ,of course, I owe him a big thank.Thank you all.

awesome Tim Roughgarden teaches with wit and depth.

Sir Tim Roughgarden teaches very straight forward and easy .I like the course.

Tim Roughgarden is an exceptional teacher.

It was great course from Tim Roughgarden.

Tim Roughgarden is an incredible teacher.

The book "Algorithms Illuminated" by Dr. Tim Roughgarden makes you greedy to learn more about algorithms.

All materials are interesting but the assignments are not well-prepared and quite little :( I don't think they can assess learner's understanding and knowledge well enough Dear Prof Tim RoughgardenI have been watching your lecture videos while taking my meals.

Well-taught, I love Tim Roughgarden's lecture style.

Prof. Tim Roughgarden does a fantastic job in explaining the concepts and catching the attention of the students, while not making the course boring.

Read more

professor roughgarden

Thank you professor Roughgarden, and I hope you create another course with advanced algorithms with latest developments.

Professor Roughgarden makes complex algorithm topics easy to understand.

Professor Roughgarden has a concise and candid lecturing style that I found easy and pleasant to follow.

The course dives into some probability, but Professor Roughgarden will walk you through some optional (and very instructive) review lectures.I'm looking to finishing the specialization, but I'll take some time off to review my discrete mathematics, and strengthen my programming first.

I highly recommend the course and Professor Roughgarden's lectures.

Professor Roughgarden was brilliantly lucid in his explanations and the assignments and evaluations were helpful in assimilating the concepts covered.

Professor Roughgarden explains everything clearly and is engaged in the topic.

Professor Roughgarden managed to explain all the algorithom ideas in a clear and simple way, and give us a very intuitive understanding of these methods.

Great course to improve your skills on Algorithms, Space and Time complexities Professor Roughgarden makes algorithms cool.

Professor Roughgarden is a fantastic lecturer, and the material is extremely well crafted with lots of fully worked examples of classic problems.

Professor Roughgarden is quite adept at presenting in depth analyses of algorithms in a way that does not shy away from formal mathematics but also does not require a degree in mathematics to understand.

calculus vs. discrete math), Professor Roughgarden's approach is ideal and opened up the door to a much deeper understanding of algorithms than I've acquired on my own over a multi-decade career in programming.Highly recommend this course for anyone who, like me, has a lot of experience with programming, but no formal training on algorithms.

Read more

well explained

Concepts are very well explained and the quality of quizzes are top-notch.

Very well explained course content and good quiz and programming assignments.

Very interesting, useful and well explained.

Very good course on algorithms, a lot of terms explained in details with exercises Well structured, well explained.

Interesting and well explained.

Really well explained and good pace.

well explained sir..!!!

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.

Read more

easy to follow

But still awesome experience and challenge This is not very beginner-friendly course, and what made it worse is that all the videos are out of sync (I don't know why this problem has not been addressed for 5 years), and the instructor's speaking manner is not easy to follow for a foreigner.

The words the professor used are not easy to follow for a non-native English, the way the exercises are designed is not reasonable.

Very Good Course I'm not a Computer Science student and yet I found these lectures easy to follow.

Though he doesn't pull punches when it comes to the math, it's very straightforward and easy to follow.

Read more

looking forward

Definitely looking forward to the next course in the specialization.

Looking forward to completing his other courses when I got time.

Looking forward to complete the spec I like this course a lot.

Looking forward to more.

Looking forward to completing the specialization.

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 Nice approach by Tim.

Read more

feel like

But instead I was exposed to a lot of new concepts and really feel like I got some good experience from it.

I feel like assignments like this are tedious and discouraging to not only learning but thinking for yourself.

I feel like I got a deep understanding of the topics covered versus just learning a recipe to sort an array.

I feel like I have a deep understanding of algorithms already just by the end of the second week.

Read more

data structures

I really love this course, and it had helped me get started in algorithms and data structures.

Please do not teach graphs before teaching data structures it becomes very tough for students.

Good Explain, make me deep understanding Great start in the specialisation of algorithm and data structures.

its amazing and really helpful really helpful course on building concepts on data structures and algorithms 喵儿额 Very good course.

Read more

make sure

The teacher is very good and the assignments and quiz also challenges you and make sure that you have viewed the lectures thoroughly.Thanks :) I love Tim's excitement for algorithms.

fantastic course Excellent but make sure to brush up your math logic and probability skills before taking this course!

There is a lot of math, and while not super advanced, make sure you've brushed up on: logarithmic identities, infinite sums, and counting (permutations and combinations).

If you take diligent notes and make sure you rewatch videos as needed it yields a great deal of knowledge.

there are also plenty of exercises to make sure you understand all the details in algorithm.

Read more

mathematical analysis

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.

I thoroughly enjoyed the programming assignments as well as the rigorous mathematical analysis provided in lectures.

Strongly suggested to anyone interested in algorithms It is Really an amazing Course, mind blowing, very informative, It gives me the complete understanding merge sort and quick with best mathematical analysis.

I like the algo's non-mathematical analysis.

Read more

problem sets

On the other hand the fact that you cannot submit assignments or problem sets without purchasing the course is quite annoying.

On all other courses which I have done without purchasing, you were able to do the full course which includes the problem sets etc.

the course is great at the level of information , but has some issues:1 - The sound of videos and instructor is not good.2 - Some times the lectures were boring and not entertaining at all .3 - you have to do an extra extra extra work to understand the related materials due to bad illustration during the course .4 - if your math background is not ok or outdated don't rely on the course materials or the instructor illustration because they are not good Excellent course with indepth knowledge of algorithms Course was amazing - the one thing is I found the problem sets to typically be very difficult.

Took me way more than 7 hours/week to go through course materials and complete the problem sets and programming assignments.

Read more


An overview of related careers and their average salaries in the US. Bars indicate income percentile.

NATCEP Primary Instructor $43k

Educator-primary $54k

Primary Graphic Designer $54k

Trending topics reporter $58k

Primary Care Need $62k

Instructor for Continuing Ed Division in Communication and PR Topics $67k

Primary Care Clinician $68k

Primary Stitcher/First Hand $72k

Primary guitar technician $78k

Assistant Primary Therapist 1 $85k

Primary Care Physicians $114k

Primary Technical Writer $116k

Write a review

Your opinion matters. Tell us what you think.

Rating 4.7 based on 583 ratings
Length 5 weeks
Effort 4 weeks of study, 4-8 hours/week
Starts Dec 14 (6 weeks ago)
Cost $79
From Stanford University via Coursera
Instructor Tim Roughgarden
Download Videos On all desktop and mobile devices
Language English
Subjects Programming Mathematics
Tags Computer Science Algorithms Math And Logic

Similar Courses

Sorted by relevance

Like this course?

Here's what to do next:

  • Save this course for later
  • Get more details from the course provider
  • Enroll in this course
Enroll Now