摘要:程序设计有助于学生创新能力的培养。兴趣是培养学生程序设计能力的前提,传统算法与程序设计教学过分注重语法知识的讲解,在激发学生对编程的兴趣,培养编程能力和创新思维等方面存在不足。本文介绍了几种游戏化教学的方式,并与具体的教学内容相结合,极大地增强了中学算法与程序设计课堂教学的表现力,强烈地激发了学生的兴趣。
关键词:课堂角色扮演 flash动画游戏 编程游戏 电子宠物
普通高中课程标准信息技术实验教材包括信息技术基础必修模块和五个选修模块,在选修部分的五个模块中,“算法与程序设计”模块是作为计算机应用的技术基础设置的。学习该模块的目的是使学生在原有基础上进一步体验算法思想,了解算法和程序设计在解决问题的过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现解决问题的算法。
江苏于2005年进入普通高中新课程实验,第一轮的选修课我校与周边几所学校选择的是教育科学出版社出版的普通高中课程标准实验教科书《算法与程序设计(选修)》(以下简称教科版《算法与程序设计》》),在一学期的教学实践中,我们不断地领会课标精神、研究教材和教法,积极开展教学实践活动。一学期下来,我们有不少收获,也有不少困惑。现予以整理,以期与诸位同仁交流。
一、教科版《算法与程序设计》的特点
1. 以课标为准绳,结构合理,层次分明,贯穿实践
教科版《算法与程序设计》以《普通高中技术课程标准(实验稿)》为依据进行编写,分章、节、目三个层次顺次介绍教学内容,每章以情境创设开始,进行主题点拨,以激发学习与实践的动机。教材内容在展开的过程中设置多样化并前后呼应的实践项目,以导引教学活动的具体实施;章末设置综合实践,形成连续整体,以把活动的总结、归纳与提升有机结合起来。如教科书从第45页开始以“明日之星英语演讲大赛”为主题,顺次讲解了数据的分组、排序和相应的软件开发问题。
另外,教科书还附有一张配套光盘,内容以教学活动中可能直接用到的资源为主,包括图表、一些程序的源代码等,在教科书中使用“见光盘”或“打开光盘”等字样明确标识。此外,还提供了一些学习所需的拓展性资源,供师生在学习活动中参考。
2. 精心设计活动任务,合理利用评价机制
教科版《算法与程序设计》选择简单易学而又能反映当今程序设计思想和方法的VB 6.0作为程序设计语言,从简单的活动任务讲起,精心选择课程内容,逐步深化,如从初试编程到几种重要算法的介绍,再到程序设计的思想方法和软件的开发。活动任务的设计力图分别联系城乡学生不同的生活经验,如教科书第43页的实践1和实践2。
合理的评价机制可以帮助学生更好地了解自己的学习状况,改善学习效果。本教科书也注意到了评价在促使学生总结与反思方面的作用,如第93页的实践2的初衷就是为了促使学生之间相互交流,从而更好地了解自己的学习状况。
3.注重培养学生的人文素养,内容新颖且有一定的趣味性
算法是解决问题的方法和步骤,是程序设计的灵魂。实际上,很多事情中都蕴含着算法思想,如韩信点兵问题、水仙花数问题、百钱百鸡问题、汉诺塔问题等。这些趣味问题中不仅蕴含了丰富的算法思想,还为学生描述了问题形成的文化情境,能够激励学生进一步了解人类丰厚的文明成果。
而以“新北京 新奥运”为主题介绍Print语句的用法,以神舟五号载人飞船为主题讲解选择结构,不仅能够使学生紧密联系生活实际,还能够巩固学生对物理知识的学习。
尽管教科版《算法与程序设计》具备上述优点,在教学实践过程中也发现不少令人困惑、需要应对的问题。
二、教学实践中存在的问题
在我国信息技术课程发展史中,“程序设计”一直占据着不可或缺的重要地位。但在教学实践中,它却是难教、难学的课程之一。之所以难教难学,有如下几个相辅相成的原因。
首先是高中学生的起点水平参差不齐。很多学生在升入高中前,并未接触过算法的相关知识。高一在必修课中虽然已经初步接触过算法,但无论是从对编程语言的掌握,还是对编程思想的体会上来说,还是处于很初级的阶段。
其次,教学内容多而教学课时有限。众所周知,高中学生的课业繁重,课余时间很少能用来学习“算法与程序设计”,而要想只利用每周两学时的课上时间领会算法思想,能初步使用一种程序设计语言编制程序实现解决问题的算法,对老师和学生而言都是一个不小的挑战。
最后,程序设计本身严密的逻辑性和程序设计语言的枯燥容易使学生慢慢失去深入学习编程的兴趣。教科版《算法与程序设计》虽然在内容讲解和案例选取方面尽量注意内容的新颖和趣味性,尽量循序渐进,由浅入深,但它还是无法回避学科本身的这一特点。
三、探索应对策略
为了克服教学实践中存在的上述问题,笔者结合中学生好奇心强、活泼好动、表现欲强等特点,尝试运用多种教学方式,尽量在教学中体现学生的主体地位,从而提高学生的学习能力、学习兴趣等。笔者认为如下几种方法可以对解决问题有所裨益。
1.扎扎实实落实教材的基本要求
教科版《算法与程序设计》结合具体实例展开正文内容的讲述,在教学中要让学生多分析、多操作、多体验,在做中学,在学中做。此外,对于难度不同的实践和综合实践题目,有些与正文叙述相辅相成,是必须完成的,教师要指导学生完成;有些难度较大,可供部分学有余力的同学选做。
2.课堂角色扮演
课堂角色扮演是指在教学中由教师根据学生的特点,对教师及学生进行角色设定,根据教学内容设计规定动作,指导学生进入角色,领悟“剧情”,完成规定动作和自选动作。课堂角色扮演可以激发并保持学生的学习兴趣,启迪智慧,加深学生对问题的理解。
(1)应用实例
在学习教科版《算法与程序设计》3.4.1节的冒泡法排序时,我首先挑选7位身高不等的同学随机站成一排,首先让他们逐个比较身高,最高个站在最右边,然后在剩下的6位同学里面挑出次高个,以此类推,直到他们从左到右按照个子从低到高的顺序排好。学生通过参与这种角色扮演,短短几分钟,冒泡排序的过程便牢牢印在脑海中。
另外,在讲授2.3.3节的For循环结构时,我选取了五位学生,分别扮演变量i、j、Tab函数、Print方法和输出控制点,每位学生戴上一顶写着自己所扮演角色的名字。每位同学上台后首先来一段独白,说明自己的身份和作用,比如“i”上台时说:我是外循环变量i,我负责管理控制点所在的行数,我叫它打几行它就打几行。每位同学都介绍完后,开始表演程序的实际执行过程。
(2)应用效果
有些角色扮演活动需要老师课前指导学生做好准备,才会取得比较好的效果,如上述第2个角色扮演活动。总的来说,角色扮演具有如下作用。
①促进了教师教学思维的转变与教学技能的提高
老师暂时由台上“下放”到台下,坐在学生中间,有利于教师体验学生的感受,站在学生的角度去理解教学,通过学生这面镜子,发现并认识自身的不足,增强师生间的交流与沟通。
②有利于学生学习能力的突破
参与表演的学生不仅对知识要知其然,还要知其所以然,并要以适当的语言予以表达,其间学生由被动的接受知识逐步转变为主动探究知识。为了表演成功,表演者会在课前进行充分的准备,如围绕表演内容收集资料,与老师和同学探讨表演方法等。在准备表演的过程中,学生的学习能力可以得到明显的提高。
③有利于培养学生的学习兴趣
多一种教学形式,学生对学习就多了一份兴趣。在实施角色扮演的过程中,台下观众时有心领神会的笑声,因为表演者的语言和行为贴近他们的生活,生动、有趣、引人注意,让人倍感亲切、印象深刻。
④有利于培养学生的责任感
心理学家莫雷诺认为,角色置换是一种心理技术,它让人暂置身于他人的社会角色,并按照这一角色所要求的方式、态度行事,以增进人们对他人社会角色及自身角色的理解,从而更有效地履行自己的角色。当学生走上讲台时,他们会觉得自己作为课堂的主人,肩上负着重担,也深深地感觉到老师的不易,学会了尊重老师的劳动,明确了自己作为学生应该担负的责任。同时,师生的角色互换与体验,可以使师生感情日趋融洽。
虽然角色扮演不失为一种效果卓著的教学方式,在哪些内容适合采用角色扮演,如何扮演更有效等方面还需要我们持续不断的探索。
3.Flash动画游戏
Flash动画游戏体积小,交互性强,开发周期短,画面和结构简单,容易与课程内容紧密结合,容易激发学生的兴趣,让学生在轻松愉快的氛围中学习。
笔者认为有如下几种类型的Flash动画可以应用于“算法与程序设计”课程的教学中。
(1)智慧技能型
例如,在讲述算法的概念之前,可以先让学生完一个智慧技能型的Flash游戏“野人过河”。该游戏的规则是:有三个野人和三个书生过河,河里有一条船,船一次最多只能载两个人,当野人数量超过书生时,野人就要将书生吃掉。学生对这个游戏会非常感兴趣,学生会在兴致勃勃地玩游戏的过程中找到多种渡河方法,教师此时趁机引出算法的概念,指出算法就是解决问题的思路和方法。
(2)益智型
利用益智型的Flash动画游戏可以帮助学生加深对一些VB语句的功能的理解。如在学习Tab函数控制输出位置时,可以编制一个具有交互功能的Flash动画。将输出界面做成表格形式,标明行号和列号,学生可以根据屏幕呈现的Print Tab()语句选择合适的输出位置,选择正确即可得分,否则将发出“回答错误”之类的提示信息,然后由学生重新选择答案。
(3)演示型
如在学习教科版《算法与程序设计》3.4.1节的冒泡法排序时,除了角色扮演之外,笔者还让学生动手操作一个简单的演示型Flash动画,程序界面如图1所示。

图1 冒泡法排序主界面