高 晗
(吉林省白山市第一中学 吉林白山 134300)
计算思维最早是在2006年由周以真教授在美国计算机权威刊物中提出的,他认为,“计算思维”就是运用计算机科学的基本概念进行问题的求解、系统设计等思维活动。通俗的来说,“计算思维”是通过简略、转换和仿真等方法来把一个看起来比较困难的问题解释成一个可以被人们认知以及被解决的问题,实际上,它就是一个解决问题的过程。“计算思维”包括了制定问题,选择使用工具,组织分析数据,抽象模型,制定方案,解决问题,以及将解决问题的过程应用到更加广泛的过程之中[1]。
总的来说,计算思维不是要求人类像计算机那样思考,而是让我们思考如何利用计算机简化解决过程和优化解决方案,提高我们的做事效率。
在以往程序设计的教学过程中,教师对学生进行的都是重细节轻思维的训练,最终导致学生思路狭窄,学完后不知道还能用程序设计做些什么。在学习的过程中,学生只是对代码进行了简单的机械式记忆,并不能很好的内化为己用。而且在缺乏趣味性的教学活动中,学生学习参与度不高,缺乏学习热情;实验时多按步骤亦步亦趋,缺乏独立思考和自主实践精神。这些问题将会导致学生计算思维薄弱,学生编程能力不强[2]。所以将游戏引入到程序设计的教学活动中来,有益于提高学生的学习兴趣。为了渗透“计算思维”的培养,游戏化程序设计需要遵循以下几个原则:
教学目标即是游戏任务的依据导向,也是游戏过程的航标指向,所以教师必须紧紧围绕选修课教学目标,设计需要经过思考才能完成的教学任务,让学生在思考的过程中学会将总的目标任务逐步分解、归纳,并通过流程图的方式设计出程序算法。例如,教师可以通过引入生活中的“闰年”问题,让学生判断2020年是否是闰年,再通过教师事先做好的程序进行“闰年”的判断,让学生通过比较人与程序的计算速度,体验程序设计的奥妙。还可以通过“汉诺塔”问题的引入,让学生意识到有效借助计算思维,借助计算机强大的计算能力,就能解决大规模的计算问题。
将程序设计游戏化的目的在于吸引学生的注意力,让学生乐于参与到活动中来,因此,游戏任务的设置要富有趣味。程序设计中的重要知识点应巧妙融入游戏中,从而设计出妙趣横生的游戏环节,设置恰当的游戏任务,激发学生的参与欲望。例如,在游戏设置的过程中,可以让学生进行“中共特工”的角色扮演,让学生通过自己的思考,设计出不易被“敌人”破译的密文。亦或是可以让学生在“贪吃蛇”、“俄罗斯方块”、“超级玛丽”等简易的学生熟悉的游戏设计中,熟悉并掌握程序设计中的类、对象、属性、事件、赋值语句、条件语句和循环语句等基础知识的应用场景。
教师要在教学的过程中结合“计算思维”,有目的、有计划的设计游戏,在活动中发挥“导”作用,把握游戏节奏,关注游戏过程。在游戏设计的过程中要体现分解、抽象、概括等计算思维的思考方式,使学生通过参与游戏潜移默化的形成计算思维[3]。
通过体验教师制作的简易小游戏,教师可以继续通过设置疑问,让学生解析游戏,分析问题。通过画流程图的方式,分析游戏功能后台的代码如何编写,并通过新旧知识的相互串联,逐步分解任务,经过不断的程序调试、代码的编译,最终实现程序的运行。
在编译程序的过程中,学生会遇到诸如实验有疑问或失败等情况,然而这些在老师看起来很正常的情况往往会消磨学生的兴趣打击学生的自信心。这时教师就要及时的深入到学生的活动中来,对学生进行鼓励和引导,通过提问的方式启发学生通过自己的努力找到问题的症结所在。让学生在程序调试的过程中用笔记本记录自己的疑问及答案,并记录下程序运行失败的提示信息、失败原因及解决办法,并通过不断地反思吸取经验,避免下一次再犯同样的错误。
程序调试成功后,教师要对学生进行评价。评价包括过程性评价和总结性评价。通过评价了解学生的知识理解掌握情况,分析学生在学习过程中的学习态度、学习方法与手段。然后让学生通过评价完善游戏案例,反思程序设计环节中的不足并加以改进。然而,编程能力强的同学并不能满足于游戏的简单编译,游戏完成后,可以要求这些能力强的同学在同学间游戏程序的相互试用、相互评价后进行游戏的进一步优化。通过“游戏优化”环节,学生会在新知识理解的基础上,基于自己的认知去优化游戏[3]。在优化游戏的过程中有利于培养学生的创新能力和计算思维。
在当今这个知识爆炸、云计算、大数据应用普及的信息社会,教育的目的不再是单纯的掌握某一种知识技能,而是需要培养学生思考问题、简化问题的能力,即计算思维。基于游戏化程序设计的“计算思维”的培养,既能够点燃课堂的学习氛围、提高学生的参与度,还能够锻炼和培养学生自主探究、创造性解决问题的能力。游戏化的程序设计摆脱了传统机械化记忆代码的编程方式,从学生玩过的、感兴趣的游戏入手,让学生意识到我们不仅可以玩游戏,还可以设计游戏、操纵游戏的规则,从而让学生在内驱力的作用下不断地调试、优化程序,最后通过自己的不断努力感受程序运行成功的喜悦。