The problems discussed below can be viewed as “classics” in problem solving and algorithm design. Many solutions are paradigms for solving classes of problems, a fact students will not realize until later.
Students should be given time to come up with their own solution. Don’t provide the correct answer right away! Creating solutions that turn out to be wrong can strengthen problem-solving skills and thus have value. Problem solving and discussing algorithms can be done without programming and without having programming experience. In the solutions presented, students will see the need for iteration, decisions made based on the outcome of conditions, and the use of variables.
The following problems are formulated and solutions are discussed. The problems can be presented to students in any order. For four of the seven problems interested teachers can download Python code.