(一)课例背景
近几年来,人们对于“计算思维”这一概念的关注度持续升温。以“计算思维”为关键词在中国知网上进行主题检索后发现:自2012年起就掀起了一股计算思维的研究热潮,更在近三年达到一个井喷状态,计算思维已成为当前研究的一个热门话题,也取得了一定的成果。
《普通高中信息技术课程标准(2017年版)》中,将计算思维作为学生的四大学科核心素养之一,凸显了计算思维在信息技术学科中的重要地位,并对计算思维做了如下定义:计算思维是指“个体在运用计算机科学领域的思想方法形成问题解决方案的过程中产生的一系列思维活动”。著名计算机科学家克努特认为:“计算机科学是算法的学习”。由此可见,计算思维能力的培养,一定程度上与程序设计中的算法学习密不可分。为了方便理解,可以再举几个日常生活中隐含着计算思维的事例:你出门前,整理公文包,把当天需要的东西放进包内,这是预置和缓存;你出门后,发现时间还早,决定不坐车而是步行去上班,这是在线算法;走着走着,你发现自己丢了东西,沿原路返回去寻找,这是回推……
程序设计是培养学生计算思维能力的一条有效途径,大量的编程软件的文献中都提及了计算思维的培养,但这些编程软件大都是JAVA、VB、VC等一些适合高年级学生学习的专业编程软件,一直以来初中课堂中都缺少一个合适的编程软件。Scratch软件的出现很好地解决了这个问题,其积木式指令直观易懂,方便初中生的学习,更重要的是在学习的过程中,学生能够有机会去思考、表达、创新,让他们在设计与思维间不断寻求平衡与挑战,成为对学生进行计算思维训练的有效载体。
在这样的大背景下,笔者根据学校“本草园”课程的建设要求,在初中学段开设了“本草娃娃带你玩Scratch”校本课程。本节课是校本课程“本草娃娃带你玩Scratch”中的活动二“本草娃娃教你认植物”所开展的一节展示探究课,旨在根据这个课题的研究内容,探索用Scratch软件培养本区初中学生编程兴趣的方法,并在此基础上潜移默化地培养学生的计算思维能力。
(二)课例过程
“本草娃娃教你认植物”活动共分为两课时,教学对象为六年级的学生,希望学生认识各种中草药植物的花、叶、果实等不同形态,并将其编写成一个简单的小游戏,让本草娃娃这个卡通人物进行介绍(见图5-1)。本节课是“本草娃娃教你认植物”活动中的第二课时。
图5-1 “本草娃娃教你认植物”游戏范例
在第一课时中,学生学习了Scratch编程软件中的“角色”与“造型”的概念、“广播”的执行过程等内容,并模仿范例编写了程序,初步掌握了造型之间的切换与广播的用法,但在提交的作业中出现了一些问题。
这节课分为三个环节——“复习巩固”“探究学习”“讨论交流”,旨在让学生复习巩固上一课时知识点的基础上,进行一个进阶的探究活动,并通过交流反馈,不仅使学生可以掌握程序设计的语句模块,而且在学习的过程中,渗透计算思维能力的培养。
1.复习巩固环节
在对上节课的知识点进行短暂回顾后,来到了这节课的第一个活动——“我是纠错小能手”。该活动针对上一课时提交的作业中的两个错误程序让学生进行纠错。这两个错误,一个是由于变量命名的不规范造成的,另一个则是由于算法设计的不缜密造成的。由于错误程序均来源于学生的作业,学生在纠错过程中显得格外用心。另外,由于Scratch软件的操作非常方便,学生没花多少时间就发现并纠正了程序的错误。此时,我对学生提出了更高的要求,要求学生思考这些错误背后的根本原因。学生通过讨论,进一步理解了命名的规范在预防程序错误中的重要性,总结了程序纠错的一般步骤。
2.探究学习环节
接着进行的是这节课的重点活动——“增加更多的植物”。该活动的要求是让学生在原有程序的基础上,增加程序的难度与趣味性,将原本程序中只显示一种植物的设定,改为显示两种植物,并且要求学生使用多种方法解决这个问题。
本人先让学生讨论了解决该问题的算法,学生想出了两种不同的算法(见图5-2),再让学生对其进行简单的讨论以起到抛砖引玉的作用。在随后的程序编写的过程中,本人让学生拓展思维,采用更多的算法来解决该问题。最终,学生一共想到了4种不同的算法,实现了同一问题多种算法解决的预期目标。接着,继续让学生对这些算法进行比较,学生发现,虽然不同算法的程序运行结果完全一致,但是在代码编写的难易程度及程序的大小、运行速度等方面依然存在一定的差异。(www.xing528.com)
图5-2 “增加更多的植物”活动中学生提出的不同算法
3.讨论交流环节
在这节课的最后一个环节——“交流讨论”中,本人先和学生一起回顾了活动的整个流程,让学生发现程序是需要通过不断修改与完善才能最终成型的,之后让学生讨论这种“先开发一点点,然后不断试验,再开发更多的部分”的思维模式在现实中的应用。
学生在讨论时各抒己见。有学生提到,学习英语其实就是这种思维模式的体现,首先学习英文字母,而后学习单词,再到各种语法与句子的学习,直至最终能进行整篇文章的阅读。其他学生也提到了如何练出一手好字、如何踢好足球等方方面面的例子,整节课在活跃的讨论氛围中画上了句号。
(三)几点思考
关于Scratch编程的教学,本人自2014年起就已经开始进行课堂教学实践,但是在实践过程中,发现学生还存在着一些问题。首先是编程习惯的养成问题,由于Scratch软件是一款面向儿童的简易编程软件,并不像专业的程序设计软件那样语法要求严格,因此学生在操作上存在一些随意性,经常会有随意命名等不良习惯。其次是部分学生的逻辑思维能力不强,在编写程序时,无法形成有效的思路策略,最终只能抄写范例程序,久而久之失去了学习兴趣。最后是计算思维的概念相对比较抽象,直接从定义入手,学生很难理解。这节课所设计的三个环节就是希望在这三个问题上探索一些行之有效的解决途径。
1.让学生在程序纠错中体会规范性与严谨性的意义
计算机科学的特点之一就是缜密性与精确性,适合用来完成高精度、高密度的工作。Master的围棋就证明了这一点,它以60胜0负1平的战绩横扫人类顶尖棋手,而它最让人类棋手头疼的地方就在于它似乎永远都不会犯错,毫无弱点可言。虽然这一方面引起人们对于计算机科学在人工智能领域快速发展的忧虑,但另一方面人们也不得不对其缜密与精确的计算能力表示惊叹。
这节课的复习巩固环节,旨在对学生的一些不良编程习惯进行纠正,并让学生通过纠错的方法将程序从坏的情况中进行恢复,理解操作中的不规范与思考中的不严谨所带来的“失之毫厘,谬以千里”的后果,体会计算机科学严谨的工作原理在工作、生活中的意义。
2.让学生运用合理的算法形成解决问题的方案
算法是解决问题的一系列清晰指令。学习算法设计可以让学生在界定问题的基础上,合理地组织数据,将要解决的抽象问题转化成可执行的模块指令,以一定的流程将其解决,形成解决问题的方案。
这节课的探究学习环节,旨在通过算法这种形式帮助学生解决逻辑思维不强的问题,用算法这种形式,把一个看起来很困难的问题重新阐释成一个人们知道怎样解决的问题,从而形成解决问题的方案。并通过不同算法的比较,让学生明白,解决一个问题,不仅需要一个解决方案,还需要在各种解决方案中进行权衡,选择最合理的解决方案去解决问题。
3.让学生将计算思维迁移到现实问题的解决中去
计算思维具有以下特征:首先,它是一种概念化的思维模式,程序编程只是实现这种思维模式的途径之一,最终的目的是学会这种思维模式,并学会运用这种思维去解决问题。其次,它并不是人去照搬计算机的思维,而是人通过学习计算机的思维来丰富自己的思维,使自己的思维得到提升。归根结底,它也是人的思维的一种形式,它能解决我们日常生活的一系列问题,包括与他人交流和互动等,而这就是学习计算思维的最终目的。
这节课的交流讨论环节,一方面,通过生活中的例子帮助学生更深刻地理解计算思维的概念,另一方面,让学生有意识地将计算思维与现实生活中的各种问题相联系,在学习程序编程的同时,能运用计算思维解释、解决现实中的问题,真正实现信息素养的提升。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。