- 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 Advanced Algorithms and Complexity

stars

657 ratings

In previous courses of our online specialization you've learned the basic algorithms, and now you are ready to step into the area of more complex problems and algorithms to solve them. Advanced algorithms build upon basic ones and use new ideas. We will start with networks flows which are used in more typical applications such as optimal matchings, finding disjoint paths and flight scheduling as well as more surprising ones like image segmentation in computer vision. We then proceed to linear programming with applications in optimizing budget allocation, portfolio optimization, finding the cheapest diet satisfying all requirements and many others. Next we discuss inherently hard problems for which no exact good solutions are known (and not likely to be found) and how to solve them in practice. We finish with a soft introduction to streaming algorithms that are heavily used in Big Data processing. Such algorithms are usually designed to be able to process huge datasets without being able even to store a dataset....

FS

Oct 21, 2020

It's was great to learn advanced algorithms and complexity. Besides, I learn new topics that can help me further learning. All the problems and the lectures were very good.

EM

Jan 3, 2018

As usual, complex arguments explained in simple terms!

Some problems are really tough! (e.g. there's a problem from Google Code Jam).

Thank you for this course!

Filter by:

By To P H

â€¢Sep 27, 2018

Very bad course content for some modules

Many abstract concepts and mathematical terms but with severe lack of explanation of the terms and lack of specific, concrete examples to help learners to understand them

For example: in LP module there should be example of how the primal and dual matrix looks. How simplex algorithm is used on a specific example (showing explicit graph). I undertood only 25% of what was discussed about in this module

No motivation to move on after week 2!

Other weeks are slightly better

In summary: Too many abstract concepts with little examples

By Yue S

â€¢Oct 21, 2019

I really dislike Daniel Kane's teaching style!!! His slides are rough and lack of details, the structure of his lectures is loose. Every time I met a Unit taught by Kane, I have to spend much more time on videos and assignments than other Units. This makes me very annoyed -- why can't this teacher be more serious on teaching just like other teachers in this course??? :-(

By Kirill M

â€¢May 10, 2017

Very weak explanations. Most time I spent in the internet googling how to implement assignments, because it was not clear from the course.

By Chitrang S

â€¢Aug 26, 2019

Very Very Challenging Course , it test your patience and rewards is extremely satisfying. Lot of learning on a complicated subject of NP-Hard problems.

By Nikhil

â€¢Jan 4, 2017

Loved what I learnt, I also implemented a project using Google MAP API for the organization I'm working at

By Fernando K I

â€¢Jan 1, 2020

Shout-out to professor Alexander Kulikov that is the only one in the whole specialization who has good didactics skills. He knows how to explain a concept by giving examples and walking through them step by step so the viewer can understand the thought process. Unfortunately, professor Kane's lectures were poorly taught. I understand that his videos are older and maybe the technology wasn't there yet when he recorded the lectures. You'd better off skipping those lectures and going through the assignments directly, learning the material elsewhere.

By Yinchung C

â€¢May 14, 2019

This is a very challenging course in the specialization. I learned a lot form going through the programming assignments!

By VontMan

â€¢Apr 15, 2017

Thank you very much for this awesome course, I really enjoyed and learned alot from it.

I really liked the selected topics, they act like an intro to some really interesting fields in the programming.

I've learned about NP multiple times but never found a use to it until now, the problems were really good and informative.

I think the linear programming was pretty rushed, it should've been expanded over two weeks with more in details.

Maybe add a problem or explain the use of duality .

By Kota M

â€¢Sep 16, 2016

I enjoyed the course a lot. I cannot thank the instructors enough.

It would have been more interesting if we could go deeper on linear programming, such as extension to integer programming. The discussion about the duality was a bit too fast to me.

By Rahul K

â€¢Jun 9, 2020

lecturer seems to be reading slides without providing detailed analysis and proofs seem very superficial as well

By Tamas K

â€¢May 5, 2018

Great course again! The problems are considerably more difficult than in the previous courses in this specialization. The only problem is that the forum interaction with TAs is nonexistent, if you stuck with a problem, you have to solve it alone.

By Madan K

â€¢Oct 9, 2016

Excellent but tough course ,you need to work and it is not simply called advanced Algorithms and Complexity.

You will be forced to test your code properly ,even if you didn't do it properly in the previous specialisation course.

By Dr K S V

â€¢May 18, 2020

Excellent Course. I learnt new things like integer programming and bioinformatics related applications.

I did my Ph.D in bioinformatics datasets. Stream matching algorithms and apllication oriented wonderful examples

By Giuseppe M

â€¢Jan 4, 2018

As usual, complex arguments explained in simple terms!

Some problems are really tough! (e.g. there's a problem from Google Code Jam).

Thank you for this course!

By Anton R

â€¢Mar 2, 2019

Liked this course, at least there are courses for advanced level.

By Greg G

â€¢Apr 3, 2020

An incredibly challenging course with a lot of juicy content. Builds heavily on previous courses in the Data Structures and Algorihms specialization such as hashing, graph searching, data structures, stress testing, algorithmic complexity etc. But given you completed those, you already know how to solve such problems, and it's rewarding to see all the pieces working as you put them together. Also, this course requires some additional maths knowledge such as linear algebra, logic and probability theory. All in all, the "advanced" attribute fits well.

Assignments are wildly varying in difficulty - completing one took me 3 days, another was done in just 30 minutes. They were mostly fine (except for the simplex linear programming solver which I haven't even attempted) and forums were very useful for guidance.

The videos themselves are usually okay, the only seriously lacking area is the linear programming week with Daniel Kane. LP (a fundamental subject in computer science) in itself could fill a whole course, but simply put, his explanations and examples fell short, it was very hard to understand them. So refer to the additional readings there if you are interested. On the other hand, the rest of the course is nice.

Week 1 (flow networks) with Daniel was also kind of hard, but not impossible to understand. Alexander Kulikov's 2 weeks on NP-completeness are the high mark of the course, with engaging and clear explanations. Michael Kapralov's optional 'heavy hitters problem' videos are also interesting and pretty well explained.

By Mohammadmahdi H

â€¢Dec 13, 2020

Poor delivery. Skipping too many details. poor slides. poor in increasing learners' interest in the subject.

By Fahmim M S

â€¢Oct 22, 2020

It's was great to learn advanced algorithms and complexity. Besides, I learn new topics that can help me further learning. All the problems and the lectures were very good.

By Andrii S

â€¢Jun 15, 2018

Another great course in this specialization with challenging and interesting assignments. However, this one is somewhat harder but rewarding.

By Hussain A

â€¢Feb 12, 2020

Really rigorous and fundamental with what scientist and other professionals need to know about programming.

By Surbhi M

â€¢Dec 14, 2019

This course is wonderful.I am really feel like I have all knowledge of adsa

By Addis R S

â€¢Sep 26, 2016

Thank you very much. I learned a lot in this course. I recommend it!

By Priyansh B

â€¢May 31, 2019

Was fun learning advanced stuff and implementing algorithms.

By Tamilarasu S

â€¢Apr 10, 2018

Very well made course with challenging algorithm problems.

By Pablo E M M

â€¢May 20, 2018

Great Courses!. Thanks for this wonderful specialization!

- 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