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). The focus of this paper is on the first of these classes, algorithms, but using ideas from the second, viz., transition 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 incremental 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. We illustrate our approach by considering a classic example from sorting: Bubblesort. We first examine a solution based on fixed point iteration. Then we approach Bubblesort as a sequence of five interactive transition systems that culminate in the Bubblesort algorithm. This exercise reveals to the student design decisions and strategies that help understand why Bubblesort works. The successive refinement also pays off in terms of highly modular code whose primitives are elements of the transition system models.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.