小学Kodu编程课程中计算思维教学实践
2015-09-10陈久华王荣良
陈久华 王荣良
计算思维(Computational Thinking)是运用计算机科学的基础概念去求解问题、设计系统和理解人类行为。其中,求解问题包括使用计算机技术或设备解决问题以及用计算机科学的思想解决问题;设计系统包括设计计算机系统,也包括用计算机科学的思想来设计一般系统。由此可见,计算思维可以指导人们设计与使用计算机,其更大的功能在于通过对计算及计算机的实现等机理的认识,反映客观规律,并用以指导人们的社会生活。计算思维教育,就是通过对计算原理和过程的认识,掌握基本的计算方法,理解计算思维的本质,从而学会应用计算思维解决实际问题。计算思维教育可以落实到数学方法和工程方法的学习,如递归法、分治法以及形式化表达等方法,来理解计算思维的抽象、自动化等本质属性。
如果说,在高中或者大学阶段可以通过实施计算机编程、计算机原理类的课程,来开展计算思维教育,那么,小学阶段是否也能开展计算思维教育呢?小学阶段的学生,尤其是低龄段的学生,主要依赖于无意注意,以具体形象思维为主,通过直观感知事物的特征和规律。因此,在小学阶段开展计算思维教育,不适合从枯燥的计算机原理性知识学习的途径进行,而应该采用渗透教育的方法,让学生在有趣的作品制作过程中体验和理解计算思维。第一,早期开展的中小学计算机编程等课程,尽管也涉及计算机原理部分的教学,但是往往过分关注具体的编程技术以及细节,而缺乏关注计算的本质与思维。因此,在中小学开展计算思维教育,不是简单的计算机原理或计算机编程的学习,也不是各种算法的学习,而是要通过适量的计算机知识与技能的学习,真正理解计算思维的本质。第二,在小学开展计算思维教育,应该有一个适合小学生的学习平台或环境,具有趣味性、技术门槛低等特点,以便在教学过程中学生不必过多地关注操作性技能和规定。Kodu是一款游戏软件开发工具,具有三维场景和模式化的编程方式,易学易用,是一个适合小学生使用的程序开发工具。第三,儿童化编程软件融入小学信息科技的课堂,让小学生从小接触计算机编程,其目的不仅是让学生学会编程,更是使其体验一个程序完整的开发过程,知道计算机工作和解决问题的方式,从而发展学生的计算思维。“小学生Kodu趣味程序设计”课程的开发,就是将信息科技课堂实践经验和资料积累向课程、教材和教学转化,为小学的计算思维的普及教学提供载体。
计算思维的本质是抽象和自动化,下面是在小学开展Kodu编程教学中,渗透计算思维本质教育的教学实践。
在编程中体会抽象
所谓抽象,是指通过分析的途径,运用概念在人脑中再现对象本质的方法,从众多的事物中抽取共同的、本质性的特征,而舍弃其非本质的特征。在小学阶段,学生可以通过数学课感受数和形的抽象概念,但是通过计算思维教育,学生可以更全面地感受抽象。在儿童化编程的教学过程中,抽象也是必不可少的。学生学会抽象可以更容易找到编程的切入点,梳理游戏的规则,并且最终将游戏规则转变为Kodu程序。下面通过案例《吃苹果》来说明。
环节一:从故事抽象规则
上课伊始,教师出示游戏故事情境:我们的小伙伴Kodu拥有一个美丽的苹果园,苹果树下落满了成熟的苹果,小伙伴Kodu要收集这些苹果,并将苹果搬运到自己的小屋里。然而,我们的小伙伴并不知道,有一个特别喜欢偷吃苹果的坏蛋已经盯上这里了。
教师然后提出问题,让学生互相讨论:根据这个故事情境,你可以制定怎样的游戏规则?同时,教师出示相关的学习表格(如表1),辅助学生思考。
如果凭空讨论,学生难免没有头绪,无从下手,或是异想天开,设想一些Kodu软件无法实现的内容。通过这样的形式,教师引导学生有针对性地对故事情节进行分析和梳理,抽象出自己的游戏规则,学习表格不仅提供了抽象的方法,也为之后编写程序提供了便利。
环节二:从规则编写语句
制定了游戏规则,可以说是完成了编程的第一步,有了编写程序的依据。这时,教师出示部分Kodu程序(如下图)。
让学生先读一读出示的程序,用“在什么情况,做什么事情”这样的句式来翻译这段程序,帮助学生熟悉“when-do”句式的含义。when就是条件,而do就是动作。接着提出问题,学生分析每一条游戏规则中,哪部分是条件,哪部分是动作。最后,学生理清所有的条件和动作,在Kodu中完成程序的编写。
在制定计划后,如果直接开始编写程序,学生往往分不清楚条件和动作,会对教师提出诸如“when里面怎么没有eat啊”“do里面怎么找不到bump”之类的问题。这些都反映了学生没有搞清楚自己写的程序,哪些是条件,哪些是动作。通过环节二,可以有效地帮助学生抽象出规则中的条件和动作,理解“when-do”句型,更加有效地完成Kodu程序的编写。
对小学阶段的学生来说,抽象概念的理解与运用是比较困难的。在Kodu编程实践中,采用“故事情节→游戏规则→编程语句”的实践路径,可以有效引导学生体验和运用抽象。
在编程中认识自动化
自动化是计算思维的本质之一。所谓自动化,是指机器设备、系统或过程在没有人或较少人的直接参与下,按照人的要求,经过自动检测,实现预期目标的过程。与其他课程不同,计算机编程最大的特点就是自动化,利用计算机本身的功能,解决实际的问题。程序的执行过程就是自动化的具体分析体现。在Kodu《捕鱼达人》一课中,有Kodu、渔夫爷爷以及小鱼等多个角色,程序代码也比较复杂,教师通过教学程序调试的方法,让学生感受计算机执行语句和执行结果的关系,同时促进学生理解自动化的意义。
环节一:体验程序调试
在学生写完程序之后,教师提出问题:现在大家的程序已经编好,是不是可以直接提交给老师了呢?
大部分学生会不约而同地说出“不可以,还要检查程序”。
教师继续追问道:“那么在写完程序之后,我们该如何检查程序呢?”
有些学生说:“自己写好以后把程序读一读,就会发现错误。”
教师提出一种调试程序的方法:运行程序→观察程序→分析错误的程序→改进程序。让学生按照这个方法测试,看能不能发现程序中的问题。
按照这个方式,不少学生都找到了自己程序中出现的部分。
环节二:理解程序执行过程
教师提出问题:是谁告诉你们程序在哪里出错了?并进一步阐述:计算机最大的一个特点就是自动化,它在运行程序时,是一条一条语句逐步执行预先设计的任务。计算机一旦执行了错误的程序,表现出的现象与你原来设计的要求不一致。你需要像计算机执行程序一样地思考,理解计算机执行每一步语句应该有的现象,与实际的执行结果比较,根据错误的现象,找到错误的程序语句,并把它修改正确。
教师为学生提供了调试程序的学习单(如表2)。
学生依照教师提供的程序调试方法,对照游戏规则,对《捕鱼达人》这个游戏进行调试,观察并记录错误现象。在找到错误之后,学生互相讨论,分析解决这些问题的方法,修改程序,重复调试的环节,直到程序完全正确。
计算机是自动执行程序的,但计算机的自动化是一个黑匣子,没有办法看到每一步程序的执行过程,只能通过执行结果来感受。对小学生来说,以程序调试为切入点,通过寻找计算机程序实际执行结果与最初设计方案的不一致,让学生尝试像计算机执行程序一样思考执行语句应该对应的动作,从而发现问题并解决问题。这一过程既是程序调试的过程,也是理解自动化的过程。
2012年10月,英国宣布了新的ICT课程,将ICT学科的教学层次从基础应用型提升到创造发明型,要重视培养学生的计算思维。我国的信息技术教育也正从知识与技能的学习向能力与思维方式转变,从信息技术的应用向信息技术的创造转变。我们希望通过基于计算思维为核心的“小学Kodu趣味程序设计”课程的实施让小学生常有一些灵感迸发出来,让这些闪光点成为一个意想不到的创意,让学生在自主、合作、交流、思考的过程中,促进思维发展,在学会编程过程中,提高科学创新的能力。