Coursera Logo

Advanced Algorithms and Complexity 

  • Offered byCoursera

Advanced Algorithms and Complexity


27 hours

Start from

Start Now

Total fee


Mode of learning


Difficulty level


Official Website

Explore Free Course External Link Icon



Advanced Algorithms and Complexity

  • Shareable Certificate Earn a Certificate upon completion
  • 100% online Start instantly and learn at your own schedule.
  • Course 5 of 6 in the Data Structures and Algorithms Specialization
  • Flexible deadlines Reset deadlines in accordance to your schedule.
  • Advanced Level
  • Approx. 27 hours to complete
  • English Subtitles: Arabic, French, Portuguese (European), Italian, Vietnamese, German, Russian, English, Spanish
Read more
Details Icon

Advanced Algorithms and Complexity
Course details

More about this course
  • You've learned the basic algorithms now and 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.
Read more

Advanced Algorithms and Complexity

Flows in Networks


Network Flows

Residual Networks


The Ford?Fulkerson Algorithm

Slow Example

The Edmonds?Karp Algorithm

Bipartite Matching

Image Segmentation

About University

Slides and Resources on Flows in Networks

Rules on the academic integrity in the course

Available Programming Languages

FAQ on Programming Assignments

Flow Algorithms

Linear Programming


Linear Programming

Linear Algebra: Method of Substitution

Linear Algebra: Gaussian Elimination



(Optional) Duality Proofs

Linear Programming Formulations

The Simplex Algorithm

(Optional) The Ellipsoid Algorithm

Slides and Resources on Linear Programming

Linear Programming Quiz

NP-complete Problems

Brute Force Search

Search Problems

Traveling Salesman Problem

Hamiltonian Cycle Problem

Longest Path Problem

Integer Linear Programming Problem

Independent Set Problem

P and NP


Showing NP-completeness

Independent Set to Vertex Cover

3-SAT to Independent Set

SAT to 3-SAT

Circuit SAT to SAT

All of NP to Circuit SAT

Using SAT-solvers

Slides and Resources on NP-complete Problems

Minisat Installation Guide

NP-complete Problems

Coping with NP-completeness



2-SAT: Algorithm

Independent Sets in Trees

3-SAT: Backtracking

3-SAT: Local Search

TSP: Dynamic Programming

TSP: Branch and Bound

Vertex Cover

Metric TSP

TSP: Local Search

Slides and Resources on Coping with NP-completeness

Coping with NP-completeness

Streaming Algorithms (Optional)


Heavy Hitters Problem

Reduction 1

Reduction 2

Basic Estimate 1

Basic Estimate 2

Final Algorithm 1

Final Algorithm 2

Proofs 1

Proofs 2

Quiz: Heavy Hitters

Advanced Algorithms and Complexity
Admission Process

    Important Dates

    May 25, 2024
    Course Commencement Date

    Other courses offered by Coursera

    – / –
    Start Now
    – / –
    – / –
    – / –
    – / –
    – / –
    Start Now
    View Other 6713 CoursesRight Arrow Icon

    Advanced Algorithms and Complexity

    Student Forum

    chatAnything you would want to ask experts?
    Write here...