MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.
At the end of this course, you will have a solid understanding of theoretical computer science. This will not only allow you to recognize some of the most challenging algorithmic problems out there, but also give you powerful tools to deal with them in practice.
What You Will Learn
Lesson 1
Challenging Problems
- An introduction to tough problems and their analysis.
Lesson 2
Understanding Hardness
- What we mean when a problem is "hard" and the concept of NP-completeness.
Lesson 3
Showing Hardness
- Tools to let you recognize and prove that a problem is hard.
Lesson 4
Intelligent Force
- Smart techniques to solve problems that should – theoretically – be impossible to solve.
Lesson 5
Sloppy Solutions
- Gaining speed by accepting approximate solutions.
Lesson 6
Poking Around
- Why randomness can be of help – sometimes. An introduction to complexity classes.
Lesson 7
Ultimate Limits
- Problems that no computer can ever solve. In theory.
Prerequisites and Requirements
You should have a basic understanding of algorithms (such as Intro to Algorithms) and programming (such as Introduction to Python Programming). No prior knowledge about theoretical computer science required!
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.