APP下载

让“计算思维”在Scratch实例教学中落地生根

2016-09-10赵辉

中国信息技术教育 2016年10期
关键词:实例计算思维程序

赵辉

在已出版的Scratch教材《游侠传》的序言中有一段话:在创作Scratch作品的时候,并不只是要求学生学习如何编写计算机程序,而是学习如何创造性地思考,如何系统化地推理,而这些都是未来他们获得成功和人生幸福的核心能力。计算思维是信息技术学科的核心思维,在Scratch实例教学中融入“计算思维”的思想,能有效地训练学生的创新意识,培养其解决具体问题的能力。计算思维的具体内容包括思维与归纳、程序与算法、抽象与自动化、分解与建模、测试和调试等。根据Scratch课程的目标,笔者筛选出计算思维中的抽象、分解、算法、纠错和归纳五个核心要素开展教学实践,并结合Scratch实例教学经验,总结出Scratch实例编程教学的常规教学流程图(如图1)。

Scratch课程的内容不能枯燥地讲解算法知识点,教师应该把知识点渗透到各个实例中,由一个个鲜活的实例层层递进知识点,让学生通过制作实例来学习编程,体验一个程序完整的开发过程,知道计算机程序解决问题的方法,从而发展学生的计算思维。所以,教学实例的选择必须注重从学生的实际生活出发,提炼生活中的问题,贴近学生的认知,对案例的熟悉度和理解程度是对实例抽象和分解的基础。笔者就以《口算软件》为例,谈谈Scratch实例教学中渗透计算思维本质教育的一般操作流程和策略方法。

抽象建模,形成思维

所谓抽象,是指通过忽略可有可无的细节来降低难度。将一个现实问题转变成为计算机可以处理的问题。抽象是选择案例后实施编程前的一项重要工作,学会抽象可以更容易找到Scratch编程的切入点,更好地理清程序规则。

1.情境模拟,化抽象为具体

教师根据实例内容与教学目标,有针对性地设计任务情境,并让学生扮演角色模拟情境过程,在高度仿真的情境中感受程序抽象问题,让抽象问题具体呈现出来。

首先笔者通过情境模拟二年级学生举办一个口算大赛。模拟过程:让2位学生带上头饰,一位扮演二年级的学生,一位是扮演电脑小博士。教师说开始,并请电脑小博士出一道2个数相加和为20以内的加法题,学生回答问题,电脑小博士思考后说:“恭喜!答对了”或“答错了!加油哦!”(如图2)。笔者接下来让学生“玩”程序,把刚才的仿真情境在电脑中重演一遍。随后笔者提出问题:①程序里有几个角色?②表演中的“学生”角色在哪里?学生经过初步判断得出四个角色分别是电脑小博士、加数、被加数、答案,后面是舞台背景,里面包括“口算大赛”“+”“=”等元素。但这仅仅是理清了一部分角色,其中加数、被加数和答案并非是角色,这为后面埋下伏笔。在教师的引导下,学生观察和思考后,得出表演中的实际角色“学生”就是软件的使用者,在程序中可以不用出现。

用模拟情境的方式导入大大增加了学生的学习兴趣。让学生在“玩”中感知程序的操作方法及各对象的关系,从而把抽象的程序变得具体,并可以“触摸”。

2.思维导图,从无形到有形

思维导图能很好理清程序中角色的关系,让学生一目了然地了解现实生活和计算机世界的联系,学会把无形的思维过程转化为直观有形的导图。笔者通过情境模拟,并以问答的形式,引导学生思考程序所需要的角色;让学生仔细观察舞台上的加数和被加数,使其发现每次重新出题时,加数和被加数发生变化。像加数和被加数这样在程序运行过程中没有固定的值,随时发生变化的量,称为变量。从而引出本节课的重点——变量。笔者出示程序的思维导图(如图3),并层层提问,引导学生思考问题的关键点。以“图”的方式来整体规划,将现实生活中的对象与计算机要处理的对象一一对应,化无形为有形。

