acm-header.
登入

ACM的通信

博客@cacm.

如何脚本错过标记


我赢得了一个名为麻省理工学院的体面大学的计算机科学学位。当我尝试使用我的编程技能和知识时,我不断沮丧,以使我的日常生活更轻松。我的生活充满了脚本语言,这承诺轻松自动化,但在痛苦的猜测和调试后让我失望。

最近,我参加了一个会议研讨会在20世纪80年代的麻省理工学院的精彩创新,以学习者为中心的编程语言,称为“拳击手”。拳击手旨在取代以学习者为中心的编程语言标志,并设计独特易懂可读性作为最高目标。

在研讨会期间,演示者审查了拳击手的历史和遗产。提出了制作编程语言的原则来突出显示。例如,拳击手使用嵌套,屏幕框的隐喻来组织数据,代码,图形等。这如下图所示的图形数据框中包含两个“Sprite”对象,每个具有状态变量。此外,第一个Sprite包含自定义代码,以将其形状从默认形状更改为正方形。

原则天真的现实主义例如,出现在变量如何作为包含数据的命名框中呈现的变量。如果用户直接编辑框中的文本,则变量的值更改。例如,将X-POS更改为不同的数字在图形演示框中可见的Sprep。此外,如果用户执行更改变量值的代码行,则框中显示的值更改。执行“前进30”以向前移动30像素的Sprint的用户可以看到这会影响XPOS和YPOS变量。因此,学习者可以处理命名框,就像它们真的是解释系统的变量一样。

原则空间隐喻在框中使用框中的框来解释难以掌握的编程概念,如变量范围。在同一屏幕上一次可以有两个变量在同一屏幕上没有问题,例如两个不同精灵中的“XPOS”的存在。在另一个例子中,一个“x”可以在最外侧框内,因此用作“环境”变量;另一个“x”可以在可执行框中,其“x”将是“本地”变量。In my experience, it is pretty easy to explain to a learner when each "x" is relevant by the simple rule "look for the variable first in the box you are in, and if you can’t find it there, look in the box that contains the box you are in." Spatial metaphor also organizes complex data and code. Boxes can be fully open or closed, and closing a box can hide the details within the box. Graphics data boxes in Boxer can be hidden when the user no longer wants to see how the code works, and instead want to focus on making an animation on the screen.

虽然听了精彩的演示,但它变得清晰,最终用户脚本语言出错。他们都接受了相同的raison d'detre.:人类友好的语法。例如,在我的麦克斯电脑上,Apple为我提供了至少四种脚本语言:AppleScript,Automator,快捷方式和shell。所有这些都有简化的语法,但是所有都很难以理解和调试 - 人类友好的代码在眼睛上很容易,但写作代码需要大量的猜测,因为隐藏的编程概念没有被识别到学习者中的学习者方式。例如,AppleScript变量通常是键入的,并且通常必须被强制到不同类型以进行代码工作,但AppleScript没有支持,以帮助我理解类型和胁迫;实际上,AppleScript通常只揭示变量的价值,而不是它们的类型,让我猜测可能需要什么胁迫。我还在家庭自动化系统中经历了目的地构建的脚本语言,例如自动化我家的灯光,音乐和视频的系统。这对我来说是最简单的任务(例如,简单自动化的演示)工作,但一旦我想尝试在我的生活中实际有用的东西,就会崩溃。

现在需要的是什么用户作为学习者构建对其计算世界的理解当他们与他们的计算环境互动并尝试自动化它。例如,我家中的设备已经空间地组织成一个包含命名变量的区域,房间和设备。Howewver,家庭自动化脚本工具都不是通过空间隐喻来利用这一点;相反,我必须在面向尴尬的列表的用户界面中管理公寓列表。平面列表也用于if-then-then的规则,这使得幻想复杂以编写有用的代码。为什么不允许用户使用空间遏制来组织家庭区域和房间内的规则,他们会采取行动?为什么不支持我的学习过程,通过支持天真的现实主义 - 例如,让我试试在我的房间和设备的视觉模拟上进行例程?

我们可以做得更好。让我们停止强调简化的语法作为最终用户编程的最重要的事情,并使用原理以获取可理解性和可读性,例如拳击手中的原则。

杰里米罗斯谢尔是数字承诺学习科学研究的执行董事,也是学习科学的国际社会研究员。


没有发现任何条目

登入完全访问
“ 忘记密码? »创建ACM Web帐户
Baidu
map