Principles and applications of algorithmic problem solving

Algorithmic problem solving provides a radically new way of approaching and solving problems in general by using the advances that have been made in the basic principles of correct-by-construction algorithm design. The aim of this thesis is to provide educational material that shows how these advances can be used to support the teaching of mathematics and computing. We rewrite material on elementary number theory and we show how the focus on the algorithmic content of the theory allows the systematisation of existing proofs and, more importantly, the construction of new knowledge in a practical and elegant way. For example, based on Euclid’s algorithm, we derive a new and efficient algorithm to enumerate the positive rational numbers in two different ways, and we develop a new and constructive proof of the two-squares theorem. Because the teaching of any subject can only be effective if the teacher has access to abundant and sufficiently varied educational material, we also include a catalogue of teaching scenarios. Teaching scenarios are fully worked out solutions to algorithmic problems together with detailed guidelines on the principles captured by the problem, how the problem is tackled, and how it is solved. Most of the scenarios have a recreational flavour and are designed to promote self-discovery by the students. Based on the material developed, we are convinced that goal-oriented, calculational algorithmic skills can be used to enrich and reinvigorate the teaching of mathematics and computing.

[1]  Roland Carl Backhouse Program Construction: Calculating Implementations from Specifications , 2003 .

[2]  Roland Carl Backhouse,et al.  On Euclid's algorithm and elementary number theory , 2011, Sci. Comput. Program..

[3]  Ronald L. Graham,et al.  Concrete mathematics - a foundation for computer science , 1991 .

[4]  Eerke A. Boiten,et al.  The Logic of Large Enough , 2010, MPC.

[5]  Edsger W. Dijkstra,et al.  A Theorem about Odd Powers of Odd Integers , 1978, Program Construction.

[6]  Fred B. Schneider,et al.  TEACHING MATH MORE EFFECTIVELY, THROUGH CALCULATIONAL PROOFS , 1995 .

[7]  H. B. Enderton The unique existential quantifier , 1970 .

[8]  Ian H. Witten,et al.  Unplugged , 2018, Counseling and Family Therapy Scholarship Review.

[9]  Ralf Hinze Functional pearl: streams and unique fixed points , 2008, ICFP.

[10]  Roland Carl Backhouse,et al.  Which Mathematics for the Information Society? , 2009, TFM.

[11]  Edsger W. Dijkstra,et al.  Fibonacci and the greatest common divisor , 1996, NATO ASI DPD.

[12]  Stan Wagon,et al.  Editor's corner: the Euclidean algorithm strikes again , 1990 .

[14]  John Brillhart,et al.  Note on Representing a Prime as a Sum of Two Squares , 1972 .

[15]  W. B. History of the Theory of Numbers , Nature.

[16]  Roland Carl Backhouse,et al.  The algorithmics of solitaire-like games , 2010, Science of Computer Programming.

[17]  D. Grundy Concepts and Calculation in Cryptography , 2008 .

[18]  Don Zagier,et al.  A one-sentence proof that every prime p Ξ1(mod 4) is a sum of two squares , 1990 .

[19]  Herbert S. Wilf,et al.  Recounting the Rationals , 2000, Am. Math. Mon..

[20]  Joakim von Wright Program Inversion in the Refinement Calculus , 1991, Inf. Process. Lett..

[21]  Kenneth S. Williams,et al.  A Deterministic Algorithm for Solving n = fu 2 + gυ 2 in Coprime Integers u and υ , 1990 .

[22]  Cliff B. Jones,et al.  An Early Program Proof by Alan Turing , 1984, Annals of the History of Computing.

[23]  Ralph-Johan Back,et al.  Structured calculational proof , 1996, Formal Aspects of Computing.

[24]  K. Hirst Numbers, sequences and series , 1995 .

[25]  Paul Erdös,et al.  The product of consecutive integers is never a power , 1975 .

[26]  João Fernando Ferreira,et al.  Designing an Algorithmic Proof of the Two-Squares Theorem , 2010, MPC.

[28]  Paul Erdös Note on Products of Consecutive Integers , 1939 .

[29]  Stan Wagon,et al.  Basic algorithms in number theory , 2008 .

[30]  G. Gibson The Thirteen Books of Euclid's Elements , 1927, Nature.

[31]  Shin-Cheng Mu,et al.  Rebuilding a Tree from Its Traversals: A Case Study of Program Inversion , 2003, APLAS.

[32]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[33]  J.F. Ferreira,et al.  Students' feedback on teaching mathematics through the calculational method , 2009, 2009 39th IEEE Frontiers in Education Conference.

[34]  Edsger W. Dijkstra,et al.  Guarded commands, nondeterminacy and formal derivation of programs , 1975, Commun. ACM.

[35]  Lauretta O. Osho,et al.  Axiomatic Basis for Computer Programming , 2013 .

[36]  Brian Hayes,et al.  ON THE TEETH OF WHEELS , 2000 .

[37]  Jan L. A. van de Snepscheut Inversion of a Recursive Tree Traversal , 1991, Inf. Process. Lett..

[38]  A. J. M. van Gasteren,et al.  On the Shape of Mathematical Arguments , 1990, Lecture Notes in Computer Science.

[39]  Roland Carl Backhouse,et al.  Exercises in Quantifier Manipulation , 2006, MPC.

[40]  Leonard Richardson,et al.  Ruby Cookbook (Cookbooks (O'Reilly)) , 2006 .

[41]  Richard S. Bird,et al.  FUNCTIONAL PEARL: Enumerating the rationals , 2006, Journal of Functional Programming.

[42]  Peter Winkler PuzzledUnderstanding relationships among numbers , 2009, CACM.

[43]  F. William Lawvere,et al.  Some thoughts on the future of category theory , 1991 .

[44]  Paul Zeitz The Art and Craft of Problem Solving , 1999 .

[45]  Raymond T. Boute,et al.  Making Temporal Logic Calculational: A Tool for Unification and Discovery , 2009, FM.

[46]  George Polya,et al.  Mathematical discovery : on understanding, learning, and teaching problem solving , 1962 .

[47]  Jeremy Gibbons,et al.  Enumerating the Rationals , 2004 .

[48]  Eveline T. Feteris The Logical Approach , 1999 .

[49]  Wei Chen A formal approach to program inversion , 1990, CSC '90.

[50]  Roland Carl Backhouse Algorithmic problem solving: three years on , 2006, FM 2006.

[51]  Donald E. Knuth,et al.  The art of computer programming. Vol.2: Seminumerical algorithms , 1981 .

[52]  Seven trees in one , 1994, math/9405205.

[53]  Ralph-Johan Back,et al.  Structured Derivations: a Logic Based Approach to Teaching Mathematics , 2008 .