分解问题,理清思维

计算思维中分解的概念是把一个看起来困难的问题重新阐释成我们知道怎样去解决的问题。经过分解后,这些零散的部分才能够被理解和解决,从而降低大型实例的设计难度。学生通过分解问题,理清每个角色的动作与编程思路,将难点进行分解并一一突破,从而从无序状态中脱离出来,找到解决问题的关键点。

1.简化自然语言,分解出程序步骤

笔者引导学生通过抓重点词的方法,去叶存枝,有效地把握程序运行的方向,这样制作范例时思路会更加清晰。经过抽象建模,笔者要求学生根据思维导图,对编辑过程进行自然语言描述。简化学生的自然语言描述,最后圈出重点词:出题目、询问、回答、思考、说。经笔者引导后得出:“回答”是程序操作的个人行为。最后分解得出电脑小博士的程序步骤:出题目→询问→判断→说。

2.拆分执行效果,细化出脚本模块

学生操作程序并仔细观察确定程序的四个主要问题,再在此基础上细化出所需要的模块:①加数和被加数的数值范围如何赋值?②询问框和答案如何显示?③正确答案是如何计算出来的?④何时说“对了”或者“错了”?

其中问题④最复杂,它是电脑小博士的思考过程,也是步骤中的第三步“判断”。为了帮助学生理清规则,笔者让他们描述电脑小博士的思考过程,利用语文中“如果……否则……”的关联词来造句,从而理解条件判断语句。

师:这个条件判断的条件是什么?

生:题目回答正确。

师:怎么样才算回答正确呢?(这也是比较难以理解的,因为学生难以体会到电脑的思考过程是如何)什么情况下算答对?

生:答案与回答进行比较时。

从而教师引出逻辑运算符脚本模块:等于号(=)。最后,将其梳理为“当……时,角色会……”的Scratch语言结构,得出使用判断脚本模块。当答案和回答相等时,电脑小博士会说“答对了”!否者会说“答错了”!分析一系列问题后,学生细化脚本模块。

提炼算法,训练思维

算法是通过一种清晰定义的步骤来解决问题的方法。之前抽象和分解起到了链接自然描述语言和软件编程语言的作用。在此基础上,要针对每个小问题,形成解决问题的算法。此时放手让学生在Scratch中进行程序设计是很困难的,因为分支和循环很难表达清楚,为此笔者借助流程图突破重难点来提炼算法。

1.流程图护航,自主“摆弄”

“摆弄”是Scratch编程学习的精髓。由于学生设计经验不足,所以笔者给出流程图(如图4),这样能更有效、更规范地描述算法,引导学生在Scratch中找到相应的代码块。学生已经知道所需的脚本模块,通过流程图和所需模块,尝试自主搭建,体验“摆弄”模块的乐趣。学生通过细化脚本模块,查看流程图,思路基本形成,这为自主完成奠定了基础,为自主学习提供了支点。

2.重难点突破,吃透算法

“口算软件”的重难点是:搭建条件判断语句,从而对变量有初步的认识。为了解决“条件如何搭建”的问题,学生展开了激烈的讨论,并讨论得出了多种算法设计。虽然不同的算法执行的效果会略有差别,但重要的是学生在讨论和不断摆弄的过程中,拓展了思路,发展了计算思维,这才是教师期望达到的目的。案例中要让程序自动出题,需要利用循环结构,通过比对执行效果,学生会非常容易理解循环算法,并能合理利用。

纠错调试,巩固思维

“纠错”是Scratch教学中另一个重要的环节,贯穿了整个课程的学习过程。从学生设计脚本程序时,纠错的行为就始终伴随着,更体现了“摆弄”的重要性。学生在调试作品时,需要像计算机执行程序一样去思考执行语句,理解执行每一步模块应该出现的现象,并与实际的执行结果进行比较。当发现效果与预想的有偏离时,就要不断地纠错,调整程序,采用不同的算法实现效果,在“构思—编程—测试—调试”的过程中进行纠错,反复磨练,这样学生不仅在知识、技能上会有进步,在计算思维上也会有所提升。

