Turing:算法和 Python 开发的另一种方法





5.00/5 (1投票)
一个具有调试功能的跨平台算法/伪代码和 Python 开发环境
链接
引言
Turing 是一个非常基础但功能强大的 Python IDE,可以快速轻松地开发算法和 Python 脚本。
背景
我住在法国。在这里,编程已经在高中阶段的学校教授了好几年;虽然它不是人们通常学习的那种编程。老师不教代码,而是只做一些可以归类为“算法”的东西。基本上,我们学习理论、程序流程如何工作、变量是什么、递归是什么等等。在这里,你只有在大学里才开始做“真正”的代码。
因为我们不写“真正”的代码,而是做这种奇怪的伪代码式的算法,所以我们需要一个软件来做这件事,因为理论不能移山。这就是几年前,一位法国数学老师编写了 Algobox 软件(一个巧妙的组合词)的原因。因为它能做每个人想做的事情,而且当时它真的是唯一可用的软件,所以它很快就成了参考,你在数学教科书中到处都能看到它的截图。
它很好。你可以做一些基本的事情,它很有趣等等,但它非常有限。直到最近,你还不能创建函数,除了一个基本的逐步执行功能之外,它不提供任何真正的调试功能,而且它不会告诉你你在程序中的位置。
去年,高层决定开始教孩子们 Python 是件好事,因为它真的很厉害。标准的伪代码仍将被教授,但现在孩子们也会学习 Python。
问题。
几乎所有可用的 Python IDE 都是以程序员会使用它们为前提而制作的。我们说的是 14 岁的孩子,他们使用电脑的主要用途是 YouTube。这些 IDE 的 GUI 是为知道自己在做什么的人设计的,这显然不是这里的情况。
这就是 Turing 的想法的由来。创建一个新的 IDE,支持伪代码和 Python,即使是初学者也可以使用。
好吧,这很好,但是它看起来是什么样子的?
正如亚里士多德所说,“一张截图胜过千言万语。”
幕后
该程序可以在两种模式下工作:算法/伪代码和 Python。两种模式都可以使用 Turing 的函数库、I/O 函数和绘图窗口。
我们最初计划使用 Python 来表示伪代码表达式,但我们得出的结论是,对于初学者来说,编写一种新的、更简单的语法会更容易,因此我们编写了自己的内部表达式引擎,具有自己的递归解析器和函数库。它的语法与 Python 非常相似,但有一些细微的差异
^
运算符用于求幂(XOR
运算符用于异或运算)。- 复数使用传统的数学语法(
i
代替j
)。 - 只有一种数字类型(而不是单独的
int
、float
和complex
)。 - 乘积可以在不显式使用
*
运算符的情况下完成(例如:2pi
、3x^2
)。
可以使用 {x, y}(x ^ 2 + y * 3}
表示法使用 Lambda 函数,并且像在 Python 中一样是一等公民。
调试
在伪代码模式下,可以使用断点并以逐步执行模式运行程序。
在 Python 模式下,逐步执行尚不可用,只能使用断点。
有两个按钮可以运行伪代码程序:运行和调试。第一个按钮将行转换为 Python 代码并透明地作为 Python 运行,以获得更好的性能。第二个按钮逐行透明地运行它。通常,可以使用“运行”按钮,除非你需要使用逐步执行模式调试程序。
Components
主 GUI 使用 PyQt 5 框架和用于代码编辑器的 Pyqode 小部件。
数学库使用 NumPy
用于一些函数。
绘图窗口使用 Matplotlib
。
历史
- 2018 年 4 月 18 日:首次发布