New answers tagged

1

Although some of the puzzles might be appropriate only for extra credit, have a look at Algorithmic Puzzles by Anany and Maria Levitin. The ad copy for this book gives a good description: While many think of algorithms as specific to computer science, at its core algorithmic thinking is defined by the use of analytical logic to solve problems. This ...


2

This isn't a resource, but a fun algorithmic problem that I remember solving back in 7th grade: Consider a long loop of train wagons, $1 ... N$ for some unknown $N$ where wagon $i$ is connected to wagons $i-1$ and $i+1$. You can walk from one wagon to its neighbors. In every wagon, there is a lightbulb connected to a switch. You start in a wagon and want to ...


1

The de Casteljau algorithm for generating polynomially parameterized curves in the Beziér representation admits a simple geometric interpretation in terms of the control polygon that is easily implemented in Python. More precisely, a polynomially parameterized curve in the affine plane or affine three-space can be represented in the form $P(t) = \sum_{k = ...


2

These may be too hard, but the ACM's International Collegiate Programming Contest (ICPC) has a set of past programming problems that require algorithmic thinking. I took a class in college where we basically just worked on these for 3 hours a week. It was really good problem-solving experience. https://icpc.baylor.edu/worldfinals/problems


7

Any puzzle game which requires students to plan the entire problem before executing it might help. Also, there are physical puzzles which can be solved algorithmically much more neatly than if they use 'trial and error'. In English, one resource which I have not seen mentioned yet is Code.org which has themed coding puzzles for all ages. Other puzzles, ...


4

An "old school" answer (nearly 60 years old now!) which works for any age range is turtle graphics, which is (are?) implemented as a Python module. We can only guess how much of your curriculum is officially labelled "geometry", but it will certainly teach algorithmic thinking, and also be fun.


5

Challenging question! Two ideas. (1) Calculate the Greatest Common Divisor of two natural numbers, not so easily accomplished by hand on moderately large numbers. The Euclidean algorithm could be used to illustrate recursion/induction. Here is Python3 code: trace = True # True turns on tracing prints. def GCD( a, b ): '''Returns the Greatest Common ...


11

One well-known source is Project Euler. The concept behind it is that each problem is mathematical and designed to be solved by an efficient algorithm on a "normal" computer in less than a minute. The early problems are all extremely accessible. As the problems go on, they become (in my mathematical opinion) far more esoteric from either a mathematical or ...


Top 50 recent answers are included