# 教育应用
Blockly 团队在设计教育应用方面有多年经验。以下是他们学到的一些经验,可能有助于您设计自己的教育应用。
# 偏好自由形式而非填空练习
旨在教授特定概念的练习通常会提供部分解决方案,学生需要修改这些方案以达到预期效果。Blockly 创建了一类不可编辑、不可移动、不可删除的块来支持这一点。然而,学生们讨厌这些填空练习。他们对解决方案没有任何所有权感。
设计能教授相同概念的自由形式练习更具挑战性。一个已被证明成功的技巧是将学生在一个练习中的解决方案用作下一个练习的起点。
建议:不要为用户编写代码。
# 使用持久性说明
Blockly Games (opens new window) 专门设计为自学型的,不需要教师或课程计划。为了实现这一点,第一版的 Blockly Games 在每个关卡都有说明。大多数学生不会阅读它们。我们将说明减少到一句话,增加字体大小,并在黄色气泡中突出显示。大多数学生仍然不会阅读它们。我们创建了带有说明的模态弹窗。大多数学生本能地关闭弹窗而不阅读说明,然后就迷失了方向。
最后,我们创建了无法关闭的弹窗。它们被编程为监控学生的操作,只有当学生执行了所需操作时才会自动关闭。这些上下文感知的弹窗虽然编程起来具有挑战性,但非常有效。同样重要的是,它们要在视野范围内,但不干扰工作区。
建议:说明应该简短且持久,但不要令人讨厌。
# 在帮助中使用实时块图像
块的文档应该包含它所引用的块的图像。截图很容易。但如果有 50 个这样的图像,并且应用程序被翻译成 50 种语言,突然就需要维护 2,500 个静态图像。然后当配色方案改变时,2,500 个图像需要再次更新。
为了摆脱这个维护噩梦,Blockly Games 用只读模式运行的 Blockly 实例替换了所有截图。结果看起来与图片完全相同,但保证是最新的。只读模式使国际化成为可能。
建议:如果您支持多种语言,请使用只读模式。
# 为学生提供退出策略
基于块的编程通常是编程的起点。在教授计算机编程的背景下,它是一种入门药物,让学生上瘾,然后再转向更难的内容。学生应该使用基于块的编程多长时间这个问题存在很大争议,但如果您的目标是教授编程,这应该是暂时的。
鉴于此,用于教授编程的基于块的编程环境必须有适合其学生的出口。Blockly Games 有四种策略:
- 块上的所有文本(例如 "if"、"while")都是小写的,以匹配基于文本的编程语言。
- 每个关卡后都会显示学生代码的 JavaScript 版本,以增加熟悉度。
- 在倒数第二个游戏中,块文本被替换为实际的 JavaScript(如右图所示)。此时学生正在用 JavaScript 编程。
- 在最后一个游戏中,块编辑器被替换为文本编辑器。
用于教授编程的基于块的编程环境需要有一个让学生毕业的具体计划。一个可靠的退出策略也有助于安抚那些认为基于块的编程不是"真正编程"的人。
建议:考虑用户的最终目标并相应地进行设计。