摘要:Scratch是当前众多中小学教师用来进行编程教育的可视化编程教学软件。在基于Scratch的中小学生编程教学中,如何设计课堂教学活动以激发中小学生对编程课堂的兴趣、提高学习满意度,并能够做到在“玩中学”培养学生计算思维和编程思维能力成为诸多教育学者深入思考的问题。因此本研究提出将结对编程模式融入Scratch教学中的原因和方法,并以《装饰画艺术创作》游戏为例进行课堂实例设计,以期为开展编程教育的工作者提供借鉴和参考,为编程课堂改革提供新思路。
关键词:结对编程;Scratch教学;教学活动设计;教学实践;艺术创作
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2020)27-0079-03
开放科学(资源服务)标识码(OSID):
人工智能时代的来临让我们意识到了编程教育的重要性,编程能力已成了智能时代一项重要的技能,而如何有效培养学生的计算思维和提高学生编程能力成了诸多国家和学者关注的问题。近年来,国务院和教育部发布有关于人工智能时代发展规划和教育信息化发展的相关通知中,要求在中小学阶段开设人工智能相关课程,逐步推广编程教育[1]。随之各地政府积极地响应,将编程教育纳入教学体系中,全国掀起编程教育大潮。在国内,诸多城市都在尝试在学校开设编程教育课程和人工智能相关课程,例如,2017年,山东省不仅在使用的信息技术课程教材中加入了编程的相关知识,还将Python编程基础纳入高考的内容体系中。从2018年至今,中国还出版了诸多关于中小学人工智能的相关教材,并且在上海嘉定等区域进行试点教学,对有關授课教师进行相关的培训。智能时代要求学生具备计算思维、批判性思维和解决问题的能力,无论是国家还是各省一系列的相关政策,都表明未来推广中小学生的编程教育是教育工作者一项重要的任务。
Scratch作为一种可视化的编程工具,对于中小学的编程初学者来说,它操作简单并且可以很直观地看到作品效果,学生可以通过拖曳拼接积木的方式实现自己创新的想法,激发了学习者的学习兴趣。在中小学进行编程教学的目的并不是要让学生学会敲代码或者只是为了考试,而是要通过学习编程培养学生分解问题和解决问题的能力。因此,传统的教学方法只是灌输式的传授给学生知识不利于发挥学生学习的主动性,而且更容易引起学生的抵触编程的心理,这样的教学方式不适合用于编程教学课程。结对编程是一种编程模式,是学生两两合作,学生通过合作能够互相发现各自程序的错误,并且能够提出改进的建议,在交流的过程中,学生不仅能够提升自己的表达能力,还能够将同伴的知识与自己所学的知识融合。在获得知识的前提下,结对编程还能够提升学生对学习编程的满意度。
1 文献综述
1.1概念界定
Laurie Williams认为结对编程(Pair Programming)是一个编程模式,是指两个程序员肩并肩地坐在一起共用一台电脑,面对同一个显示器,使用同一个键盘,同一个鼠标一起工作[2]。结对编程可以说是最小单位的团队合作,是两个人的共同合作,其中一个人称为“驾驶员”,“驾驶员”负责编写代码,控制电脑和键盘,另一个人称为“导航员”,“导航员”不需要控制电脑、键盘和鼠标,而是负责坐在旁边审查“驾驶员”编写的程序,并能够提出相应的建议来与“驾驶员”进行讨论。在这个结对的过程中,“驾驶员”和“导航员”必须在规定的时间或节点转换角色,这是结对编程中必不可少的环节。
Scratch是由美国麻省理工学院开发的一款可视化编程工具,它主要面向7-12岁的青少年。诸多研究表明,Scratch工具在降低学生认知负荷、提升学习兴趣以及提高编程思维等方面具有明显的优势,更适合中小学生的认知水平[3]。传统的编程语言,例如,C、JAVA、Python等需要在脚本区逐行地编写代码,而Scratch中的程序是用一块块积木的方式呈现的,学生可以直接通过拖拽的方式在积木区找到已定义的模块拖至脚本区即可将它们拼接完整。Scratch摆脱了命令复杂、逻辑思维十分抽象的传统编程工具,并通过图形化编程的方式帮助中小学生从具体形象思维慢慢转向逻辑抽象思维。
1.2结对编程研究现状
1996年,Kent Beck.Ward Cunningham和Ron Jeffries -起提出了极限编程,其中包含了结对编程,极限编程能够成功进行的一个关键实践是结对编程,结对编程保证了程序的高质量[4]。极限编程在软件开发领域的广泛使用,促使了教育工作者发现了结对编程,并开始进行了研究,例如,在2001年LaurieWilliams开展的教育实验表明了运用结对编程学习不仅能够增加学生对学习编程的满意度和自信心还可以减少教师的工作量[2]。
国外有诸多教育学者将结对编程的编程模式融入计算机科学的程序教学中,研究表明,结对编程对编程教学有以下意义:1)结对的学生会担心和自己一组的小伙伴失望,所以更加专注地做任务;2)在合作伙伴的帮助下,程序员能够编写更高质量的代码;3)结对的学生对完成任务更有信心,并减少了学习编程的挫败感;4)结对编程能够减少教师的工作量;5)与单独编程的学生相比,结对的学生交作品的速度快且质量高[5]。
2 基于结对编程的Scratch教学活动设计
2.1 教学对象分析
课程教学的对象是小学4年级的学生,在计算机的操作方面,他们能够使用计算机在Scratch软件上进行创作。在认知能力上,7-12岁的学生处于具体运算阶段,这个阶段的学生只能通过一些具体的事物或物体来进行运算,从而使他们逐步从具体转向抽象思维,所以在教学内容的选择上不仅仅要满足他们好奇心强,乐于接受新奇、趣味性强的事物的特点,还必须能够激发他们潜在的能力。如果只是单纯的学习编程知识然后模仿教师的操作会比较枯燥无味,可以通过结对的方式来让学生协作动手完成作品,提高学生知识交流的能力,激发他们的学习动机,培养他们合作的意识。
2.2 教学目标分析
1)知识与技能:掌握“图章”程序的功能;掌握案例编程思路并能够表述清楚;能够熟悉运用“绘制”工具绘制角色。
2)过程与方法:能够发挥自己的想法并结合同伴的想法制作作品;在合作的过程中,能够灵活运用同伴提供的建议,做到举一反三。
3)情感态度与价值观:激发想象能力,培养创新思维;能够体验到使用结对编程进行协作的乐趣,增强学习编程的热情。
2.3 教学过程设计
装饰画艺术创作这节课无论是对编程初学者还是有编程基础的学生都有很大的吸引力,学生可以通过自己绘制一个角色并不断地修改参数值都会看到不一样的效果。教学目标主要是激发学生学习编程的兴趣、提高学习满意度和促进学生之间的合作交流。对于此课程,我将采用结对编程的模式进行教学,教学过程分为了以下七个环节:
1)进行结对分组
学生可以选择自己想要一起合作的伙伴进行结对,有助于他们之间的交流,而对于找不到合作伙伴的学生,教师需进行干预,根据学生的性格、成绩等进行结对。这一环节的设计意图是为了让学生掌握结对编程的原则,并在整节课中这样的结对关系一直保持不变。
教师活动:教师组织学生结对就座,讲解结对编程的规则,并给予5分钟的时间让学生找到结对的同伴和想好团队的名字。
学生活动:选择自己想要一起合作的伙伴进行结对,结对之后两人一起讨论团队的名字。
2)案例导人
通过幻灯片的方式展示作品最终实现的效果,这一环节的设计意图是为了引起学生的思考,激發学生学习的主动性,同时能够让学生明确本节课的学习目标。
教师活动:教师展示自己做好的装饰画图片,询问学生“这些图片看起来有什么奇特的地方”,并告知学生,今天这节课他们需要发挥他们的想象力制作不一样的作品。展示作品如图1所示。
学生活动:学生思考并回答问题,即同一个图形颜色变化、图形大小变化等,并大概了解这节课的任务。
3)针对案例.提出问题
通过这个案例,向学生提出问题,引导学生主动深入思考案例作品的设计和通过画思维导图展示编程思路,并给学生提供和同伴交流的时间,之后分享他们要实现作品效果的解决方法。这一环节的设计意图是提升学生解决问题的能力、与同伴沟通交流的能力。
教师活动:教师展示其中一个作品,询问学生“在角色面板中有几个角色?”“如何将一个图形变成这么多个相同的图形?”“如何让他们在不同的位置显示出来?”“如何实现舞台上的效果?”通过设计问题,引导学生分解问题,最终能够获得解决问题的方案。教师展示作品如图2所示。
学生活动:学生积极与自己结对的伙伴进行讨论,思考提出的问题并合作画出思维导图,最后分享他们解决问题的方案。
4)讲授新知,分解问题
结合学生分享的解决方案,讲授案例作品核心知识点,通过电子教室广播功能的方式向学生展示编程的过程。这一环节的设计意图是为了让学生学习新的知识,并且能够发现自己解决方案中的问题,及时的进一步完善。
教师活动:教师在提出之前的问题“如何将一个菱形变成六个菱形”时,学生很容易想到的是“对菱形进行复制、粘贴”,接着教师引导学生学习“图章”指令,并详细讲解“图章”的概念,通过电脑广播的功能向学生展示“图章”指令的效果,先将“图章”程序拖曳到脚本区,点击“图章”积木,询问学生“发现舞台上有什么变化吗?”这时候在舞台区拖动图形,就可以看到了一个一模一样的图形,引导学生理解“图章”程序的作用。
学生活动:学生思考问题,在这个过程中需要理解“图章”指令的作用,并指导如何应用它实现作品的效果。
5)基于案例,结对练习
学生需要按照结对编程的方式进行角色扮演,一个作为“驾驶员”,一个作为“导航员”,并在一定的时间内互换角色。在结对编程的过程中,“驾驶员”需要按照老师的要求编写程序,“导航员”负责坐在“驾驶员”的旁边审查“驾驶员”的操作。这一环节的设计意图是让学生之间能够交流,不仅锻炼他们问题解决能力,而且他们的沟通技巧也会有所进步。
教师活动:在学生进行结对练习的过程中,教师需要引导他们和同伴进行交流,观察学生学习的情况,并且对学生经过交流但是未解决的问题给予引导式的帮助。
学生活动:进行结对练习,与同伴交流讨论。两人之间需要沟通互换角色的条件,是完成某个任务节点互换,还是在一定的时间内互换。
6)结对自主探究
结合给定的教学内容,给已经完成封闭式任务的小组布置半开放性的任务,鼓励学生能够在完成模仿教师编程的基础上发挥自己的想象力进行再次修改和创作。这一环节的设计意图是为了发挥学生的创造力,引发学生主动思考。
教师活动:教师再一次展示自己的作品(如图2),询问学生“从老师展示的图案中,你获得了什么灵感吗?”“观察这些图案,哪位同学可以找到他们身上的特点?”,并告知学生,可以结合同伴和自己的想象力,制作属于他们的作品。
学生活动:学生纷纷和教师分享自己的灵感以及观察到的现象,并与同伴结对进行二次创作。
7)作品分享与评价
教师组织开展评价活动,学生分别展示他们结对的作品,分享编程思路,教师进行点评。这一环节的设计意图是为了让学生表达他们这节课的收获,让学生对自己的小组成员进行评价,在这个分享的过程中,其他同学也可以从中学习一些优秀作品的设计,也可以改善自己与同伴沟通交流的方式。
教师活动:教师组织开展评价活动,并指出学生作品的优缺点以及在哪些方面还可以继续去加工和完善。
学生活动:学生分享结对完成的作品,并分享自己作品的设计思路。
3 使用结对编程模式在课堂教学中的建议
1)在使用结对编程模式进行教学时,可以先向学生介绍什么是结对编程,以及为什么要这么做,并向他们说明结对编程的规则。采用自由结对或半自由结对的策略配对好之后,可以给学生3分钟的时间想出他们的队名,让他们感觉自己像一个团队。
2)制定一个相互尊重的规则
①尊重同伴的想法。当“驾驶员”听到了“导航员”的建议时,可以先完成自己的想法或者任务,之后会对“导航员”的建议进行讨论或采纳同伴的建议。
②尊重同伴的个人空间。让学生知道在“驾驶员”在进行程序编写时,“导航员”是不能操控电脑和鼠标的,这样是违反结对编程规则的,“导航员”应该用口头的方式与“驾驶员”讨论交流,这能够让“导航员”再次建构自己的知识。
③尊重自己的角色。每个学生都应该尊重自己所扮演的角色,“驾驶员”就是“驾驶员”,“导航员”就是“导航员”,除非到了正式交换角色的时间,否则学生不应该放弃自己角色的工作,如果遇到问題与同伴讨论后没法解决,可以询问教师或者助教。
④尊重自己的班级。同伴之间在进行讨论时,只允许在自己的组内进行讨论,以免干扰其他的团队,如果有争议需要大量的讨论时,他们可以通过写在纸上梳理之后进行交流。
4 结束语
通过将结对编程融人编程课堂教学中,可以促进学生之间的交流,提高学生对课堂的满意度,学生可以通过组织表达语言的过程再次建构自己的知识,获取知识的学生可以加深对知识点的理解,弥补了传统课堂教学中学生被动接受知识的缺陷。
当前,国内外越来越重视在中小学阶段培养学生的计算思维能力。本研究通过将结对编程与Scratch课程结合,以培养学生计算思维和激发学生学习动机为核心设计课堂教学活动,为中小学信息技术教师开展编程教学活动提供了新思路。
参考文献:
[1]教育部办公厅.2019年教育信息化和网络安全工作要点[EB/OL].( 2019-03-01) [2020-02-20]. http://www. moe. gov. cn/src-site/A16/s3 342/201903/t20190312_3 73147 .html.
[2] Laurie Williams, Robert R.Kessler and Ward Cunningham.Strengthening the case for pair programming[J]. IEEE Soft-ware, 2000,17(4):9-25.
[3]傅骞,解博超,郑娅峰.基于图形化工具的编程教学促进初中生计算思维发展的实证研究[J].电化教育研究,2019(4):122-128.
[4] Kent Beck, Cynthia Andres.Extreme Programming Explained:Embrace Change, Second Edition[Ml.Addison-Wesley Profes-sional,2004.
[5) Alistair Cockburn.Laurie Williams.The costs and benefits ofpair progTamming[M]. Addison-Wesley Longman PublishingCo., Inc.,2001.
[通联编辑:王力]
作者简介:黄琼梅(1995-),女,海南儋州人,硕士,主要研究为中小学信息技术教学。