Module 3: Theory

1. Algorithms & Data Structures

  • Goal: Master ubiquitous data structures (stacks, queues, trees) to solve challenging problems.
  • Core Text: The Algorithm Design Manual by Steven Skiena.
  • Video Lectures: Steven Skiena’s lectures.
  • Practice: Solve ~100 problems on Leetcode to test progress against industry standards.
  • Supplemental: How to Solve It for general problem-solving methodology.

2. Theory of Computation

  • Goal: Determine the fundamental capabilities and limitations of computers (automata, computability, and complexity).
  • Resource: Introduction to the Theory of Computation (Sipser) is the standard recommendation for this field (implied by standard CS curricula, though specific text not cited in source lists; refer to “Calculability theory” in fields list). Note: The provided texts focus heavily on practical algorithms; strict theory is often covered in the math and algorithms sections above.