Prerequisite knowledge

Comfortable with variables, conditions, loops, and functions.

Lessons

  1. Problem decomposition~20 min
  2. Inputs, outputs, constraints, and edge cases~20 min
  3. Abstraction and modeling~20 min
  4. Pseudocode and tracing~20 min
  5. Search strategies~25 min
  6. Comparing solutions~25 min
  7. Iterative improvement~20 min

Can I skip this module?

If you can confidently answer "yes" to the questions below, you may be able to move faster through this module or skip to practice.

  • Given a vague problem statement, can you write down its inputs, outputs, and edge cases unaided?
  • Do you already write pseudocode before code, and use it to catch mistakes early?

Capstone

Finish this module by attempting its integrative project on the projects page. Projects are scenario-based: you decide the implementation, and acceptance checks tell you when you're done.