Blockly 团队在设计教育应用方面拥有多年的经验。以下是他们学到的一些知识,可能会对您设计自己的教育应用有所帮助。
尽量使用自由形式的练习,而不是填空练习
旨在教授特定概念的练习通常会提供部分解决方案,学生需要对其进行修改才能达到预期效果。为此,我们在 Blockly 中创建了一类不可修改、不可移动、不可删除的块。但是,学生们讨厌这些填空练习。他们对解决方案没有所有权意识。
设计用于教授相同概念的自由形式练习更具挑战性。一种已被证明行之有效的做法是,将学生对某个练习的解题方法作为下一个练习的起点。
建议:请勿为用户编写代码。
使用永久性指令
Blockly Games 专为自学而设计,无需教师或课程计划。为此,第一个版本的 Blockly Games 在每关都提供了说明。大多数学生都不会阅读这些内容。我们将其缩减为一句话,增大了字体大小,并用黄色气泡突出显示了它们。大多数学生都不会阅读这些内容。我们创建了包含说明的模态弹出式窗口。大多数学生会本能地关闭弹出式窗口,而不会阅读其中的内容,然后就迷失了。
最后,我们创建了无法关闭的弹出式窗口。它们会被编程为监控学生的操作,并且仅在学生执行所需操作后关闭。这些感知上下文的弹出式窗口很难编程,但非常有效。另外,摄像头还必须位于视野范围内,且不会干扰工作区。
建议:说明应简短且持久,但不应令人反感。
在帮助中使用实时代码块图片
块的文档应包含其所引用的块的图片。截取屏幕截图非常简单。但是,如果有 50 张这样的图片,并且应用已翻译成 50 种语言,那么您突然需要维护 2,500 张静态图片。然后,配色方案发生变化,又需要更新 2,500 张图片。
为了摆脱这种维护噩梦,Blockly Games 将所有屏幕截图替换成了在只读模式下运行的 Blockly 实例。结果看起来与照片完全一样,但保证是最新的。只读模式让国际化成为可能。
建议:如果您支持多种语言,请使用只读模式。
为学生制定退出策略
基于块的编程通常是编程的起点。在教授计算机编程的过程中,它就像一种诱导学生上瘾的“入门毒品”,在学生上瘾后,再引导他们学习更难的内容。关于学生应使用基于块的编程方法多长时间,人们争论不休,但如果您的目标是教授编程,则这种方法应该是暂时性的。
因此,用于教授编程的基于块的编程环境必须具有适合学生的退出路径。Blockly Games 有四种策略:
- 代码块中的所有文本(例如“if”“while”)均采用小写形式,以匹配基于文本的编程语言。
- 系统会在每个等级后面显示学生代码的 JavaScript 版本,以便学生熟悉该语言。
- 在倒数第二个游戏中,代码块文本会替换为实际的 JavaScript(如右侧所示)。此时,学生正在使用 JavaScript 编程。
- 在最终游戏中,块编辑器会替换为文本编辑器。
用于教授编程的基于块的编程环境需要制定具体的学生毕业计划。制定稳健的退出策略也有助于安抚那些认为基于块的编程不是“真正的编程”的人。
建议:考虑用户的最终目标并进行适当的设计。