论文部分内容阅读
摘 要:从小学生的年龄、心理特征入手,提出以学习“编写游戏”为主要内容,进行系列编程教学的课程开发。从学生认知水平、心理特点论述了学生对游戏编写的兴趣及接受程度高,有助于学生克服学习困难进行编程学习。以“编写游戏”为载体,可根据游戏的类型、难易程度灵活的组织教学,同时有助于培养学生的人机交相意识、重视人机体验,制作过程中有助于培养学生的语文、美术等综合能力。以“编写游戏”为内容可以涵盖程序设计所有的知识点,可以做为系列课程开发的方向。
关键词:编程;游戏;编程思维
近年来中小学生编程教育变得越来越受重视,继浙江、北京、山东、江苏等省市后,重庆市教育委员会也出台了《关于加强中小学编程教育的通知》在义务教育体系内,将编程教育纳入课程中正成为教育发展的趋势。
现目前的编程教育呈现越来越向低龄化覆盖的倾向,小学一、二年甚至是幼儿园大班的儿童都有在学习编程的孩子。现行编程课程体系百花齐放,但依然处在对编程教育的探索阶段。
小学生的年龄比较小,对抽象东西理解能力不强,好奇心强,自制力不强,这个阶段的儿童有着特定的学习特点,本文就结合教育实践来谈谈以编写游戏为载体编程课程开发的可行性。
一、现行小学编程教学情况分析
现行的小学编程教材中多数还是以Scratch这种图形化的儿童编程软为编程工具进行教学,操作方便,代码不需记忆,更适合小学生作为启蒙阶段学习。
现行多数教材缺乏系列性与连贯性,关于编程内容的安排比较零散,前后内容的相关性差,学生学习时跳跃感强,还有一些教材用解决社会问题做内容,对于小学生来说兴趣不高,理解能力也达不到。
受传统教学模式的影响,填鸭式教学思维也影响了教材的编排,都是从教师的角度出发,没有考虑过学生的兴趣需求,忽视学生的主动思考,侧重于让学生按照老师的思路去学习,为了“教”而编,很容易让学生渐渐地对编程失去兴趣,让编程变成了枯燥的记忆,使小学生对编程的产生畏难情绪。
二、为什么选择“游戏”作为教学内容的优点
1.符合学生的认识规律、学习兴趣浓
现在小学生是打着游戏长大的一代,从小就有接触手机、平板上的游戏,所以游戏是他们非常熟悉的。在我的编程教学中,主要是以用Scratch编写游戏,为教学内容,例如打地鼠、赛车、弹跳球等,学生由从玩游戏的变为创造游戏的,这种角色的转变对小学生的吸引力非常大。学生以往玩游戏的经验对学习的结果,即游戏的运行效果有清晰的认知,这让学生对的学习结果有明确的目的。如何让游戏的按照预想的效果运行,在程序编写上如何实现,成为学生学习的动力。在教学中,我发现学生在完成了自己的作品后,更容易得到心理上的成就感。小学生的想象力丰富,他们喜欢创新,多数学生会把自己的编写的游戏进行创新,让自己创作的游戏与众不同。说明学生不但兴趣浓厚,还能够激发出学生的创造力,让学生变得主动思考。
将编写游戏作为编程教学的载体,可以让学生在情感上容易接受,摆脱枯燥的学习,并且注意力会吸引在编写游戏的教学活动中,并为了实现游戏效果,形成较强的意志力,努力完成学习。最有价值的是,对程序设计的不断优化和完善都是源自学生的自我要求,自我思考,自我探索,教师在给了学生平台后,成为了学生的引路人,和知识宝库,学生在完善程序时会主动找教师来讨教解决方法,改变了以教师为中心式的填鸭教学,让学习的效率更高。
2.便于PBL项目式学习的形式开展
项目式学习是是一种以学生为中心的教学方式。通过教师引导,学生主动探索现实问题,获得更深刻的知识和技能。项目式学习和传统式学习方法相比,能有效提高学生实际思考和解决问题的能力。编写一个游戏,其实就是完成一个项目,这正好符合项目制学习的特点。一个游戏编写要分几个步骤完成,在编写的过程中,需要解决许多问题,在解决问题的过程中,教师可以引导学生梳理出各种问题的节点,组织学生在思考解决的细路及具体实现方法。
例如编写《打地鼠》游戏,教师在演示游戏效果时,可以引导学生,在编写游戏时要分几步来实现,需要几个角色,角色是如何互动的,关键的步骤在哪里?整理出需要角色有锤子和地鼠,锤子可以随鼠标运动,地鼠碰到锤子会发出被打的效果……等一系列的问题,这时教师再引导学生逐个攻破这些问题。比如锤子可以随鼠标运动,所用的命令是“当旗子被点击时,无限循环,移动到鼠标指针”,这样一步实现一个功能的学习,让学生自觉思考、自主探究成为学习主人。这样的学习过程,使学生能够由全面到具体的思考一個程序的结构、过程、关键点,对学生的提高思维能力有很大帮助。
3.选材灵活,易于组织教学
游戏的类型多样,有动作类、剧情类、益智类等,题材也比较广泛,这样在选材上具有灵活性,可以有针对性的对学生进行教学。
根据编程知识点可以针对性的设计偏重某方面知识的游戏,如编写一段音乐,可以训练学生顺序执行的方法,如要重点教学生学习判断语句,可以设计有复杂判断的游戏,如果想体现算法,可以用“打台球”游戏来学习编程中的算法。编程知识的各个方面都可以找到相应的游戏内容来体现出来,让学生为了做出想要的效果,而自觉的进行学习。
题材的多样化,也让课程的开发变得灵活,在学习编程的同时,可融入其它学科的知识,融入科学、音乐、美术、历史、地理等人文素养,使编程课程体现出文化的传承,居有文化育人的功效。
4.交互性强,可难、可易
游戏具有极强交互性,任何一个游戏从一开始就首先考虑到了人机交互,编写好一个易操作有反馈的游戏,有助于学生将来在真正用编程来解决问题时,创造一个友好易用的程序。不管科技如何进步,计算机程序的处理过程仍然还是输入、输出的过程,即接受指令给出反馈,所以在编程时就应该建立一个良好的人机互动机制。学生在编写游戏的过程中,会不断的改进人机交互的友好性,有助于培养学生在将来的程序设计中,提高程序的友好性、易用性,让程序变得更“智能”。 复杂点的游戏,需要用到的编程语法及算法多样,足以涵盖编程教学的知识点,用游戏作为教学的内容,是不用担心深度不足的。复杂的游戏是计算机编程语法、算法、结构、人机交互的综合实践,充分的演绎了计算机编程知识的各个侧重点,几手可以涵盖所有的程序设计知识。所以,以编写游戏为教学内容,不会出现知识点的遗漏,可以作为编程课程持续开展下去。在教学中,教师容易控制教学的难、易程度,这种“弹性”可以让教师在组织教学内容上游刃有余。
5.功能模块化,有利于学生发挥创造力
在教学生编写游戏的过程中,发现游戏的许多交互方法、效果实现都是相通的。角色的操作一般分为鼠标操控和键盘操控,还有角色的移动、碰撞检测、随机出现等,代码编写的方法也是基本相同的,学生掌握了这些代码的编写方法后,将编程知识形成了各种“模块”。这种“模块”就像积木一样,通过组合、变化又可以创建出更多的变化。学生掌握的“模块”越多,越能发挥创造力,实现自己的想法。
知识“模块”就像是拼图块一样,最后拼出来的就是一整张编程知识体系。学生掌握的“模块”越多在解决问题时的方法也就越多,举一反三的能力也就越强。比如编写一个飞机大战游戏,当学生学会了主角发射子弹打中敌机的效果时,向学生提出如果敌机也会发身子弹又如何编写?两种情况有着大部分相同的代码,但又小有区别,如果学生对“发射子弹”这种效果的编写形成了知识“模块”,那么学生就可以将这一“模块”移植到敌机上。
用小“模块”堆积编写一个大型的游戏,大型的游戏又可以分成小的“模块”,这种化整为零,分步思考的能力,正是编程教育目标之一,分解思维能力,将复杂庞大的问题分解成几个小问题,分别来解决问题的思维路径。这是一个提升学生思维能力的有力途径。
6.游戏综合性强、有利培养学生多种能力
游戏的综合性强,一款成熟的游戏并不只是编写代码。还包括有一个故事背景、有角色人物的设计、交互方法的设计等等,在制作过程中也不是由一个人来完成,需要设计人员合作完成。这就需要文学故事创作、美术设计、程序设计,可以让学生在创作过程中,发挥各自的特长,分工合作,有利于分层教学。在这个过程中,教师还可以教学生运用各种音视频、图像处理软件的方法。
设计开发一款游戏,需要学生全盘的思考,有助于培养学生关注全局的思维能力,培养学生的大局观,这也正在编程课程的培养目标之一,让学生具有统筹能力,有利于学生在将来遇到其它的问题时,也能从头到尾的全盘考虑问题,不仅关注问题本身,还关注问题引发的连锁反应。
通過分工合作,不断优化的方式创作游戏,也可以让学生在学习中找到自己的归属感,培养学生的合作精神,学习与人沟通、合作的方法。对学生意志品质方面的作用也是不能忽视的。
游戏所需要的故事创作、美术设计、程序设计正好可以拓展学生的计算综合运用能力,教学中可以融合图像处理软件、三维处理软件、视频编程软件等计算机知识的学习,更全面的提高学生的计算机素养。同时可以发挥学生的特长,让文学功底好的去创作故事,让美术好的去创作人物原型、背景画面,让代码编写能力强的去优化代码,让学生发挥各自的特长。教师也可以根据不同学生的特点,因材施教进行分层教学,使得教与学双方都保持心理上的愉悦,促进课堂教学良性发展。这也是选择编写游戏作为教学内容的原因之一。
三、以“编写游戏”为内容的课程安排策略
1.注意知识点的由易到难
在教材编排上,要注意知识点由易到难,从简单易入手的游戏做起,让学生在学习到知识的同时,快速的出效果,感受成功的喜悦。不断的刺激学生的好奇心,抓住学生的兴趣,循序渐进。
2.不要挶于知识点的无缝衔接
由于采用项目式学习,教学内容为一个游戏的制作,每种游戏实现效果需要的代码是不一样的,编程的思路和结构也可能不相同。所以,首先教师要专注于当前游戏编程教学,即使涉及到更深层次知识点也不要紧,可以调整到前面来教,就是用到什么教什么。随着教学的深入,学生学习的知识越积越多,编写的游戏越来越复杂,知识点之间会有些重复、跳跃,这些都是正常的,只要教师在整个教学过程中注意查漏补缺,不要遗漏知识点。
3.重在启发、创造思维的训练
在实际教学中学生会有许多创造性的火花,他们常常会在教师教的例程上进行再加工,增加一些功能。有一次,教学生制作“弹球”游戏时,有一名学生制作完成后,增加了“砖块”,当球打中砖块,砖块就消失。一款“弹球”游戏变成了“打砖块”游戏。这就是学生思维的火花,运用自己所学进行再加工,这样的火花正是编程教育想要结果。教师要在教学中教会他们方法,引导他们找一找自己编写的的游戏在玩法上有什么不足,需要怎么改进,只有这样才能让学生具有更强的编程思维能力。
综上所述,通过教学实践,证明学生对于编写游戏的学习积极性非常高,而且具有持续性,不断增强游戏的功能、不断创作更加强大的游戏都是持续激励学生心理动力,使得学生的学习更具有主动性,保持学习热情,才能让学习更高效。在完善游戏作品的过程中,学生自己提出问题,解决问题,主动思考,有助于学生的思维训练。教师在教学中便于组织教学,在教学形式上、教学内容上更加灵活,更容易在实际教学中实施。以编写游戏作为编程教学系列课程,对于师生双方都是乐于接受的,让编程课变成一个有趣、有料的课。
(全文共4476个字)[删减580个]
参考文献
b.期刊文章:
[1] 卜晨月.程序设计与学生思维能力培养的探讨[J].林区教学,2013,3:73.
[2] 秦婧丽.小学Scratch教学中学生计算思维能力的培养策略[J]考试周刊,2016,68:120
[3] 李素若.编程类课程教学中学生创新思维能力培养研究[J]软件导刊,2013,5:180
e.电子文献:
[1] 未来之星. 风靡全球的项目式学习到底是什么?(2016-12-17)https://mp.weixin.qq.com/s/u36phh_fo66kMCtrgUQMdw?
[2] 为什么说拥有数学能力和编程思维的人更优秀(2018-07-30)https://baijiahao.baidu.com/s?id=1607396451124204311&wfr=spider&for=pc
关键词:编程;游戏;编程思维
近年来中小学生编程教育变得越来越受重视,继浙江、北京、山东、江苏等省市后,重庆市教育委员会也出台了《关于加强中小学编程教育的通知》在义务教育体系内,将编程教育纳入课程中正成为教育发展的趋势。
现目前的编程教育呈现越来越向低龄化覆盖的倾向,小学一、二年甚至是幼儿园大班的儿童都有在学习编程的孩子。现行编程课程体系百花齐放,但依然处在对编程教育的探索阶段。
小学生的年龄比较小,对抽象东西理解能力不强,好奇心强,自制力不强,这个阶段的儿童有着特定的学习特点,本文就结合教育实践来谈谈以编写游戏为载体编程课程开发的可行性。
一、现行小学编程教学情况分析
现行的小学编程教材中多数还是以Scratch这种图形化的儿童编程软为编程工具进行教学,操作方便,代码不需记忆,更适合小学生作为启蒙阶段学习。
现行多数教材缺乏系列性与连贯性,关于编程内容的安排比较零散,前后内容的相关性差,学生学习时跳跃感强,还有一些教材用解决社会问题做内容,对于小学生来说兴趣不高,理解能力也达不到。
受传统教学模式的影响,填鸭式教学思维也影响了教材的编排,都是从教师的角度出发,没有考虑过学生的兴趣需求,忽视学生的主动思考,侧重于让学生按照老师的思路去学习,为了“教”而编,很容易让学生渐渐地对编程失去兴趣,让编程变成了枯燥的记忆,使小学生对编程的产生畏难情绪。
二、为什么选择“游戏”作为教学内容的优点
1.符合学生的认识规律、学习兴趣浓
现在小学生是打着游戏长大的一代,从小就有接触手机、平板上的游戏,所以游戏是他们非常熟悉的。在我的编程教学中,主要是以用Scratch编写游戏,为教学内容,例如打地鼠、赛车、弹跳球等,学生由从玩游戏的变为创造游戏的,这种角色的转变对小学生的吸引力非常大。学生以往玩游戏的经验对学习的结果,即游戏的运行效果有清晰的认知,这让学生对的学习结果有明确的目的。如何让游戏的按照预想的效果运行,在程序编写上如何实现,成为学生学习的动力。在教学中,我发现学生在完成了自己的作品后,更容易得到心理上的成就感。小学生的想象力丰富,他们喜欢创新,多数学生会把自己的编写的游戏进行创新,让自己创作的游戏与众不同。说明学生不但兴趣浓厚,还能够激发出学生的创造力,让学生变得主动思考。
将编写游戏作为编程教学的载体,可以让学生在情感上容易接受,摆脱枯燥的学习,并且注意力会吸引在编写游戏的教学活动中,并为了实现游戏效果,形成较强的意志力,努力完成学习。最有价值的是,对程序设计的不断优化和完善都是源自学生的自我要求,自我思考,自我探索,教师在给了学生平台后,成为了学生的引路人,和知识宝库,学生在完善程序时会主动找教师来讨教解决方法,改变了以教师为中心式的填鸭教学,让学习的效率更高。
2.便于PBL项目式学习的形式开展
项目式学习是是一种以学生为中心的教学方式。通过教师引导,学生主动探索现实问题,获得更深刻的知识和技能。项目式学习和传统式学习方法相比,能有效提高学生实际思考和解决问题的能力。编写一个游戏,其实就是完成一个项目,这正好符合项目制学习的特点。一个游戏编写要分几个步骤完成,在编写的过程中,需要解决许多问题,在解决问题的过程中,教师可以引导学生梳理出各种问题的节点,组织学生在思考解决的细路及具体实现方法。
例如编写《打地鼠》游戏,教师在演示游戏效果时,可以引导学生,在编写游戏时要分几步来实现,需要几个角色,角色是如何互动的,关键的步骤在哪里?整理出需要角色有锤子和地鼠,锤子可以随鼠标运动,地鼠碰到锤子会发出被打的效果……等一系列的问题,这时教师再引导学生逐个攻破这些问题。比如锤子可以随鼠标运动,所用的命令是“当旗子被点击时,无限循环,移动到鼠标指针”,这样一步实现一个功能的学习,让学生自觉思考、自主探究成为学习主人。这样的学习过程,使学生能够由全面到具体的思考一個程序的结构、过程、关键点,对学生的提高思维能力有很大帮助。
3.选材灵活,易于组织教学
游戏的类型多样,有动作类、剧情类、益智类等,题材也比较广泛,这样在选材上具有灵活性,可以有针对性的对学生进行教学。
根据编程知识点可以针对性的设计偏重某方面知识的游戏,如编写一段音乐,可以训练学生顺序执行的方法,如要重点教学生学习判断语句,可以设计有复杂判断的游戏,如果想体现算法,可以用“打台球”游戏来学习编程中的算法。编程知识的各个方面都可以找到相应的游戏内容来体现出来,让学生为了做出想要的效果,而自觉的进行学习。
题材的多样化,也让课程的开发变得灵活,在学习编程的同时,可融入其它学科的知识,融入科学、音乐、美术、历史、地理等人文素养,使编程课程体现出文化的传承,居有文化育人的功效。
4.交互性强,可难、可易
游戏具有极强交互性,任何一个游戏从一开始就首先考虑到了人机交互,编写好一个易操作有反馈的游戏,有助于学生将来在真正用编程来解决问题时,创造一个友好易用的程序。不管科技如何进步,计算机程序的处理过程仍然还是输入、输出的过程,即接受指令给出反馈,所以在编程时就应该建立一个良好的人机互动机制。学生在编写游戏的过程中,会不断的改进人机交互的友好性,有助于培养学生在将来的程序设计中,提高程序的友好性、易用性,让程序变得更“智能”。 复杂点的游戏,需要用到的编程语法及算法多样,足以涵盖编程教学的知识点,用游戏作为教学的内容,是不用担心深度不足的。复杂的游戏是计算机编程语法、算法、结构、人机交互的综合实践,充分的演绎了计算机编程知识的各个侧重点,几手可以涵盖所有的程序设计知识。所以,以编写游戏为教学内容,不会出现知识点的遗漏,可以作为编程课程持续开展下去。在教学中,教师容易控制教学的难、易程度,这种“弹性”可以让教师在组织教学内容上游刃有余。
5.功能模块化,有利于学生发挥创造力
在教学生编写游戏的过程中,发现游戏的许多交互方法、效果实现都是相通的。角色的操作一般分为鼠标操控和键盘操控,还有角色的移动、碰撞检测、随机出现等,代码编写的方法也是基本相同的,学生掌握了这些代码的编写方法后,将编程知识形成了各种“模块”。这种“模块”就像积木一样,通过组合、变化又可以创建出更多的变化。学生掌握的“模块”越多,越能发挥创造力,实现自己的想法。
知识“模块”就像是拼图块一样,最后拼出来的就是一整张编程知识体系。学生掌握的“模块”越多在解决问题时的方法也就越多,举一反三的能力也就越强。比如编写一个飞机大战游戏,当学生学会了主角发射子弹打中敌机的效果时,向学生提出如果敌机也会发身子弹又如何编写?两种情况有着大部分相同的代码,但又小有区别,如果学生对“发射子弹”这种效果的编写形成了知识“模块”,那么学生就可以将这一“模块”移植到敌机上。
用小“模块”堆积编写一个大型的游戏,大型的游戏又可以分成小的“模块”,这种化整为零,分步思考的能力,正是编程教育目标之一,分解思维能力,将复杂庞大的问题分解成几个小问题,分别来解决问题的思维路径。这是一个提升学生思维能力的有力途径。
6.游戏综合性强、有利培养学生多种能力
游戏的综合性强,一款成熟的游戏并不只是编写代码。还包括有一个故事背景、有角色人物的设计、交互方法的设计等等,在制作过程中也不是由一个人来完成,需要设计人员合作完成。这就需要文学故事创作、美术设计、程序设计,可以让学生在创作过程中,发挥各自的特长,分工合作,有利于分层教学。在这个过程中,教师还可以教学生运用各种音视频、图像处理软件的方法。
设计开发一款游戏,需要学生全盘的思考,有助于培养学生关注全局的思维能力,培养学生的大局观,这也正在编程课程的培养目标之一,让学生具有统筹能力,有利于学生在将来遇到其它的问题时,也能从头到尾的全盘考虑问题,不仅关注问题本身,还关注问题引发的连锁反应。
通過分工合作,不断优化的方式创作游戏,也可以让学生在学习中找到自己的归属感,培养学生的合作精神,学习与人沟通、合作的方法。对学生意志品质方面的作用也是不能忽视的。
游戏所需要的故事创作、美术设计、程序设计正好可以拓展学生的计算综合运用能力,教学中可以融合图像处理软件、三维处理软件、视频编程软件等计算机知识的学习,更全面的提高学生的计算机素养。同时可以发挥学生的特长,让文学功底好的去创作故事,让美术好的去创作人物原型、背景画面,让代码编写能力强的去优化代码,让学生发挥各自的特长。教师也可以根据不同学生的特点,因材施教进行分层教学,使得教与学双方都保持心理上的愉悦,促进课堂教学良性发展。这也是选择编写游戏作为教学内容的原因之一。
三、以“编写游戏”为内容的课程安排策略
1.注意知识点的由易到难
在教材编排上,要注意知识点由易到难,从简单易入手的游戏做起,让学生在学习到知识的同时,快速的出效果,感受成功的喜悦。不断的刺激学生的好奇心,抓住学生的兴趣,循序渐进。
2.不要挶于知识点的无缝衔接
由于采用项目式学习,教学内容为一个游戏的制作,每种游戏实现效果需要的代码是不一样的,编程的思路和结构也可能不相同。所以,首先教师要专注于当前游戏编程教学,即使涉及到更深层次知识点也不要紧,可以调整到前面来教,就是用到什么教什么。随着教学的深入,学生学习的知识越积越多,编写的游戏越来越复杂,知识点之间会有些重复、跳跃,这些都是正常的,只要教师在整个教学过程中注意查漏补缺,不要遗漏知识点。
3.重在启发、创造思维的训练
在实际教学中学生会有许多创造性的火花,他们常常会在教师教的例程上进行再加工,增加一些功能。有一次,教学生制作“弹球”游戏时,有一名学生制作完成后,增加了“砖块”,当球打中砖块,砖块就消失。一款“弹球”游戏变成了“打砖块”游戏。这就是学生思维的火花,运用自己所学进行再加工,这样的火花正是编程教育想要结果。教师要在教学中教会他们方法,引导他们找一找自己编写的的游戏在玩法上有什么不足,需要怎么改进,只有这样才能让学生具有更强的编程思维能力。
综上所述,通过教学实践,证明学生对于编写游戏的学习积极性非常高,而且具有持续性,不断增强游戏的功能、不断创作更加强大的游戏都是持续激励学生心理动力,使得学生的学习更具有主动性,保持学习热情,才能让学习更高效。在完善游戏作品的过程中,学生自己提出问题,解决问题,主动思考,有助于学生的思维训练。教师在教学中便于组织教学,在教学形式上、教学内容上更加灵活,更容易在实际教学中实施。以编写游戏作为编程教学系列课程,对于师生双方都是乐于接受的,让编程课变成一个有趣、有料的课。
(全文共4476个字)[删减580个]
参考文献
b.期刊文章:
[1] 卜晨月.程序设计与学生思维能力培养的探讨[J].林区教学,2013,3:73.
[2] 秦婧丽.小学Scratch教学中学生计算思维能力的培养策略[J]考试周刊,2016,68:120
[3] 李素若.编程类课程教学中学生创新思维能力培养研究[J]软件导刊,2013,5:180
e.电子文献:
[1] 未来之星. 风靡全球的项目式学习到底是什么?(2016-12-17)https://mp.weixin.qq.com/s/u36phh_fo66kMCtrgUQMdw?
[2] 为什么说拥有数学能力和编程思维的人更优秀(2018-07-30)https://baijiahao.baidu.com/s?id=1607396451124204311&wfr=spider&for=pc