基于程序结构讲授程序设计培养小学生计算思维能力

    谭国聚 孟延豹

    前言:《高中信息技术课程标准(2017年版)》的正式发布,带来了整个K12基础教育的信息技术课程的重大变革,信息技术课的课程方向将从原来的重技能、重操作过程转为重思维培养、重核心素养培养,所有的信息技术教师都必须重视这个转变,适应这个转变。北京小学通州分校一向重视信息技术课程以及结合信息技术课程的跨学科整合型课程的开发与实施,在本次改革中又走在了前面,笔者在此特将其部分成果呈现给读者,希望能够给朋友们带来一些启发。

    2006年,周以真教授提出了“计算思维”(Computational thinking),为信息技术课程的教学改革带来了启示。《普通高中信息技术课程标准(2017年版)》已把“计算思维”列入学科核心素养,使其成为信息技术核心培养目标之一。那计算思维怎样反映到小学生的思维品质上呢?

    ● 问题的发现

    随着课程的不断建设和发展,程序设计教学作为信息技术学科的主要教学内容,成为教育技术专家的共识,以编程为核心的课程改革成为发展趋势。

    笔者搜索了相关指数,结果令人吃惊。首先搜索少儿编程百度指数,这个指数依然是上升趋势,而且,针对Scratch的编程,呈现上升趋势。但搜索与程序设计联系紧密的计算思维关键词,百度指数显示没有被收录,这说明该关键词的热度还不是很高。这也证明了整个社会群体对这个概念还没有足够的关注,还不是很清楚编程用来做什么,同时也说明,针对编程的学习目的没有开展相应的教学方法指导。可见,在编程教育非常火爆的背后,缺乏的是学生深度学习课程的能力以及对教法的指导。

    ● 概念界定

    1.周以真教授的计算思维概念

    自2006年周以真教授提出“计算思维”后,国内外的学者对计算思维进行了研究,使计算思维的概念得到了不同的发展与延伸。

    2011年国际教育技术协会(ISTE)联合计算机科学教师协会(CSTA)共同给出了计算思维的操作性定义:计算思维是一个问题解决的过程,该过程包括制订问题、分析问题、抽象建模、算法设计、优化方案、迁移解决方法等六要素。

    2.《普通高中信息技术课程标准(2017年版)》中计算思维的概念

    《普通高中信息技术课程标准(2017年版)》中对计算思维进行了解释:“具备计算思维的学生,在信息活动中能够采用计算机可以处理的方式界定问题、抽象特征、建立结构模型、合理组织数据;通过判断、分析与综合各种信息资源,运用合理的算法形成解决问题的方案;总结利用计算机解决问题的过程与方法,并迁移到与之相关的其他问题解决中。”

    2017年版课标对计算思维的解释是对ISTE&CSTA提出的计算思维操作性定义的补充和完善,笔者以此作为计算思维的界定。

    ● 基于程序结构讲授法培养小学生计算思维

    1.基于程序结构讲授法的程序设计课程特点

    (1)基于项目的课程设计

    脚本中涉及的命令模块,都是围绕所在的程序结构讲授完成,即没有独立的命令模块的讲解,而是针对程序结构详细讲授,在结构中包含相关的命令模块。

    (2)基于游戏的课程设计

    课程的设置基于小学生喜闻乐见的小游戏,这样即使涉及复杂的程序、运算的命令模块,学生也能够有耐心把这个程序编写完整。

    (3)基于跨学科的课程设计

    课程案例设置含有跨学科的内容,是希望让学生通过信息技术课学习程序设计,并把这个思考的方法转移到生活中,从而提升学生的计算思维能力。

    2.教学案例

    (1)Scratch 2.0编程软件

    Scratch是一款面向少年的简易编程工具,共有十大模块、100多块“积木”,使用者只需用鼠标拖动模块到程序脚本区就可以编写程序。

    (2)Scratch 2.0程序结构特点

    Scratch2.0编程软件作为一种程序设计语言,具有计算机语言的结构特征。程序脚本是由顺序、循环、选择以及模块化程序结构这四种基本结构组成,四种结构既可以单独使用,也可以相互结合组成较为复杂的程序结构。

    ①顺序程序结构。

    顺序结构是程序结构中最基本的结构,即程序是按从上往下的順序执行。例如,在猫抓老鼠2.0升级版案例中,案例分为五个项目,其中一个项目就是,小猫的移动办法是通过键盘方向键的上下左右移动来决定的。

    教学片段:

    师:我们编写的程序通过方向键控制小猫的移动方向,这是一个顺序结构(通过直接讲授帮助学生构建程序结构过程)。我们在编写小猫按照方向键方向移动这个顺序结构的脚本时,需要哪些命令模块?

    生:在事件中按下xx键,然后移动(判断、分析数据)。

    此环节学生能够组织数据,但不是很合理,还要通过分析、判断的过程,形成合理的脚本。通过顺序结构的直接讲授,学生在一段时间内自然就会形成顺序的概念,并且结合顺序结构,进行合理的组织和思考,从而逐步提升计算思维能力。

    ②循环程序结构。

    有些程序需要不断重复同样的内容,如在制作不断切换造型来实现的动画效果时,需要不断重复切换不同的造型,这就是循环结构。循环结构一般用于重复某段需要不断重复执行的脚本。

    在讲授的时候,教师可以通过提问帮助学生建构循环程序结构。例如,在设计模拟循迹的程序时,通过添加色块模拟传感器,小猫运动中不停侦测黑色轨迹,从而达到循线的目的。

    学生在完成色块的侦测时没有问题,可是小猫的循线还是出现了问题,就是原地不动。教师并没有直接告诉学生用什么结构来解决这个问题,而是通过事实问题的问答来帮助学生了解程序结构,从而解决问题。

    教学片段:

    师:要使小猫循线不偏离黑色轨迹,需要怎么办?

    学生的答案五花八门:传感器、移动、判断……(这些答案没有回答到点上)

    师:小猫循线移动是仅仅移动一步或者几步吗?

    生:不是,是一直移动。

    师:在程序设计中怎么理解一直移动呢?同学们可以点开控制模块,看一看哪种结构可以帮助我们解决一直移动的问题。(基于事实问题,让学生构建与计算机之间的联系,提升计算思维能力)

    学生通过分析判断,就会想到如果让小猫重复移动是不是会开始循线?经过调试,学生实现了小猫循线的程序设计。

    ③选择程序结构。

    选择结构也称为判断结构或分支结构,是在顺序结构中提供了程序的分支,也就是说在程序的一个顺序流程中加入子程序流程,这样可以使程序更具交互性。分支结构又可分为单分支结构和双分支结构。

    选择程序结构是程序设计中非常关键的一环。学生编写的脚本如果带有选择程序结构,这个程序会变得更有趣味。这里不仅涉及到一个结构,还有侦测的命令模块,需要条件,才可以选择。

    教学片段:

    师:我们设计了猫抓老鼠这个程序,通过变量的变化实现了猫抓老鼠。那么怎样停止程序?

    生:點击红色按钮;还有单独设置一个脚本,按下空格键停止全部程序;等等。

    师:我们能不能通过单独写个脚本,用到判断的程序结构。(这个程序结构的问题抛出,学生很快想到如果……,条件是什么)

    有了这个问题,学生提出诸多条件的问题,如导入另外一个角色,无论是小猫还是老鼠碰到这个角色,都停止全部程序。

    师:大家还可思考,能不能把变量作为条件,与选择程序结构一起用?

    最后,教师和学生达成共识,如果变量增加到15这个数值,那么就结束所有程序。

    学生在编写程序的时候,也许不会过多思考,但是程序结构的抛出,给了学生一个思考的方向,和解决问题的思路。

    ④模块化程序结构。

    作为图形化编程软件,相比Scratch 1.4版本,Scratch 2.0中增添了更多积木模块,定义好的脚本作为次要程序,在同一个程序中反复调用编写好的自定义模块。这样简化了程序,编写的思路也非常清晰。

    因此笔者认为,在Scratch 2.0中可以单独提出一个程序结构,即模块化程序结构。模块化程序结构由主程序脚本和定义模块脚本组成。例如,讲解通过程序画花的过程,定义模块脚本是一片花瓣、多片花瓣等,主程序脚本就是顺序结构,落笔,画出花。

    教学片段:(教师边演示边操作,如下图所示)。

    师:我们画花可以想象有多片花瓣,还有枝干,如果这些内容在一个程序中完成,需要不停地抬笔、落笔、移动步数、旋转。而Scratch 2.0中提供了自定义模块,我们通过模块化程序结构来完成这个作品,会让程序简单可读,易于理解。

    自定义模块里命名之后,接下来的过程就是移动、旋转的命令模块。同样,一片花瓣画好,多个怎么画?同样的办法,自定义之后,调用刚才的模块,其他的部分依此类推。

    最后我们在主程序中用一个顺序结构,就可以完成一朵花。

    在教学实践中,基于程序结构讲解程序设计,降低了学习难度,让学生在编写脚本的过程中有了思路。直接讲授程序结构的过程就是小学生不断分析、判断、解决问题的过程,是知识整体迁移的过程,也是不断提升计算思维能力的过程。

    3.借助评价量表深度认知程序结构

    在以往的教学中,讲授程序结构是通过一系列的命令模块,让学生有感性认识之后,再画出程序流程图,让学生明白是什么程序结构。

    而笔者在实践中,则是通过评价量表学习单进行引导性学习,先给出程序设计的流程图,让学生有整体意识分析,再通过程序结构图进行分析、判断、收集数据等操作,完成程序脚本的编写。也就是说,先构建模型的思维,再有细节性的思维,经过长时间这种思维品质的训练,学生无论是编写程序,还是解决生活中的问题,都能形成有效的解决方案。

    评价量表在引导学生学习程序设计知识的同时,对学生是否完成程序编写项目进行评定,更重要的是,它通过程序结构流程图的展示,促进学生计算思维能力的形成。

相关文章!
  • 小学语文课堂教学中的激励性评

    摘 要:激励性评价作为小学常用的教学方式,在教师日常教学中具有重要作用,在各小学学科中都有应用。在小学语文课堂上,语文教师需要与学

  • 高等教育人工智能应用研究综述

    奥拉夫·扎瓦克奇-里克特 维多利亚·艾琳·马林【摘要】多种国际报告显示教育人工智能是当前教育技术新兴领域之一。虽然教育人工智能已有约

  • 生活引路,作文随行

    周海波【摘 要】“写作教学应贴近学生实际,让学生易于动笔,乐于表达,应引导学生关注现实,热爱生活,表达真情实感。”教师如何让学生更加贴