CS102

Computational Thinking

The problem-solving mindset behind programming: decomposition, pattern recognition, abstraction, and algorithm design.

8 modules · 32 lessons · Practice after every lesson

Syllabus

  1. Module 1

    Problem Formulation

    • From Informal Needs to Precise Problems
    • Inputs, Outputs, Constraints, and Assumptions
    • Examples, Counterexamples, and Edge Cases
    • Defining Success and Failure Conditions
  2. Module 2

    Decomposition

    • Breaking Systems into Subproblems
    • Dependency Structure and Ordering
    • Top-Down and Bottom-Up Decomposition
    • Interfaces Between Subproblems
  3. Module 3

    Abstraction and Representation

    • Choosing the Right Level of Detail
    • Data Abstraction and Representation Barriers
    • Representing State and Change
    • Models, Maps, and Useful Simplifications
  4. Module 4

    Algorithms and Pseudocode

    • Properties of an Algorithm
    • Writing Unambiguous Pseudocode
    • Sequence, Selection, and Iteration
    • Tracing Algorithms by Hand
  5. Module 5

    Patterns of Computation

    • Accumulation and Reduction
    • Search and Filtering
    • Transformation and Mapping
    • Divide, Classify, and Recombine
  6. Module 6

    Reasoning About Solutions

    • Correctness Before Efficiency
    • Invariants and Progress Measures
    • Complexity as Growth
    • Trade-Offs Between Time, Space, and Simplicity
  7. Module 7

    Debugging Thought Processes

    • Hypotheses and Controlled Experiments
    • Localizing a Fault
    • Distinguishing Symptoms from Causes
    • Using Minimal Reproductions
  8. Module 8

    Computing in Context

    • Automation and Human Judgment
    • Bias in Models and Data
    • Privacy, Safety, and Failure Impact
    • Communicating Computational Decisions

Start Computational Thinking.

No setup, nothing to install. Try the first lessons before you sign up.