Intro to Theoretical Computer Science

Intro to Theoretical Computer Science

Learn the basic concepts in theoretical computer science. Discover what they imply for solving tough computational challenges.

Overview

Learn the basic concepts in theoretical computer science. Discover what they imply for solving tough computational challenges.

Syllabus

  • Lesson 1.1 - Challenging Problems
  • Lesson 1.2 - Algorithm Analysis and the RAM
  • Lesson 1.3 - Big O (Optional)
  • Lesson 1.4 - Connecting Similar Problems
  • Problem Set 1
  • Lesson 2.1 - Many Solutions and Intractability
  • Lesson 2.2 - Non-deterministic RAM
  • Lesson 2.3 - SAT
  • Lesson 2.4 - Proof of SAT (Optional)
  • Lesson 2.5 - NP-Completeness Via Reductions
  • Problem Set 2
  • Lesson 3 - Solving NP-Complete Problems
  • Problem Set 3
  • Lesson 4.1 - Pruning the Input
  • Lessons 4.2 - Preprocessing
  • Lesson 4.3 - Measuring Hardness
  • Problem Set 4
  • Lesson 5.1 - Approximation Factor
  • Lesson 5.2 - Shortest Tour
  • Lesson 5.3 - Reductions & Approx. Factors
  • Lesson 5.4 - PTAS
  • Problem Set 5
  • Lesson 6.1 - Randomization
  • Lesson 6.2 - What You've Learnt
  • Problem Set 6
  • Lesson 7.1 - Limits of Computation
  • Lesson 7.2 - More Undecidability
  • Problem Set 7
  • Exam

Instructors

  • • Sebastian Wernicke
  • • Sean Bennett
  • • Sarah Norell

Prerequisites

  • 0 prerequisites
  • Written and spoken English