Theoretical CS

Schedule

The schedule and assignments may be changed until officially covered in class. You are certainly free to work ahead; just be mindful if things do end up changing!

You may encounter some symbols. Here is what they mean:
⊕: key concepts you should be familiar with
▲: additional links to check out

Unit 1: Getting Started

  1. Setting up the Environment
  2. Taste of Scala
    1. Warm Ups / Review

Unit 2: Data Structures

  1. Linear Structures
    1. Quiz
  2. Associative Structures
  3. Lab 2

Unit 3: Algorithms

  1. Time and Space Complexity
  2. Recursion and Induction
    1. Quiz
  3. Searching and Sorting
  4. Lab 3

Unit 4: Automata Theory

  1. Trees and Graphs
  2. Deterministic Finite Automata
    1. Quiz
  3. Turing Machines
  4. Computational Complexity
  5. Lab 4

Unit 5: Hardware

  1. Computer Architecture
  2. Assembly Language
    1. Quiz
  3. Debugging
  4. Lab 5