算法动力学:算法系统

Venkatesh Choppella, V. Kasturi, Mrityunjay Kumar
{"title":"算法动力学:算法系统","authors":"Venkatesh Choppella, V. Kasturi, Mrityunjay Kumar","doi":"10.1109/FIE49875.2021.9637441","DOIUrl":null,"url":null,"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.","PeriodicalId":408497,"journal":{"name":"2021 IEEE Frontiers in Education Conference (FIE)","volume":"24 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-10-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":"{\"title\":\"Algodynamics: Algorithms as systems\",\"authors\":\"Venkatesh Choppella, V. Kasturi, Mrityunjay Kumar\",\"doi\":\"10.1109/FIE49875.2021.9637441\",\"DOIUrl\":null,\"url\":null,\"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.\",\"PeriodicalId\":408497,\"journal\":{\"name\":\"2021 IEEE Frontiers in Education Conference (FIE)\",\"volume\":\"24 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2021-10-13\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"3\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2021 IEEE Frontiers in Education Conference (FIE)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/FIE49875.2021.9637441\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2021 IEEE Frontiers in Education Conference (FIE)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/FIE49875.2021.9637441","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3

摘要

这篇创新实践类的论文全文首先提出了一个问题:“算法可以被认为是动态系统吗?”我们对这个思想的探索-算法动力学-是由实现计算机和工程教育之间融合的愿景指导的。工程科学共享源于动力系统的共同概念词汇:状态空间、流动、动作、不变量、不动点、收敛等。算法动力学的目标是从头开始构建一个框架,用于使用动力学概念来理解和教授算法。这使得我们可以将计算和算法作为一门工程科学来教授。工程师使用模型。在算法动力学中,模型使用转换系统而不是伪代码或程序来表示。这允许清晰地表示两类重要的计算:作为“离散流”(迭代系统)的顺序算法和作为“动作流”(转换系统)的交互式应用程序。本文的重点是第一类,算法,但使用的思想从第二类,即,转换系统。在这个框架中,算法以收敛迭代系统的形式出现。由于它们的非交互性,迭代系统可能很难理解。学生可以追踪算法,但要了解算法的各个部分是如何协同工作的,就需要“开放”算法,并将其置于更一般的交互系统中。这样做有助于学生以增量和模块化的方式理解算法的机制。学生以互动的方式解决算法问题,在此过程中尝试各种策略。在设计的每个阶段,互动性都被自动化所取代。我们通过考虑排序中的一个经典示例来说明我们的方法:Bubblesort。我们首先研究一种基于不动点迭代的解。然后,我们将Bubblesort作为五个交互转换系统的序列来处理,这些系统在Bubblesort算法中达到顶峰。这个练习向学生揭示了设计决策和策略,有助于理解为什么Bubblesort有效。从高度模块化的代码方面来看,连续的细化也得到了回报,这些代码的原语是转换系统模型的元素。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Algodynamics: Algorithms as systems
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.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信