论文部分内容阅读
自2012年起,在国内中小学信息技术教育领域掀起了一场Scratch教学热潮,有的侧重创意(动画)设计,有的强调(儿童)趣味编程,有的还引入诸多外设(如Picoboard传感器板、Arduino单片机、Kinect体感设备等),将屏幕编程拓展至现实世界。可视化图块编程工具——Scratch像一个魔法师不仅激发了中小学生利用编程进行信息化表达的热情,也激励了广大中小学信息技术教师在追求教育理想的征途上积极探索与教学实践。在国内,经由中小学一线教师主持开发出版的Scratch教材现已达7种之多就是一个明证。虽然Scratch教学在国内风生水起、欣欣向荣,但是许多信息技术教师对Scratch的核心育人价值认识不清[1],对Scratch教学目标的认识大都还停留在激发编程兴趣、培养创新能力、掌握21世纪学习技能这些宏大而没有明确指向的教学目标上。此外,被广大教师认可并应用的“为创作而教学”Scratch教学方法[2]是一个侧重于教学生用Scratch编程的基本方法,但在创意设计与编程实现(计算)的结合方面缺乏具体策略,不少教师对如何引导学生跳出案例、创作自己的动画、游戏、故事等创意设计作品并将自己的想法转变为可以正常运行的互动媒体作品颇感困惑。针对上述问题,本文拟从创意计算的角度对Scratch教学目标和教学策略两个侧面进行理论建构,并展示和分析一个面向创意计算的Scratch教学设计案例。
● 面向创意计算的Scratch教学目标
正如上文提到,创意设计和趣味编程是Scratch教学的两大支柱,通过Scratch教学,我们不仅要培养学生的计算创意(computational creativity)能力,让学生基于个人兴趣、利用跨学科知识进行创意表达以及结合硬件外设进行互动媒体作品的设计与创作,而且还要培养学生的计算思维(computational thinking),让学生在互动媒体作品的创作中综合应用隐含编程思想的代码块,把自己的想法变成可以运行的编程作品。值得关注的是这两大支柱有机整合、相互支持,我们可以使用创意计算(creative computing)这个术语来表征当前利用Scratch编程工具促进学生计算思维发展和创意设计能力提升的教学实践,因为Scratch教学使我们有机会将注重艺术创想和动手实践的创意设计与强调缜密推理的计算思维进行有机整合。
面向创意计算的Scratch教学目标包括四个方面,即代码块与算法思维目标、软件工程与系统思维目标、创意想象与设计思维目标以及社会协商与参与思维目标。
1.代码块与算法思维
在Scratch中,程序设计概念和算法思维被映射为一组代码块,学生在熟练运用这些代码块组成脚本并实现各种编程功能的过程中不断加深对这些概念的理解,这些重要的算法思维概念包括顺序、循环、并行、事件、条件、运算符和数据(变量)[3],简要说明如下页表1所示。此外,由于Scratch开发团队从适合编程初学者的角度对Scratch编程环境和编程语言进行了独具匠心的设计(如用不同形状的代码块表示编程语句的句法),因而,学生在拼搭代码块、组合脚本的过程中可以潜移默化地掌握一套编程规范和方法。例如,在将不同形状代码块(包括堆代码块、控制代码块、启动代码块和用于侦测的参数代码块)合理拼搭在一起、组成脚本的过程中理解编程语句的语法规则、利用脚本执行的即时反馈(如变量监视器或“交谈泡泡”)作为查找程序错误的可视化线索。
2.软件工程与系统思维
用Scratch开发的创意计算作品是软件,因此软件开发的相关策略和方法也是创意计算的重要学习目标与内容,它包括递增与迭代、测试与调试、抽象与建模、模块化[4],简要说明如表2所示。具体而言,它们是学生利用Scratch编程工具开发软件、完成情境任务、解决问题的策略与方法,有助于学生形成可迁移至其他各种设计活动的应对复杂系统的系统化思维。
3.创意想象与设计思维
用Scratch做什么的想法源自学生的需求、兴趣爱好、生活经验和学习经验等,基于这些丰富多彩的生活体验,学生可以从多个不同的角度对创意计算作品进行创意想象与设计。第一,可以从作品类型上进行创想,设计动画、游戏、故事、互动艺术等各种类型的创意计算作品。第二,也可以从主题和内容上进行创想,从娱乐游戏、学科学习、科技发展、传统文化、艺术创作、人际交往等方面考虑。第三,作品中角色造型、音乐等要素也是学生进行创意设计的入口,如不直接使用现成图库中千篇一律的图片,而是利用Scratch自带的绘图工具,通过对角色的异化、变形来自己定制及创作独特的角色(如字母造型或者数字造型的角色、线条勾勒的火柴人角色等),还可以拍摄自己的照片和录制自己的解说,融入个性化的创意计算作品中。第四,可以对创作的动画、游戏或故事的情节进行丰富联想与大胆创编。设计思维简要说明如表3所示。这些创意想象与设计思维的训练使学生学会表达,并与自己所生活的社会、世界联系得更紧密。
4.社会协商与参与思维
面向创意计算的Scratch互动媒体合作创作与分享是创意计算实践的主要活动形式,美国宾夕法尼亚大学Yasmin B. Kafai教授总结了当前以计算参与为特征的中小学程序设计教学的社会化转向趋势,即创建应用程序、再创作他人作品和参与编程社区。[5]因此,我们要把编程工具使用中所关注的用来思考的对象(objects-to-think-with)转变为参与编程社区过程中可以与他人共享的对象(shared objects)[6],让学生在再利用与再创造[7]、协同创作、展示与分享的过程中体验社会协商,提升参与思维,简要说明如下页表4所示。 (3)分享——创意展示
在交流分享环节,除了展示自己的创意作品,学生还可以说说自己的作品创意和后续有待完善的创意设计。同伴则可以针对这个未必完美的作品提出进一步修改和完善的建议。在这样“坦诚交流、思维碰撞”的分享过程中,学生可以感受到分享是完善创意设计与编程实现的重要途径。
3.教学设计评析
“闯关大冒险”这节课是立足Scratch教学、面向学生创意计算能力培养的一种尝试。它以一个半开放的情境化命题入手,鼓励学生在“想象”中设计创意,在“编程”中实现创意,在“分享”中交流创意。这节课的设计有如下特点:
(1)重视激发学生的想象力、启迪学生创新思维
教师创设激发学生想象力的情境,通过闭眼想象、心理暗示等方法为学生构思关卡故事搭建平台。让学生从范例研习、模仿改编逐步走向自由创作。
(2)通过师生互动,引导学生掌握抽象建模的问题解决策略
从关卡故事的创意到搭建脚本、编程实现,其中的难点是梳理关卡故事中的角色(含背景)和角色的各种动作的对应脚本。为了突破难点,教师采用师生互动方法,在叙说关卡故事、抽象提炼故事中的主要角色、分析不同角色的动作的过程中帮助学生从口头描述转化为编程语言,从而掌握抽象建模的问题解决策略。
(3)设计关卡拼接活动促进学生协同创作
教师巧妙地应用Scratch中“导入作品”的功能,鼓励学生开展同伴协作,把不同学生创作的关卡整合为一个更复杂的创意作品。这种整合需要利用广播功能实现作品的拼接,因此加深了学生对广播的理解。
(4)提供展示、交流、分享、反思的机会
在创意展示的分享环节,学生有机会通过展示作品、分享创意设计和编程实现的得与失,进行相互学习,体验分享是创意计算作品创作的重要过程。
(5)运用可视化工具促进学生理解、内化编程思想
教师利用可视化图表工具把抽象与建模、利用广播实现作品拼接的编程思想进行清晰地描述,有助于学生理解、内化这些编程思想。
当然,“闯关大冒险”所呈现的教学模式可以根据学生的Scratch创作能力、授课时间、内容等因素进行适当微调。
①时间微调。对入门者而言,教学环节过多,无法在课堂的45分钟内完成所有活动和任务(创意想象、编程实现、关卡拼接、分享交流),可以采用连堂课,或者分解为两节课完成,前一节课侧重于想象与编程,后一节课关注协作和分享。
②情境微调。本教学案例以半开放的情境化命题入手,凸显教学重点,不至于造成学习过于发散。随着学生创作能力提升,可以逐步尝试开放情境,由学生自主拟定主题、作品类型进行创意想象,在项目规划、资料搜集、素材准备的基础上开始创建自己的故事、游戏等脚本。
③分组微调。作品创作可以加入形式多样的合作学习活动,如结对编程、创作接龙。在结对编程中,两人一组,使用一台计算机,通过讨论合作完成项目;或者多人一组,各自负责一个关卡,之后再整合成一个作品。让作品创作的过程有充分的社会互动。
④内容微调。作品内容可以与其他课程内容进行整合,如与数学学科结合,制作一个辨别质数的游戏,或与英语学科结合,制作一个具有剧情的英语动画。
● 结语
侧重于创意设计和趣味编程的Scratch教学实践将创意和计算两个概念整合在一起。面向创意计算的Scratch教学实践是关注创意设计的教育,是培育计算思维者(非专业程序员)的教育,是赋权予学生让他们成为设计师、创造家(非消费者)的教育。[13]面向创意计算的Scratch教学模式强调教师在教学中扮演的关键性角色,引导学生把自己的想法转变为编程的脚本,归纳总结实现特定功能的编程技巧,并在有意图的摆弄中学习。这样的教学过程呼应了MIT雷斯尼克教授所提出的幼儿园学习取向创造思考的五步骤螺旋:想象—创造—游戏—分享—反思—再想象……[14]提供了学生知识建构与创意培养的方法。希望透过“闯关大冒险”这节课,可以重新认识Scratch教学目标和教学策略,增加Scratch教学的深度与广度,在实践中培养学生诸如创造性思维、系统性推理和协同创作的创意计算能力。
参考文献:
[1]毛澄洁,彭晟.参与、实践、创新与分享——Scratch教学问题与流派浅析[J].中国信息技术教育,2013(10):9-11.
[2][10]吴向东,王继华.为创作而教:儿童数字文化创作课程的教学方法[J].中小学信息技术教育,2010(11):23-25.
[3][4][7]Brennan,K.,
● 面向创意计算的Scratch教学目标

