陈静

[摘           要]  在社会对复合型人才需求的背景下,如何帮助高职学生在未来的职业生涯以及人生发展中积蓄所需的信息素养,即具有分析问题、解决问题的能力,终身学习的能力与创新意识。介绍了以程序设计流程为中心,结合Scratch编程语言来培养学生编程思维与创新意识,并以具体案例“打地鼠”为例进行阐述说明,最后总结与展望下一步探索Scratch与硬件结合或使用Arduino进行人工智能应用。

[关    键   词]  Scratch;编程思维;创新;程序设计流程

[中图分类号]  G715                    [文献标志码]  A                      [文章编号]  2096-0603(2020)30-0230-02

一、编程思维与创新意识的重要性

高素质和高技能是高职教育培养目标的核心,是高职学生就业以及职业生涯发展的重要前提。高素质和高技能更高层次的要求是创新意识和思维能力的培养。创新意识和思维能力是培养高信息素养复合型高等技术人才的需要,也是学生终身教育和可持续发展的有力保障[1]。

二、为何选用Scratch编程语言

(一)Scratch在国内外的发展现状

Scratch于2007年首度公开发行跨平台(Windows,Mac, Linux)单机版程序;在2012年又推出了Scratch2.0版本,在2019年发布了Scratch3.0版本。美国在2009年创建了ScratchEd,欧洲在2012年建立本土Scratch技术社区,2011—2012年,在国内大陆地区掀起一股Scratch学习、研究的热潮。目前,全球已经有超过150个不同国家或地区的人在使用Scratch,Scratch提供了40多种不同语言的版本。

(二)Scratch的优势

Scratch与其他编程语言相比,优势在于以下四点。

1.隐藏细节,简单易上手

以积木式指令代替枯燥的代码进行编程,避免学习一系列复杂的语法规则,将注意力集中在创作中,减少学习困难,提高学习积极性。

2.所见即所得

编写完程序后可在“舞台”看到程序执行效果,刺激学生感官,给予视觉效果并方便学生验证与调试。

3.指令丰富,功能强大

具有八大类别指令、自定义积木指令以及扩展指令,这些指令涵盖常见的编程概念,如程序的三种基本结构:顺序结构、循环结构和选择结构,还有变量的定义和链表(数组)的使用,同时Scratch在程序设计时引入了事件、线程、同步的概念。这些给予了学生丰富的创作体裁,满足了学生求新、求异和求变的个性需要。

4.Scratch继承了STEAM的教育理念

将多学科融合,可以创作互动故事、动画、游戏、音乐等应用程序,让学生体验艺术与科技结合之美,培养学生的创造力。

总的来说,Scratch简易有趣,可调动学生兴趣,帮助学生轻松入门编程,培养学生信息处理与交流的能力,培养学生思考和解决问题的能力,培养学生人际交往与协作的能力[2],更有助于对其他编程语言的学习。

三、如何培养编程思维与创新意识

编程思维是一种分析问题、解决问题的思考方式,它并非技术,而是一种立足于人,用沟通与观察的方式获取人的需求或潜在需求,置身于受用者的角度思考问题,然后动手尝试解决问题,再对解决方案进行迭代优化的思维方式。

创新意识是对已获取的知识进行选择、加工,结合自己的生活经验再次想象与创作,整个创作过程是创造出新形象、提出新设想的过程。

那如何培养编程思维与创新意识?要始终以学生为中心,以程序设计流程方式引导学生通过小组合作、探究方式分析问题、解决问题,在这个过程中训练其编程思维与创新意识。

(一)程序设计过程

程序设计的基本流程是需求分析、程序或算法设计、程序编写、测试、完善与优化、维护。需求分析是指分析了解应用的功能或需要解决的问题。程序或算法设计是指依据所需功能或问题设计具体步骤。程序编写是指选择一种合适的编程语言编写程序。测试是指运行程序验证功能是否实现或问题是否解决,实际上,测试应贯穿整个程序设计过程中,完善与优化、维护是指后期对代码、功能等进行优化与维护。

总的来说就是整体统筹设计到局部分析实现,先对问题进行整体分析规划,确定其做什么,再决定其如何做,这个过程是编程理念的培养。具体实现时对问题思考解决步骤、多种方法解决同一问题,这是对学生发散性思维的训练,这是创新的关键。

(二)具体案例——打地鼠

1.需求分析

