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 pseudo-  code or programs. This allows a crisp representation of  two important classes of computation: sequential algo-  rithms as ‘discrete flows’ (iterative systems) and interactive  applications as ‘action flows’ (transition systems).  The focus of this paper is on the first of these classes,  algorithms, but using ideas from the second, viz., tran-  sition systems. In this framework, algorithms emerge as  convergent iterative systems. Due to their non-interactivity,  iterative systems may be hard to understand. The student  may trace through the algorithm, but to know how the  parts of the algorithm work together requires ‘opening  up’ the algorithm and situating it within the more general  class of interactive systems. Doing so helps the student to  understand the machinery of an algorithm in an incremen-  tal and modular way. The student interactively solves the  algorithmic problem, experimenting with various strategies  along the way. At each stage of the design, interactivity is  traded for automation