Abstract
This Full Paper in the Innovative Practice
category begins by asking “can algorithms be thought
of and taught as dynamical systems?” Our exploration
of this idea — Algodynamics — is guided by a vision to
achieve convergence between computing and engineering
education.
The engineering sciences share a common conceptual
vocabulary originating in dynamical systems: state spaces,
flows, actions, invariants, fixed points, convergence,
etc. The goal of algodynamics is to build, ab initio, a
framework for understanding and teaching algorithms
using concepts from dynamics. This allows us to teach
computing and algorithms as an engineering science.
Engineers work with models. In algodynamics, models are
expressed using transition systems rather than as pseudocode or programs. This allows a crisp representation of
two important classes of computation: sequential algorithms as ‘discrete flows’ (iterative systems) and interactive
applications as ‘action flows’ (transition systems).