What will you learn?
NP-completeness and how to deal with it
How to approximate algorithms
How to use heuristic algorithms to solve a problem more quickly when classic methods are too slow
About the course
Step into the area of more complex problems and learn advanced algorithms to help solve them.
This course, part of the Algorithms and Data Structures MicroMasters program, discusses inherently hard problems that you will come across in the real-world that do not have a known provably efficient algorithm, known as NP-Complete problems.
You will practice solving large instances of some of these problems despite their hardness using very efficient specialized software and algorithmic techniques including:
- SAT-solvers
- Approximate algorithms
- Special cases of NP-hard problems
- Heuristic algorithms
Program
NP-Complete Problems
Learn about NP-complete problems, known as hard problems that can’t be solved efficiently, and practice solving them using algorithmic techniques.
Lecturers

Daniel Kane
Assistant Professor, Computer Science and Engineering & Dept. of Mathematics UC San Diego

Alexander S. Kulikov
Visiting Professor UC San Diego
Platform
All the courses on this platform are free of charge. The authors are top universities and corporations that seek to maintain high quality standards. If you do not meet a deadline for assignments, you lose points. Like on other platforms, the videos in which the theory is explained are followed by practical assignments. Courses are available in English, Chinese, Spanish, French and Hindi.