叶世江 袁超
【摘要】近年来,随着“互联网+”在教育中的应用以及新课程改革的不断推进与深化,编程教育也走进了小学课堂。作者所在学校的Scratch编程教育是在高段开展的,因此提高小学高段编程能力就变得尤为重要。文章从编程教育开展的意义、高段学生思维特点、提高小学高段学生编程能力的有效途径三个方面探究课堂教学实践。
【关键词】Scratch;小学高段;编程教育;编程能力;策略
30年前,没有人认为编程是一项必备的能力,但是现在情况不一样了,手机、电脑成为很多人生活和学习的一部分,而这种学习方式也逐渐呈现小年龄化的趋势。越来越多的国家把计算机科学教育列为中小学甚至幼儿园课程的一部分。德国、英国、意大利、澳大利亚、韩国、芬兰、新加坡和中国香港等国家和地区都已经落实了计算机科学教育课程。从大环境来说,整个社会已经逐渐迈入人工智能时代(AI时代),我国也在2017、2018政府工作报告中连续提到“人工智能”。其实,人工智能时代是一个以计算机科学为基础的时代,其中的核心则是编程思维。所以,我国在全国范围内在小学开展了编程教育。那么编程教育有何意义呢?要依托什么样的编程软件呢?
一、编程教育的意义
(一)编程教育的意义
想要学习编程,就应该先明白什么是编程。简单理解,编程就是人和机器之间的沟通语言。机器只明白对和错,没有“大概”“也许”这样的表达方式,因此在和计算机建立沟通的同时,就是锻炼学生逻辑思维的过程。而学生在锻炼逻辑思维的过程中,思维会变得活跃、敏捷、严谨、完整,处事善变,不死板。因此,培养学生的计算机编程能力和培养阅读、写作、算数能力一样重要。
小学生具备编程能力是一件如何有用的事呢?苹果创始人史蒂夫·乔布斯早在1995年的访谈纪录片《乔布斯:遗失的访谈》(Steve Jobs: The Lost Interview)中就说过这样的话:“我觉得每个人都应该学习一门编程语言。学习编程教你如何思考。”学习编程会对孩子产生以下影响。
1.帮孩子拥有较强的思维能力。
2.提升创造力,帮助孩子跳出思维定式。
3.增强孩子自信心,提高孩子在实际生活中解决问题的能力。
4.编程能力将来会像阅读和写作一样成为孩子最基本的能力之一。
所谓“编程能力”就是“分析问题-找出路径”的解决问题的能力。因此,提高学生的编程能力其实就是提高学生解决问题的能力。
(二)Scratch软件的特点
Scratch是一款由麻省理工学院(MIT)设计开发的少儿编程工具。Scratch软件的默认造型是一只可爱的小猫,趣味性十足,能够让学生对其感兴趣,充满好奇心。Scratch编程软件类似于搭建积木的方式,它对小学生的编程水平没有特殊的要求,软件是多语言版本,根据操作系统,自动会改成中文界面。使用者可以不认识英文单词,也可以不会使用键盘。构成程序的命令和参数通过积木形状的模块来实现。用鼠标拖动模块到程序编辑栏就可以了。
二、小学高段学生思维的特点
小学高段学生的年龄在10-12岁之间,一般就读小学五、六年级。小学高段学生的思维较中低段学生具有以下特点。
第一,具有一定的分析综合能力。高段学生可以在不知晓代码的情况下,根据设计好的成品和教师适当的指导,分析出用到了几个角色、场景,对每个角色分别设置了何种命令,最后进行综合运用。
第二,具有一定的抽象概括能力。高段学生从对事物外部特点的概括(形象概括)发展到对事物本质属性的概括(抽象概括),从对简单事物的概括发展到对复杂事物的概括。大部分高段学生都具有从具体形象中找到问题的本质的能力。
第三,有较强的比较能力。高段学生可以轻松地比较出多个程序中的相同点和不同点。这个能力使得学生能够很好地理解参数和命令的区别。
第四,具有运用概念的能力。概念的形成和发展是认知发展的重要组成部分。儿童只有形成了某种概念,才能用它进行抽象、概括、判断和推理,用它来分析问题和解决问题。具有这种能力才能更好地理解Scratch软件中的8大类积木模,才能在老师适当的指导和自主练习中感悟到条件语句、循环语句、判断语句等。
第五,具有自我监控的认知能力。高段学生在解决问题之后,能够说出其解决问题的過程和采用的方法。这种能力利于将自己的设计程序分享给其他同伴。
针对小学高段学生以上的思维特点,笔者从以下几个方面探索如何提高小学生编程能力。
三、提高小学高段学生编程能力的几点课堂策略
(一)创设情境,寓“乐”于学
兴趣是最好的老师。一说到编程,大家很容易联想到枯燥的代码,即使是LOGO软件,也需要敲入符合命令格式的代码,所以大部分学生仍感到枯燥。而Scratch软件的出现,刚好解决了输入代码的这个难题,教师可以将需要学习的任务转换成单机游戏的形式,让学生先以玩“单机版小游戏”的方式接触任务,调动学生的积极性。兴趣调动后,学生解决任务的积极性才更高。如下图所示,相信即使是大人看了这样的界面也是十分感兴趣的。
总之,游戏式的情景创设可以引导学生在娱乐中学习,在学习中享受快乐,是在提高编程能力的有效途径之一。
(二)任务分解,寓“解”于学
正如美国麻省理工学院的计算机科学家Mitch Resnick教授所说的:“在学编程的过程中教会孩子们如何将复杂的想法分解成几个部分,不管孩子以后做什么,都可以用得到,这才是学编程的意义所在。”如何才能自己设计出教师在课初出示的“单机版小游戏”,甚至做一些改动呢?这就要进行任务分解。任务分解,就是把一个复杂的大任务拆分成更可执行、更好理解的小步骤。学习编程可以学会解决问题。
例如,学生在完成“星际大战”这一课时,刚开始接触到这一课,学生会觉得这一任务好难,但当将这一大的任务分别拆分成“战机任务”“敌机任务”和“子弹”三个小任务后,就简单多了。其实,任务分解的过程,也是学生理清思路的过程,能够将大任务合理地分解成多个小任务,就是学生在头脑中建立思维导图的过程。任务分解的最终目的就是能够解决问题。如图5、图6所示。
任务分解后,所有的小任务并不一定是一次性就能完成的,这就需要不断地测试纠错,除了要有一定的编程能力,更要细心、耐心,还要有信心,这不仅是对学生编程能力的检测,也是对学生完成任務过程中情感态度与价值观的综合衡量。通过“分解任务-完成每个小任务-测试纠错-解决问题”这一流程,学生不仅提升了编程能力,更学会了解决问题。
(三)培养思维,寓“新”于学
学习编程的过程也是培养思维的过程,思维能力得到提升就会促进编程能力的提升。在课堂学习中,学生可以从以下两个方面提升思维能力。
1.提升抽象思维(也叫逻辑思维)能力。简单地说,抽象就是找到问题的本质,过滤掉其他无关紧要的因素。仍以“星际大战”为例,教师在培养学生提升抽象思维能力时,可以利用思维导图来引导学生从哪几个方面思考,如图7所示。有了思维导图,学生可以很清晰地了解分解的小任务和每个任务该如何完成。
2.创新思维的培养。拥有了好奇心和编程能力,就拥有了创造力。学生对于“小游戏”总是有很多自己的想法,因此在学习中创新也成了他们乐此不疲的事。仍以“星际大战”为例,课堂上给学生演示的小游戏,战机只可以上下左右移动,并不能发射子弹。但学生在拓展练习的时候,自己就会主动进行小创新,如增加了计分功能、敌机发射子弹、敌机遇到战机就死亡、对战机复活的次数限制等功能。当然,如果想让学生一开始就更有创意地设计程序,那么教师一定要在思维导图这一环节多费心思,比如可以设计成留白形式,如图8。
(四)交流评价,寓“享”于学
1.思维分享。前文分析过,高段学生已具有“说出其解决问题的过程和采用的方法”的自我监控的认知能力。这个时候,教师不妨引导学生将自己的成果分享给全班,如果课堂时间比较紧张,就可以以小组的形式分享给小组的其他小伙伴。假设40人的班级,如果有一半的孩子都有不同的想法,在分享思维后,每个孩子都会有20多种想法,可以想象,这场思维的交流和共享对孩子们编程能力的提升有多么大的影响呀!
2.成果共享。在任务设计完成、调试成功后,那种成就感对孩子们不言而喻。但如果此时学生们各顾各地忙着“玩”,恐怕错失了提高编程能力的大好时机。那么就让他们展示出来吧!大胆去想,放手去做,大声去讲,有的同学会越讲越兴奋,越讲想法越多,成就感越强;当然,也有讲着讲着发现问题的,那么就回去继续修改调试,调试好了还可以再来分享。教师在成果分享时,引导学生对成果自评,同学间相互评价,适时地给予鼓励性的评价。渐渐地,孩子们学会了对比不同成果的异同,能够十分准确地说出关键差异,进而优化自己的设计程序,这样,孩子们就在分享中提升了编程能力。
“路漫漫其修远兮,吾将上下而求索。”虽然Scratch这门课程开设的时间并不长,但通过提高编程能力提升学生的信息素养和培养学生解决问题能力的教学实践会一直继续。
【参考文献】
[1]〔英〕西戈(siegal,m.),张新立.儿童认知发展研究——一种新皮亚杰学派观[M].成都:四川教育出版社,1999.
[2]陈辉涛.基于Scratch软件平台的小学编程语言教学方法分析[J].新课程(中),2017(07):116-118.
[3]郭伟,李媛.Scratch程序设计在小学信息技术课堂教学模式实践研究[J].软件导刊(教育技术),2018(01):89-90.