奥巴马倡议及对 STEM 教育关注下的计算机教学标准与方案探索
奥巴马提出的“从小培养计算机技能”的提议,以及公众对科学、技术、工程和数学教育日益增强的关注,共同揭示了一个事实:为了有效引导孩子们掌握计算机知识,我们必须制定一套规范,并探索有效的教学方法。在工业领域,大家普遍认同,若要使孩子们掌握知识,采用图形化编程语言是上策。如此一来,即便年纪尚幼的孩子们也能轻松应对,无需在语法上耗费精力,从而能够尽情发挥创意,同时自如地操作自己编写的软件。

Logo 语言的更新换代
在过去的半个世纪中,设计师们基于 Seymour Papert 发明的 Logo 语言,开发了一系列编程工具。这些工具在界面设计上各有特色,但共同的目标是激发孩子们对编程的思考。与此同时,得益于 MIT 开发的 Scratch 的广泛流行,模块化编程方式已经成为了教学领域的规范。CSTA为我国中小学生制定的计算机课程教学标准中,明确将“基于模块的可视化编程语言构建与测试能力”纳入评估小学五年级学生编程水平的标准之中。
科普:少儿编程语言的演变历程展示图
趋向幼龄化引入机器人技术
亲眼目睹亲手编写的代码化为实际成果,实在是一种令人惊叹的经历。在21世纪初,乐高与麻省理工学院携手开展了一项合作项目,该项目的目标是将模块化编程技术引入现实生活。学生们得以在电脑上编写程序,并将这些程序下载到他们自行组装的机器人中。最初研发的RIS(机器人发明系统)与Scratch软件在功能上有着诸多相似之处。
2013年问世的乐高机器人尽管结构上更为复杂,但其运作机制并未发生改变。如今,学生们得以向模块中添加输入参数,这些参数可以用来设定诸如距离、时间、输出以及其他特性等。
Martin Exner 受到Logo以及稍后出现的Scratch的启发,创造了一种易于理解的信息图,这种图被设计来展示编程工具的可视化特征。
实际上,Logo语言的众多派生产品均针对特定用途而开发:它们被用于游戏开发、构建三维环境、绘图、为机器人编写程序,甚至可以用来控制一个虚拟鱼缸。
即便这些物品能吸引众多孩童的注意,不少孩子在尝试创作语句的过程中,仍旧会感到相当困难。
超越 Logo
在现实生活中,计算机程序往往必须处理众多输入信息,并判断某个逻辑条件是否满足。以确定是否需要早起为例,若当天是周六或周日,我们便会外出游玩。若是周一,则需整理运动装备。周四则需处理垃圾清理。此外,除了周末之外,其他日子都需要上学。这幅图详细展示了运用 Scratch 解决这一问题的具体方法。
除了模块化编程模式之外,还涌现了一种全新的编程教学语言。2015年,Wonder Workshop推出了一款名为Wonder的流式编程语言。这种语言引导孩子们关注不同功能模块之间的衔接,进而构建出状态机。该状态机在任何时间点都只能存在于单一状态之中,若其正忙于执行某项任务,只需提供相应的输入信号,便能使它转换至另一状态,进而执行其他操作。
下面这幅图说明了如何使用流式的方法解决之前的问题。
Wonder不仅帮助学生们摆脱了线性编程的束缚,还使他们能够以简便的方式对现实世界中的问题构建模型。
学生群体能够更便捷地将一个难题拆解为若干个较小的单元,并借助这些单元逐一攻克繁杂的挑战。在处理复杂问题时,他们能够将关注点集中在单个子问题上。这一分解问题的方法不仅是计算机科学的核心概念,也是Wonder语言被设计出来的根本理念。
在我们日常生活中,机器人与状态机的实例屡见不鲜,且其应用范围正日益扩大。例如,自动售货机在收到足额货币后便会发放商品。自动驾驶车辆能依据周围环境中的障碍物来调整行驶策略。此外,状态机还能模拟众多问题,诸如句法分析、人工智能、通信协议、游戏角色的成长路径,乃至神经系统的工作原理。
机器人技术的广泛应用及其影响的日益加深,使得教师们也开始需要掌握模块化编程的知识。然而,随着这些教学方法被越来越多的人所采纳,我们不禁要问:这真的是我们应当追求的正确发展道路吗?抑或是,是否还有其他更为有效的途径能够助力孩子们掌握计算机知识呢?