魏宁
一提到编程,我们总会联想到某种编程语言。近年来,随着编程教育的多元化发展,一类不依赖编程语言,没有计算机屏幕支持,而是通过实物操作学习编程的方式逐渐兴起,为了区别于借助屏幕的编程方式,我们把这类编程统称为无屏幕编程。
实体设备、动手做、游戏化是无屏幕编程的主要特征,我们先来看一些典型的无屏幕编程方式:MIT早期的无屏幕编程工具“编程珠子”是一种可互相通信的发光珠子,学生在一定的通信规则下,可以通过不同的串联模式使其产生不同的发光效果,借此学习编程中的各种结构。芬兰的“人体B-Box”也是一种无屏幕编程应用,B-Box是一种音乐形式,它的生成需要利用人的唇、齿、舌等不同部位模仿不同乐器的声音,再按照一定规律进行重复和叠加,最终形成一段富有节奏感的音乐。在课堂上,学生可以通过各种循环方式创作出喜欢的音乐,同时领悟循环结构的原理。此外,像玩具、积木、拼图、卡片、绳子、蜡笔等道具以及迷宫、各种生活环境都可以成为无屏幕编程的工具。
由此可见,无屏幕编程将抽象的编程语言具象化,将学习方式游戏化,还解决了儿童过早接触计算机屏幕可能造成的视力损害问题,这些优势都让无屏幕编程被普遍认为是儿童编程的较佳选择。
在很多编程专业人士看来,无屏幕编程的价值也只能如此了,但如果我们真把无屏幕编程看作是小孩子学习编程的游戏工具,那就低估了它的价值。事实上,如果我们认同编程教育的目的并非为了学习一种编程语言,而是通过编程活动培养学生的高阶思维特别是计算思维能力,那么,无屏幕编程就绝非只对儿童有益,还可以作为学校编程教育的有益补充。
首先,在传统的编程教育中,学生必须经历编程语言的学习阶段。对于中学生来说,即便是掌握复杂的编程语法也不是一件容易的事情。2020年,华盛顿大学神经科学家Chantel S.Prat的研究团队的一项研究颠覆了我们以往的认知,他们发现,对学生而言,编程学习更像第二语言学习。例如,Python等脚本语言中的段落式层次结构,一些面向对象语言的编程过程类似写作时对事物名称、状态、行为的描述,都让计算机编程语言在结构上看起来与外语相似。而在编程时对函数的运用能力则类似语言学习中的词汇记忆、扩展能力。这解释了为何掌握一种编程语言是一件困难的事情,而无屏幕编程无疑降低了这方面的学习门槛,让编程教育可以越过“语言学习”阶段,更聚焦于对编程思维的学习。
其次,无屏幕编程具有的典型“做中学”特征,有助于培养学生的动手能力。在芬兰、瑞典,编程教育的一种重要形式就是以无屏幕形式整合到手工课程中,在我国,无屏幕编程也可以尝试與劳动教育相结合。
再次,无屏幕编程还有助于培养学生之间的协作意识和能力。由于不少的无屏幕编程都需要通过亲身参与、团队合作的方式来解决问题,完成相关任务,因此它便于教师设计生生之间的协作学习活动,培养学生的合作、沟通能力。
我相信,在未来,无屏幕编程可以作为传统编程的有益补充,在编程教育中发挥其独特的价值。作为信息技术教师,您何不尝试一下?