关键字:Scratch ; 计算思维 ;核心素养
一、Scratch简介
Scratch是美国麻省理工媒体实验室面向儿童开发的一款程序设计软件,其创作开发的目是,把自己创作的交互故事、游戏、音乐和艺术与他人分享 。它的特点是通过可视化、积木式的程序搭建,激发学生的学习兴趣和学习斗志。
对于学生而言,Scratch并不仅是了学习编程语言的平台,它本身也是一种想法的表达工具,更是思维的创作工具。在学习的整个过程中呈现一条不断上升的螺旋线,学生在迭代设计、重复纠错的过程中,会自然产生无数的相关问题,激发学生自主运用多种学科知识去解决问题,问题不断出现,不断地解决,在这样的交互式试验过程,学生不仅能提高综合能力,而且能获得巨大的成就感。
在中小学的的课程学习过程中, Scratch教学与 STEAM教育学习相结合,孩子们在创造和分享 Scratch作品时,他们不仅学习了 STEAM课程的相关知识,而且学会了在 STEAM领域取得成功必须具备的技能,例如:创造性思考、系统地推理、分工合作探究等等。
二、核心素养、计算思维相关简介
信息技术学科核心素养是在学生发展核心素养总体要求下,综合考察人与信息技术关系后确定的,包括“信息意识”、“计算思维”、“数字化学习与创新”及“信息社会责任”等四个核心内容。
计算思维是指个体运用计算机科学领域的思想方法,在形成问题解决方案的过程中产生的一系列思维活动。
许多学者和组织对计算思维的概念进行了深入的研究,国内影响较深的就是周以真教授,他在2006年发表的《计算思维》这篇文章中,给计算思维做了这样的一个定义:“运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为就是计算思维,它的本质是抽象(abstraction)和自动化(automation)。同时,它也是所有人都必须具备一种本质的的思维能力,类似于是非判断、文字的读写和独立算术运算,都是人们应该具备的能力。 ”另外,2011 年联合计算机科学教师协会(CSTA)与国际教育技术协会(ISTS)共同给出了计算思维的操作性定义:计算思维是一个问题解决的过程,该过程包括制定问题、分析数据、抽象、设计算法、选择最优方案、推广等六要素。自信、坚持、宽容、解决开放问题的能力和与他人交流合作的能力是支持问题解决需要一组能力和态度。 [2]
笔者以《打地鼠》一课为例,与老师们一起探讨,如何培养和提高学生的计算思维。本节课是 Scratch的综合应用课,采取社团课程模式,学生在此前已经学会并熟练应用 Scratch中常见的模块指令,利用充裕的时间,让学生以小组的模式,在合作探究的基础上,不断优化,选择最优的设计,分享自己的创意,进一步提高学生综合处理信息的能力。
(一)、思考对象,设计构思结构模型
思维是内在的心理认知过程,在此过程中,学生在心理上将事件的过程思考过后, 抽象事件内容,以结构图的形式呈现,不断地推理和判断事件的性质,从而建构新的知识。 学习Scratch 的过程中,学生就是通过对事件的思考,发展学生的思维,其中重要的一个就是设计思维,它是指设计者解决具体问题的方法。一般情况下,这些问题是比较复杂或者模糊的问题。
在课程学习中,计算思维逐步成为的一种重要思考方式,其主要表现为模仿计算机解决问题的方法,将问题形式化,抽象问题的特征,然后建立结构模型,对数据进行分析和构建,生成可以利用数字化工具自动解决问题的方案。但是有时候,学生并不能明确的、完整表现自己的思维过程,都是片段的、零碎的环节,这个时候教师可以采用“故事流程图”,把涉及的对象、动作一一罗列出来,学生开始时,只是要求写出故事,慢慢地将行为问题具体化,形象化会后,再通过计算思维,利用迭代的方式对自己的作品进行不断测试、优化,最终把解决问题的方法优化系统化,这样,在以后遇到类似的问题时,也能找到合适的解决问题的方法。
计算思维的方法分有数学方法和工程方法,数学方法有抽象、递归、证明、形式化表达等,系统方法、分治法、面向过程和面向对象方法等属于工程方法。教师通过 Scratch学习平台,将这两类思维方式方法渗透到每一个具体的教学内容中,把有关计算思维的相关思维特征与方法和 Scratch教学相结合,在帮助学生的理解事件的同时,又能培养了学生的创作思维。
“打地鼠”游戏看起来比较简单,但是要完整实现打地鼠的功能是比较复杂的,观察发现,它是一个结构化较复杂的游戏项目,在课堂讲解时,学生一时感觉无从思考,不知道如何编写,这就需要老师的进一步引导,把对象、事件一个一个抽离出游戏。首先,所有地鼠冒出的时间不定,其次,当锤子碰到地鼠并单击鼠标时,锤子发生变化,造成地鼠被打的样子,同时记分器自动加一分,时间还在不停往前走,其他地鼠依然不受影响,不断冒出。在这一程序中,出现了几个同时并行的程序,如何从纷繁复杂的任务中,抽象出每个对象,合理搭建模块积木呢?
学生在老师的帮助下,利用求解的顺序步骤解决地鼠的出现、敲击的问题,把问题抽象出“对象+触发事件”模型,分析打地鼠游戏中涉及了哪些对象,它们的初识状态是什么,哪些对象是静态的,哪些对象是移动,比如,是什么事件激发了锤子造型的变换,调试运行后,是否达到最初预期的目的,看起来是否敲击的正常,没有达到效果,如何进一步优化?学生引导学会从具体的事例中,自主独立各个对象事件的特点,抽象出计算机能够解决的方法,从而达到解决问题的目的。
教学片段1:
师: 游戏中有哪些对象?
生:一把锤子、很多地鼠、计数器、计时器。
师: 它们的初始状态是什么?
生:每次游戏开始时,计数器初始化为零,计时器初始化为零。 舞台背景选择与“地鼠”类似的画面; 地鼠初始位置为地鼠洞,锤子保持正常造型。
师:分析完后,有哪些对象处于初始状态?并思考将要发生哪些事件?
生:事件1,当按下小绿旗帜的时候,地鼠会不间断的陆续冒出地面;事件2,
当锤子碰到地鼠并按下鼠标的时候,锤子发生造型变化,并且计数器自动增加1;事件3,如果计时达到30秒,则游戏结束,计数器显示成功打到地鼠的次数。 在 Scratch教学中,教师往往需要将分析的过程、思考的过程及优化的过程以故事流程图的形式呈现出来,因为,学生的思维往往不全面,会遗漏一些事件情节。教师在课堂上要积极引导,使学生在获得知识的同时,不仅训练了思维,也让学生获得了触类旁通、举一反三的能力以及普适的技能。
根据学生的思考过程,把故事的情节用流程图表达出来,并且作为思考的依据,在调试时,不断发现问题, 有时学生根据自己一开始想法,但实际操作时,就会发现自己的设计,并不符合逻辑,在此过程中,学生不断优化自己的设计方案,从本质上和整体上来寻找解决问题的思路,在问题的解决过程中获得成功的喜悦。
(二)、思维抽象,仿真处理事件过程
计算思维的本质包括抽象和符号化,在 Scratch作品创作的过程中,无论是动画故事的编制还是游戏的开发,都需要把具体的问题抽象成相对应的符号对象,并通过指令模块把相应的问题“计算”出来。Jeannette M.Wing教授认为这种能将一个问题清晰、抽象地描述出来,并将问题的解决方案表示为一个信息处理流程的思维过程就是计算思维的训练过程。通过约简、转化、嵌入、和仿真等方法,把一个看似困难的问题,阐释成另一个人们知道并能够解决的问题。计算机模拟打地鼠这一环节,通过锤子造型的变化,让学生利用仿真、转换的方式,把敲击地鼠这一复杂的程序转化成锤子的变化过程,把这个难点转化成学生能够自主解决的过程。
教学片段2:
师:怎样来实现地鼠被打的情景,触发什么事件?地鼠被锤子碰到后,还需要按下鼠标,那该怎么做?
生:选择并列模块,两个事件同时相应,才可以触发锤子的造型切换。
师: 如何实现锤子打到地鼠的情境。现实中看到的场景是锤子变换造型,地鼠继续不断冒出… …。
生:在使用锤子时,如果“碰到”地鼠的时候,锤子迅速切换造型的方式,模拟地鼠被打的场景。
师:同学们自己动脑筋,已经学会使用“仿真”这种形式来解决相类似的问题,地鼠并不是被打下去的,而是通过锤子的变化,模拟已经敲过的事件。这就是计算思维啊!
在教师的引导下,学生对实现锤子的定位跟随,进行多次的更改,发现最适合锤子的程序代码,抽象出通过锤子造型的变化,碰到地鼠变成另一造型的场景,仿真为地鼠碰到锤子时,地鼠被打入地里的情景,通过 Scratch功能模块,实现锤子造型的切换,计数变量增加1。学生在以后学习触发事件的处理过程中,会自主使用简化、仿真等计算思维的方法,把现实问题转化成 Scratch的功能块可以处理的问题,从而达到利用计算机解决问题的目的。
(三)、迭代调试,优化程序
创作Scratch 作品的过程正是思维经历的抽象与建模、反复与递增、测试与调试、设计与再创作的过程。因此,Scratch平台对学生的系统思维的培养也是一个很好的工具。
学生在Scratch中编写脚本进行程序设计时,系统思维、纠错优化是始终伴随其中的。在不断进行迭代设计、更改方案的过程中,学生会去寻找到底哪里出现了问题,用什么背景,什么时候切换到另一个背景? 怎么切换?哪种方案更适合情景,纠错的过程就是通过调试和测试,不断去实现自己的目标,是培养学生计算思维的重要概念之一。
教学片段3:
师:在同学们的敲打中,老师发现锤子跟随的画面非常僵硬,怎样更好地实现锤子的跟随?
生:在锤子的程序中,如果使用坐标也许就能更好的定位。
师: 你们大家发现了吗?有些同学的很多地鼠都是一起整齐的冒出,没有时间差,但是地鼠不可能从同一个时间出发,不符合实际情况,我们应该怎么办?有没有解决的办法?
生: 在地鼠的代码中,把随机产生的时间数字任意改动。
师:一只地鼠可以任意冒出地鼠洞了,实际情况中,应该有好多地鼠,那么怎么修改?还是需要一个一个的编写?
生:所有地鼠的外观相同(大小、形状、颜色),功能也相同(不断冒出,时间不能限定)的时候,我采用复制的方法。
师:对,我们可以通过复制原角色,功能相同就意味着脚本相同,利用代码复制可以简化编程工作。有时,也可以利用Scratch自带的图片编辑工具,制作不同的地鼠。
在《打地鼠》一课中,当学生完成了一只地鼠冒出的任务,有些同学思考,是不是要重复?当同类问题出现在其他程序设计时,算法思维就可以帮助思考,不是每一个事件都需要从头思考,而是采用每次都行之有效的解决方案,帮助看到问题的核心——每只地鼠的触发事件相同,所以在 Scratch中通过复制角色,就可以制作许多“功能”相同的地鼠了。有些同学设计后,这样的设计会让每只地鼠的“初始状态”相同,同时出现,没有时间差,肯定有错,为了更加实现更加逼真的效果,引导学生用设定随机数的方式修改地鼠们出现的时间,在不断地调试纠错的过程中,既锻炼了学生的思维,又能让学生体验成功的快乐。
三、评价反思
本节课是对 Scratch游戏教学的一次有益尝试和探讨,通过具体实施以及对这一实施过程的研究和观察,发现有很多值得今后开展该系列课程的宝贵经验,也有一些需要改进的地方。例如,为了更好地培养学生的创意计算思维,Scratch 教学教师如何教?学生如何学?教师的脚手架要搭建到什么程度?学生的设计思维、计算思维如何更好的激发?可视化工具如何用?如何更好地评价?
四、总结
本课让学生自主探究、研究了解打地鼠游戏的过程,利用简化、仿真等抽象手段实现地鼠的触发事件,通过不断地调试、测验来优化程序,达到预期的效果。在Scratch课堂教学中融入了利用信息技术解决问题的学科方法与思维方式,发展学生利用信息技术解决问题的能力,将学科核心素养素渗透其中,培养学生的创新意识和创新能力。
【参考文献】
[1] 王旭卿.从计算思维到计算参与:美国中小学程序设计教学的社会化转向与启示[J].中国电化教育.2014.03
[2].王旭卿.面向三维目标的国外中小学计算思维培养与评价研究(J). 电化教育研究.2014.07
论文作者:杨雯
论文发表刊物:《科学与技术》2019年14期
论文发表时间:2019/12/5
标签:地鼠论文; 思维论文; 锤子论文; 学生论文; 事件论文; 过程论文; 抽象论文; 《科学与技术》2019年14期论文;