不插电的计算思维教学

标签:
it教育 |
本学期,初始年级学生们开始学习信息技术学科基础知识。二进制、计算机指令(程序)等是这个单元里比较核心和关键的内容。如何在学科理论基础教学过程中渗透计算思维的培养?是一个值得我们研讨的问题。
之前,在方老师推荐下读了《不插电的计算机科学》,读后真正体会到悦读的快乐。2015年听过的一节国家优质课中的任务实例,原来就出自此书。书中一些实例可直接应用教学,还有不少实例启发了自己的教学灵感。“不插电”的方便,让我们在普通教室只用PPT或简单的教具就可以在学科基础知识教学中进行计算思维的培养。下面分享几个教学实例。
在讲授计算机二进制时,我给学生带来了两个“魔术”。课堂伊始,我们进行了一个猜生日的“魔术”游戏:猜生日月份时,依次向学生展示四组数字,如果学生的生日月份出现在该组中则点头,否则摇头;猜生日日期时,依次向学生展示五组数字,如果学生的生日日期出现在该组中则点头,否则摇头。当一一猜出学生生日时,有的学生张大嘴惊叹,有的学生若有所思所得。带着好奇和疑惑,我们开始了“二进制如何表示数”的探究。
学习二进制数在存储器中如何存储后,学生们开始讨论另一个问题:如果二进制数据在写入或存储过程中出现某个位的错误(0变成1,或1变成0)计算机能发现错误并更正吗?此时,我给学生带来另一个“魔术”——翻卡魔术。首先,让一名学生配合将49张正反面分别为黑白色的磁卡片按7*7的排列贴在磁性黑板上,由他决定每张卡片的正反;接着,为了增加魔术的难度,我还要加上11张卡片,分别放在最右列和最下行,将卡片变成8*8;接下来魔术表演开始,我背对黑板,请学生任意翻动某一张卡片,而我转过身后总能准确指出被翻的一张。
以上两个魔术的“魔法”是啥呢?第一个魔术中,相关的知识是如何用二进制表示十进制数:将月份12个数值和日期31个数值用二进制表示,分类别到各张数据卡片中,从低位到高位分别向学生询问,摇头记0,点头记1,对应的就是月份或日期数值的二进制数了。日期依此类推,因为日期范围是1-31,所以需要5组数据(25=32)。
第二个魔术的学科知识是“奇偶校验法”,老师增加的最后一列和一行,其实是用来标识该行或列的白色卡片总数是奇数或偶数,如果该行或列白卡是奇数,则在末尾补白色卡;反之补黑色卡。通过被翻动的卡片的行校验标识和列校验标识,马上可定位该卡片位置。
第三节的教学内容是计算机软件。其中,关于计算机指令和程序指令的执行可以作为学生计算思维培养的落脚点。在讲授计算机程序指令,我组织学生进行“听画”游戏。请一名学生将看到的一个简笔图形,用语言指挥其他学生画出这个图形;更换图形,更换描述者,看谁能让更多的同学画得最接近原图。例如发发以下指令:1.在纸的中间画一个点;2.从纸的左上角开始画一条直线,笔直穿过这个点到达右下角;3.从纸的左下角开始画一条直线,笔直穿过这个点到达右上角;4.画出纸上四条线段的中点;5.画线连接这四个点。看其他同学能否完成以下图形。
可供进行游戏的参考图形如下:
这个游戏活动主要是让学生体会计算机依照指令行事的特点。程序员在编写程序时,必须用简要、明确的程序指令来指挥计算机严格按要求执行任务;程序算法,就如我们在现实生活中解决问题的步骤和策略。同样,在“听画”游戏活动中,学生必须抓住图形最关键和最具特征的信息,然后尽可能用简短明确的指令来指挥同伴画图,还要考虑哪个位置先画,以什么顺序来画图最可能逼近原图,这个过程将学生的抽象思维、分解思维、算法思维都融合在一起。
“评估”是在计算思维培养过程中提到的一个关键词。如何让学生体验评估问题解决方案呢?我设计了另一个活动:类似前面“听画”的活动模式,请一名学生严格按老师的指令执行相应动作行为。我发出的指令为:站到教学前门前;快速通过前门。当然,学生很顺行完成指令。执行同样的同次指令后,我突然把教室前门关上,再次发出同样的指令。这时学生都笑了,因为再次快速通过,这名同学肯定将撞上门。如何修改“指令”呢?学生们提出的意见是:1.站到教学前门前;2.走到门边;3.如果门关则打开门再快速通过前门,否则快速通过前门。这时我指出:“没错,这个指令执行的限制条件是门是否被关,程序设计员在写指令时一定要明确问题解决和程序执行的限制条件,加以判断和识别。”说完,我从口袋中掏出一把锁头,把门给锁了,再次发出指令。学生们再次笑了,因为执行任务的同学根本没钥匙开门。我再次点明:“知道了限制条件,还要收集必备的数据和信息资源,比如开门的钥匙,这也很关键。”最后,我抛出另一个问题让学生讨论:如果人们严格按照指令行动会带来什么样的结果,你能说出一些例子吗?
“并行”思想在很多有关计算思维培养的研究中也被提到。如何让学生更好的理解并行的思想呢?我设计了一个游戏活动:请两名学生进行装乒乓球比赛。第一组学生往一个一端开口另一端封闭的长纸筒中装入16个乒乓球;第二组学生往一个两端开放的长纸筒中装入16个乒乓球,学生势均力敌,所耗时间差不多;然后,我让双方各增加一名帮手来比赛,这时明显第二组获胜,因为他们能“并行”从两个端口装球,而另一组还是和原来耗时差不多。通过这个游戏让学生直观理解,有些任务能通过并行的方法高效解决,有些则不能。比如,让学生想一想,雇更多的人用更多的铁锹能将一个8米长的排水渠势利更快吗?挖一个开口小的8米深的井呢?
计算机处理任务也是一样的,并行操作能让某些任务完成得更快,而某些则未必能并行处理,因为需要先完成一部分然后才能开始下一步部分。计算机科学家一直在积极寻找分解问题的最佳方案,从而使计算机能够以并行的方式高效处理任务。如果我们像计算机科学家一样思考,首先就要识别所要解决的问题可否并行解决?然后思考是否可改变方案让问题可被并行解决(例如上面游戏中,打开纸筒另一个端口装球)。
学生需真正理解、体验、内化计算机学科的方法和思想,才能将其应用、迁移到现实问题的解决过程中。所以在教学过程中,我们应力求将晦涩的学科理论变得直观、好玩,调动学生的学习兴趣和学习动机,引导学生更好的构建学科知识和思想体系。