正如上文提到,创意设计和趣味编程是Scratch教学的两大支柱,通过Scratch教学,我们不仅要培养学生的计算创意(computational creativity)能力,让学生基于个人兴趣、利用跨学科知识进行创意表达以及结合硬件外设进行互动媒体作品的设计与创作,而且还要培养学生的计算思维(computational thinking),让学生在互动媒体作品的创作中综合应用隐含编程思想的代码块,把自己的想法变成可以运行的编程作品。值得关注的是这两大支柱有机整合、相互支持,我们可以使用创意计算(creative computing)这个术语来表征当前利用Scratch编程工具促进学生计算思维发展和创意设计能力提升的教学实践,因为Scratch教学使我们有机会将注重艺术创想和动手实践的创意设计与强调缜密推理的计算思维进行有机整合。
面向创意计算的Scratch教学目标包括四个方面,即代码块与算法思维目标、软件工程与系统思维目标、创意想象与设计思维目标以及社会协商与参与思维目标。
1.代码块与算法思维

在Scratch中,程序设计概念和算法思维被映射为一组代码块,学生在熟练运用这些代码块组成脚本并实现各种编程功能的过程中不断加深对这些概念的理解,这些重要的算法思维概念包括顺序、循环、并行、事件、条件、运算符和数据(变量)[3],简要说明如下页表1所示。此外,由于Scratch开发团队从适合编程初学者的角度对Scratch编程环境和编程语言进行了独具匠心的设计(如用不同形状的代码块表示编程语句的句法),因而,学生在拼搭代码块、组合脚本的过程中可以潜移默化地掌握一套编程规范和方法。例如,在将不同形状代码块(包括堆代码块、控制代码块、启动代码块和用于侦测的参数代码块)合理拼搭在一起、组成脚本的过程中理解编程语句的语法规则、利用脚本执行的即时反馈(如变量监视器或“交谈泡泡”)作为查找程序错误的可视化线索。
2.软件工程与系统思维
用Scratch开发的创意计算作品是软件,因此软件开发的相关策略和方法也是创意计算的重要学习目标与内容,它包括递增与迭代、测试与调试、抽象与建模、模块化[4],简要说明如表2所示。具体而言,它们是学生利用Scratch编程工具开发软件、完成情境任务、解决问题的策略与方法,有助于学生形成可迁移至其他各种设计活动的应对复杂系统的系统化思维。
3.创意想象与设计思维
用Scratch做什么的想法源自学生的需求、兴趣爱好、生活经验和学习经验等,基于这些丰富多彩的生活体验,学生可以从多个不同的角度对创意计算作品进行创意想象与设计。第一,可以从作品类型上进行创想,设计动画、游戏、故事、互动艺术等各种类型的创意计算作品。第二,也可以从主题和内容上进行创想,从娱乐游戏、学科学习、科技发展、传统文化、艺术创作、人际交往等方面考虑。第三,作品中角色造型、音乐等要素也是学生进行创意设计的入口,如不直接使用现成图库中千篇一律的图片,而是利用Scratch自带的绘图工具,通过对角色的异化、变形来自己定制及创作独特的角色(如字母造型或者数字造型的角色、线条勾勒的火柴人角色等),还可以拍摄自己的照片和录制自己的解说,融入个性化的创意计算作品中。第四,可以对创作的动画、游戏或故事的情节进行丰富联想与大胆创编。设计思维简要说明如表3所示。这些创意想象与设计思维的训练使学生学会表达,并与自己所生活的社会、世界联系得更紧密。

