Puzzles as Heuristic Programming Exercises

In the 1970s people were drawn into programming careers because of the fast-moving and free-spirited nature of the workplace. These individuals were creative and adventurous. Personal computers and software products from spreadsheets to flight simulators were the result of their efforts. There were also many project failures including the development of unsupportable programs. To fix those problems, university and corporate education classes now stress analysis, quality control, and structured techniques. An unfortunate side-effect to excessive structure is that students may never address problems where creativity, rather than accounting skills, is the key. Puzzles provide programming projects where analysis and structure may coexist with creative thinking.