Algorithmic Problem Solving: How to find problems

The ideal way to find problems is by picking something out of your own life. Consider these examples: Frank goes flying, Martin pays his debts, Martin is bad at Ticket to Ride, and Martin's car overheats.

A key to finding problems is to start with something tricky and remove unnecessary pieces until a manageable problem can be found. Finding the perfect next move in Chess is hard, but the Knight's Tour problem has interesting aspects but is handily solvable.

One has to be prepared that problems are often either too easy (a trivial solution presents itself), or too hard (no progress is made). The easiest way to figure this out is to discuss it at the round-table discussions, someone will often be able to spot the trivial solution or difficult aspect.

Some suggestions for sources to problems:

  • Pick something from real life: bus schedules, managing your economy, figuring out how to pack your car, the perfect pace of drinking beer for economy/enjoyment, there are many possibilities.
  • Check out current problems for some suggestions.
  • Games are a good source, both board games and computer games usually embed interesting problems.
  • Discuss possibilities at the round-table discussions.
  • Check some typical sources, like Project Euler (problems need to then be generalized), Kattis.com, some simplified aspect of an unsolved problem from Knuth's The Art of Computer Programming, etc.