4.社会协商与参与思维
面向创意计算的Scratch互动媒体合作创作与分享是创意计算实践的主要活动形式,美国宾夕法尼亚大学Yasmin B. Kafai教授总结了当前以计算参与为特征的中小学程序设计教学的社会化转向趋势,即创建应用程序、再创作他人作品和参与编程社区。[5]因此,我们要把编程工具使用中所关注的用来思考的对象(objects-to-think-with)转变为参与编程社区过程中可以与他人共享的对象(shared objects)[6],让学生在再利用与再创造[7]、协同创作、展示与分享的过程中体验社会协商,提升参与思维,简要说明如下页表4所示。 (3)分享——创意展示
在交流分享环节,除了展示自己的创意作品,学生还可以说说自己的作品创意和后续有待完善的创意设计。同伴则可以针对这个未必完美的作品提出进一步修改和完善的建议。在这样“坦诚交流、思维碰撞”的分享过程中,学生可以感受到分享是完善创意设计与编程实现的重要途径。
3.教学设计评析
“闯关大冒险”这节课是立足Scratch教学、面向学生创意计算能力培养的一种尝试。它以一个半开放的情境化命题入手,鼓励学生在“想象”中设计创意,在“编程”中实现创意,在“分享”中交流创意。这节课的设计有如下特点:

