draft project

Thinking in Algorithms

problems, decomposed

Learn computational thinking as a life skill โ€” breaking problems into parts, attacking each systematically, and knowing the classic algorithms well enough to reach for them by instinct.

A copy carries over only the public parts you see here โ€” the owners' private files never leave their own vaults.

๐Ÿšง Draft โ€” not final. This page was auto-generated as day-one scaffolding for the project and still needs a human pass before it reads as finished. The blanks and placeholders below are intentional โ€” someone who runs this project should fill them in and delete this notice.

Problem of the week

Computational thinking is a habit, not a reading list โ€” so it's practised on one real problem a week, broken down on paper. The subject can be anything (packing a trip, planning a cook, sorting the bookshelf); the skill is decomposition, pattern-spotting, and naming the classic algorithm hiding inside.

This week โ€” worked example: packing for a weekend trip

  1. Decompose โ€” the goal ("everything needed, bag not overweight") splits into: list items, weigh/size them, rank by need, fit under the limit.
  2. Spot the pattern โ€” "maximise value under a weight limit" is the knapsack problem. Naming it means a hundred years of thinking is available.
  3. Pick the strategy โ€” full optimisation is overkill; a greedy rule ("most-needed per kilo first") is good enough, and knowing why it's good enough is the lesson.
  4. Check โ€” did the greedy rule miss anything a smarter method would catch? (Sometimes yes โ€” that gap is the interesting part.)

Classic algorithms โ€” met one at a time

Tick when it can be explained back and re-derived cold a week later.

  • Binary search โ€” the "guess the number" strategy, formalised
  • Sorting โ€” why some ways are fundamentally faster
  • Graphs โ€” shortest path (Maps does this every day)
  • Hashing โ€” how a name finds its data instantly

Log

Week The problem Pattern it turned out to be
2026-07-21 trip packing knapsack (greedy)