1.阅读脚本,纠错更自主

阅读是人类的基本技能之一,但在信息技术教学中常常被忽视,在程序调试时,它是一种行之有效的方法。随着程序学习的深入,学生发现运行错误,想要寻找问题的根源,却因为程序代码模块数量的增加而无法找到出错代码。为此,笔者引导学生一边读代码,一边添加“注释”,这是一种纠错思维,也很好地解决了问题脚本定位的问题。例如,边读“口算软件”脚本边注释。“点击绿旗开始,将变量加数和被加数赋值为0到20之间的一个随机数值”(注释:出题);“如果加数+被加数=回答”(注释:判断);“就询问请回答并等待”(注释:询问);“如果正确‘恭喜,答对了’,否则就说‘答错了,加油’”(注释:说)。这是一道题目的出题过程,要让程序重复出题,则需要再让这段程序脚本重复执行。学生经过读一读和注释后,再加上教师的引导,就会发现脚本中的错误,不断调整角本。

2.小组协作,调试更有效

教师为学生提供如何调试程序的学习单。对“口算软件”这个程序先进行调试,观察并记录错误的现象,找出错误语句后,学生相互讨论,分析解决这些问题的方法,修改程序,重复调整的环节,直到程序完全正确。

例如,在《口算软件》教学中,程序出现不能正常出题,或者出题内容不是1到20之间的一个随机数,学生应该先找到问题语句,并对其进行分析,填写纠错学习单(如表1),记录程序中的错误现象和错误语句,再考虑“如何修正”;如果不会修正,则可以通过小组协作来解决问题,或者请教师单独指导调试。学生通过对程序的纠错调试,不仅锻炼了自身的计算思维能力,而且对知识进行了巩固,为拓展埋下了伏笔。

归纳总结,沉淀思维

归纳是去情境化的过程,让学生剥离实例学习所运用的各种编程技巧和方法,能通过类比的方法,把握共性问题,将一个问题的解决方法迁移到另一个问题中,形成一种内在的思维能力。经过前面四步,学生已经初步形成了计算思维能力,但这种思维能力并不成熟和稳定,需要在教师的引导和任务支配下才能完成,因此,学生需要借助归纳、实践来强化和巩固学习结果。

1.分析方案,再用变量归纳总结

经过这种去情境化的过程后,学生就可以接受更多的挑战性任务,进行创意计算作品的自由创作。本节课主要的学习内容是“变量”应用,变量强大的功能为学生提供了挑战性的任务,让学生的创新力超前发展,使其在实现想法过程中获得成功的喜悦。教师再增加拓展环节:我们为“口算软件”添点功能吧,为脚本添加一个“评分方案”。学生思考变量的起始分值和分值变化,并填写完成表2。再创作为程序的升级环节,笔者通过一系列的问题和表格来引导学生运用变量控件解决问题。在创作的过程中,学生不仅要对变量进行识记和理解,更需要对变量进行深入的分析和灵活的运用,这对学生的计算思维提出了更高的要求。

2.作品展示,分享、交流、沉淀思维

作品展示是对学生的肯定,也是学生再学习的一种方式。学生介绍作品,不仅是展示自己的机会,也是对知识进行归纳总结。经过思考和学习后,学生的作品比原来更有想法、更丰满了(如图5)。学生在分享和交流中,不仅锻炼了语言表达能力,理清了思路,也获得了快乐,沉淀了思维。

教无定法,教师只有在教学设计时融入计算思维,不断地改善自己的程序设计教学策略,提高学生学习编程的热情和积极性,才能让学生在自主、协作、交流、分享的过程中,促进思维的发展,才能让“计算思维”在编程实例教学中落地生根,让每一位学生学会创造性地思考。

猜你喜欢

实例计算思维程序
给Windows添加程序快速切换栏
简化化学平衡移动教学程序探索
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养
完形填空Ⅱ
完形填空Ⅰ