(1)重视激发学生的想象力、启迪学生创新思维
教师创设激发学生想象力的情境,通过闭眼想象、心理暗示等方法为学生构思关卡故事搭建平台。让学生从范例研习、模仿改编逐步走向自由创作。
(2)通过师生互动,引导学生掌握抽象建模的问题解决策略
从关卡故事的创意到搭建脚本、编程实现,其中的难点是梳理关卡故事中的角色(含背景)和角色的各种动作的对应脚本。为了突破难点,教师采用师生互动方法,在叙说关卡故事、抽象提炼故事中的主要角色、分析不同角色的动作的过程中帮助学生从口头描述转化为编程语言,从而掌握抽象建模的问题解决策略。
(3)设计关卡拼接活动促进学生协同创作
教师巧妙地应用Scratch中“导入作品”的功能,鼓励学生开展同伴协作,把不同学生创作的关卡整合为一个更复杂的创意作品。这种整合需要利用广播功能实现作品的拼接,因此加深了学生对广播的理解。
(4)提供展示、交流、分享、反思的机会
在创意展示的分享环节,学生有机会通过展示作品、分享创意设计和编程实现的得与失,进行相互学习,体验分享是创意计算作品创作的重要过程。
(5)运用可视化工具促进学生理解、内化编程思想
教师利用可视化图表工具把抽象与建模、利用广播实现作品拼接的编程思想进行清晰地描述,有助于学生理解、内化这些编程思想。
当然,“闯关大冒险”所呈现的教学模式可以根据学生的Scratch创作能力、授课时间、内容等因素进行适当微调。
①时间微调。对入门者而言,教学环节过多,无法在课堂的45分钟内完成所有活动和任务(创意想象、编程实现、关卡拼接、分享交流),可以采用连堂课,或者分解为两节课完成,前一节课侧重于想象与编程,后一节课关注协作和分享。
②情境微调。本教学案例以半开放的情境化命题入手,凸显教学重点,不至于造成学习过于发散。随着学生创作能力提升,可以逐步尝试开放情境,由学生自主拟定主题、作品类型进行创意想象,在项目规划、资料搜集、素材准备的基础上开始创建自己的故事、游戏等脚本。
③分组微调。作品创作可以加入形式多样的合作学习活动,如结对编程、创作接龙。在结对编程中,两人一组,使用一台计算机,通过讨论合作完成项目;或者多人一组,各自负责一个关卡,之后再整合成一个作品。让作品创作的过程有充分的社会互动。
④内容微调。作品内容可以与其他课程内容进行整合,如与数学学科结合,制作一个辨别质数的游戏,或与英语学科结合,制作一个具有剧情的英语动画。
● 结语
侧重于创意设计和趣味编程的Scratch教学实践将创意和计算两个概念整合在一起。面向创意计算的Scratch教学实践是关注创意设计的教育,是培育计算思维者(非专业程序员)的教育,是赋权予学生让他们成为设计师、创造家(非消费者)的教育。[13]面向创意计算的Scratch教学模式强调教师在教学中扮演的关键性角色,引导学生把自己的想法转变为编程的脚本,归纳总结实现特定功能的编程技巧,并在有意图的摆弄中学习。这样的教学过程呼应了MIT雷斯尼克教授所提出的幼儿园学习取向创造思考的五步骤螺旋:想象—创造—游戏—分享—反思—再想象……[14]提供了学生知识建构与创意培养的方法。希望透过“闯关大冒险”这节课,可以重新认识Scratch教学目标和教学策略,增加Scratch教学的深度与广度,在实践中培养学生诸如创造性思维、系统性推理和协同创作的创意计算能力。
参考文献:
[1]毛澄洁,彭晟.参与、实践、创新与分享——Scratch教学问题与流派浅析[J].中国信息技术教育,2013(10):9-11.
[2][10]吴向东,王继华.为创作而教:儿童数字文化创作课程的教学方法[J].中小学信息技术教育,2010(11):23-25.
[3][4][7]Brennan,K.,