This course provides a challenging introduction to some of the central ideas of theoretical computer science.

FREE
This course includes
Hours of videos

638 years, 9 months

Units & Quizzes

23

Unlimited Lifetime access
Access on mobile app
Certificate of Completion

It attempts to present a vision of “computer science beyond computers”: that is, CS as a set of mathematical tools for understanding complex systems such as universes and minds. Beginning in antiquity—with Euclid’s algorithm and other ancient examples of computational thinking—the course will progress rapidly through propositional logic, Turing machines and computability, finite automata, Gödel’s theorems, efficient algorithms and reducibility, NP-completeness, the P versus NP problem, decision trees and other concrete computational models, the power of randomness, cryptography and one-way functions, computational theories of learning, interactive proofs, and quantum computing and the physical limits of computation. Class participation is essential, as the class will include discussion and debate about the implications of many of these ideas.

Course Currilcum

  • Introduction Unlimited
  • Logic Unlimited
  • Circuits and finite automata Unlimited
  • Turing machines Unlimited
  • Reducibility and Gödel Unlimited
  • Minds and machines Unlimited
  • Complexity Unlimited
  • Polynomial time Unlimited
  • P and NP Unlimited
  • NP-completeness Unlimited
  • NP-completeness in practice Unlimited
  • Space complexity and more Unlimited
  • Randomness Unlimited
  • Probabilistic complexity classes Unlimited
  • Derandomization / cryptography double feature Unlimited
  • Private-key cryptography Unlimited
  • Public-key cryptography Unlimited
  • Cryptographic protocols Unlimited
  • Interactive proofs / machine learning Unlimited
  • Probably Approximately Correct (PAC) learning Unlimited
  • Learning, Chomsky, RSA, quantum Unlimited
  • Quantum computing Unlimited
  • Quantum algorithms Unlimited