通过观察与实际操作的方式了解应用的需求。具体在课前将已编好的打地鼠.sb3文件转换为.exe可执行文件,课上发给学生,经学生实际操作和小组讨论后,由学生分析、归纳、描述出应用的功能,教师作功能的补充,最终确定游戏规则。案例要结合学生实际,“打地鼠”是一款经典的小游戏,学生几乎都接触过。

依据.exe确定“打地鼠”游戏的规则,学生也可在该游戏基础上增加新的功能,这里的.exe类似于用户的需求,学生添加的新的功能可看作是用户的潜在需求。应用的功能应依据用户的需求,这是需要和学生说明的。

游戏的规则是游戏开始后,多只地鼠随机出现在5个洞口中,在一段时间内等待锤子敲击,若被敲中,加一分。具体游戏界面如图1所示。

2.程序设计

在整体规划的基础上,接下来需要对局部内容进行分析。首先确定案例中的角色与背景有哪些,弄清楚每个角色的属性、角色与角色间或角色与背景间的相互关系。其次依据游戏规则对每个角色脚本逐个分析,由表及里、由浅入深、由易到难地分析事物和问题,从而训练学生分析问题的能力。

案例涉及的角色有地鼠(敲击前与敲击后造型)、锤子(锤子起与锤子落造型)、带有5个洞的背景图片。

对于本案例而言,首先通过提出问题、小组讨论的方式引导学生解决程序中的难点,然后通过思维导图帮助学生理清本案例程序设计的思路。

案例的难点在于多只地鼠随机出现在5个洞口中,那多个地鼠如何产生?多个地鼠如何准确出现在图中的5个洞口中?具体出现在5个洞口哪个洞口?如何判断地鼠被敲击,加1分?提出问题由小组讨论得出结果,多个地鼠通过克隆实现,定义两个列表xpos、ypos,准确记录5个洞的位置,由于xpos与ypos是一一对应的,所以定义变量pos(随机数1~5)代表列表中5组中的一组,即确定克隆出的地鼠具体出现在哪个洞中。当锤子碰到地鼠并且敲击后,地鼠变成被敲击造型,加1分(定义变量score),地鼠消失,即克隆体消失。

对于锤子角色,其功能相对简单,鼠标控制锤子移动,鼠标单击单标锤子落下,否则锤子抬起。

本程序设计的思维导图,如图2所示。

3.程序编写

通过程序设计环节,解决了案例中的难点,理清了程序的思路,接下来,让学生尝试编写程序,教师指导并依据学生做的情况决定是否进一步演示说明。这不仅能够帮助学生发现自己程序中的错误和潜在问题,提高学生的编程能力,而且能够帮助教师发现学生学习和使用过程中的易错知识点,有针对性地教学和辅导。

4.程序测试与优化

教师可以向学生介绍软件测试的常用方法:首先不考虑程序内部的逻辑结构,依据游戏规则由小组成员共同测试来检测每个功能是否都能正常使用;其次优化程序代码与结构。

5.验收与维护

采用分享方式由其他小组成员测试,模拟用户体验,用户提出问题,对程序作优化处理。

在需求分析、程序设计、编程、测试、完善优化程序的程序设计过程中培养编程思维与创新意识。在程序设计过程中小组合作与小组间交流的方式,一方面为学生提供了轻松、自主的学习环境,有利于创新思维的形成;另一方面小组内的相互探讨与小组间的分享交流,会产生很多想法,利于更为全面、深入地思考,也有利于创新思维的形成。

四、总结与展望

本文采用Scratch编程语言结合项目(案例)驱动方式,在项目实现的过程中培养学生编程思维、逻辑推理以及创新意识。

对于使用Scratch培养学生编程思维与创新意识,需要注意的是案例与素材的选择要符合实际,贴合学生兴趣。除此之外,Scratch可以与硬件结合,或者在Scratch基础上学习Arduino,让学生在了解人工智能应用基础上深入学习人工智能相关课程。如用Scratch模板制作图片分拣机,完成图像识别的过程[3]、Scratch for Arduino“智能小车”制作[4]等,这些都是后期需要进一步深入探索的内容。

参考文献:

[1]王节.高职学生计算思维现状及发展对策的研究与实践[D].重庆:重庆师范大学,2015.

[2]刘晓静,陈香丽,黄桥燕.Scratch及其在课堂教学中的应用优势[J].软件导刊,2015(4):156-158.

[3]钱晨露.基于Scratch3.0的图像识别程序制作[J].北极光,2019(11).

[4]鲍通.基于任务驱动的创客课程教学设计研究:以Scratch for Arduino“智能小车”制作为例[J].中国信息技术教育,2018(1).

◎编辑 原琳娜