Algorithmic Problem Solving

Algorithmic problems are problems where the solution involves —possibly implicitly— the design of an algorithm. Algorithmic problem solving is about the formulation and solution of such problems.

The demands on the reliability of computer software have, we believe, lead to massive improvements in our problem-solving skills and in mathematical method. The improvements are centred on goal-directed, calculational construction of algorithms as opposed to the traditional guess-and-verify methodology.

Of course, many algorithmic problems still pose massive challenges, and we have a very great deal to learn about good and bad technique in solving such problems. We believe, however, that the time is now ripe for a greater focus on the methodology of problem solving, rather than on specific results. Our goal is to ensure that future generations are much better problem solvers than we are, not because they know more facts but because their skills are more refined.

We aim to achieve our goals using a problem-driven approach. We intend to tackle challenging problems and document our successes and failures in solving these problems. The choice of problem is crucial. We have no intention of trying to win the jackpot by tackling famous outstanding problems; instead, we will tackle problems that we suspect are within our grasp and from which we can learn the most. (Of course, such problems may one day include some famous outstanding problems!) These may be new problems, including ones we invent ourselves in order to explore particular techniques, or old problems, where we feel there is scope for improvement of the existing method.