李永明(江苏省无锡立信职教中心校 江苏 无锡 214121)
程序设计课程“螺旋式”教学法探索与实践
李永明
(江苏省无锡立信职教中心校 江苏 无锡 214121)
计算机程序设计类课程是职业学校计算机专业的必修课程,学习难度大,而职业学校学生的学习能力又普遍较低,这就形成了一个矛盾,传统教学方法很难解决这个矛盾。针对这个矛盾设计的“螺旋式”教学法,采用微型教学项目,在模仿与层层递进的实践中,让学生掌握知识,锻炼应用能力,是一种非常有效的教学方法。
职业学校;计算机专业;程序设计课程;螺旋式教学法
程序设计类课程是职业学校计算机专业和其他相关专业学生的必修课程,对锻炼学生抽象思维能力具有不可或缺的作用。程序设计是“从问题到程序”的思维和实现过程,既要求掌握严格的科学方法,又要求有谨慎灵活的呈现能力。要很好地完成程序设计任务,编程者需要充分发挥聪明才智,还要有细致认真、一丝不苟的工作态度,这些特性要求学习者必须具备较高的智商和情商。而如今的职业学校学生在智商方面与普通高中学生相比有较大的差距,在态度方面缺乏刻苦学习的精神。在这种现实情况下,如何使职业学校计算机专业的学生学好程序设计课程,就成为一个值得研究的课题。
在程序设计类课程教学中,多数教师采用的是传统的教学模式,即以编程语言的语法教学为主线,教师顺序讲授编程语言的指令及各种语法格式,再举例说明使用方法。
在进行具体的编程和上机调试时,学生往往会出现无从下手或错误百出而不会修改等情况。有些学生对照着书本能做,脱离书本什么也不会。长此以往,会使学生认为程序设计课程十分深奥、可望而不可及,最终会导致学生对课程产生厌倦。即使学习完课程,学生的程序设计思路也非常狭窄,不利于学生学习兴趣的培养及思维能力、创新能力、独立分析问题和解决问题能力的提高。
近年来,部分教师开始尝试在程序设计课程中运用项目式教学法,发挥学生的主观能动性,锻炼学生的动手能力。但项目式教学法对学生综合素质提出了更高的要求,如果学生本身能力有限,项目式教学法就不能充分发挥其优势,反而会使学生无所适从。中职学校学生的基础决定了项目式教学法运用于中职教学很难取得较好的效果。
程序设计类课程由于其自身的特殊性,语法规则繁多,课程内容枯燥,不容易激发学生的学习热情,另外,语法规则难记易忘,也增加了学习难度。学习这类课程的一般方法是对需要掌握的语法规则熟悉、熟记和熟练应用。要进行程序设计,不仅需要强记语法规则,还需要转化思维,使用程序设计的思想思考问题、解决问题。如果不能转换思维方式,实际动手编程时将不知如何下手,学习的语法规则都将会成为纸上谈兵。
学习程序设计在掌握了基本的语法规则后,解决问题的具体算法是千变万化的,没有一种固定模式。有的学生照搬基础文化科目的学习方式,对教师课堂上讲授的内容和教材中的例程、习题都认真对待,在考试中也能取得不错的成绩。但任何一本教材都不可能包含程序设计的全部知识,若只满足于对教材所罗列知识的熟悉、掌握,当面对新的问题时,往往会束手无策。在学习程序设计课程,尤其是上机实验时,要善于主动发现问题和解决问题。例如,对已经完成的某个程序,若改变初始条件,程序要作哪些调整;将程序的某条语句修改或删除后,会产生什么后果;对某类特定问题,可否采用不同的算法予以解决,等等。也就是说,学习编程不应当是对知识简单地重复和掌握,而应当是对知识主动地探求和积累。这样才会逐步领会程序设计的精髓之处。
程序设计类课程本身的这些特点使得学生对程序设计类课程普遍存在认识误区,认为程序设计是一项莫测高深的技术。如果学生不准备把软件开发作为将来谋生的手段,缺乏学习动力,遇到困难很容易知难而退。
知识的学习和能力的提高是螺旋上升的。
(一)“螺旋式”教学法的主要思想
传统教学方式的教学过程是讲授知识点,然后告诉学生这个知识点能干什么,能解决什么问题。
而“螺旋式”教学法是将要学习的知识点设计成一个特殊的微型项目,这个微型项目包括若干个可以用相同方案解决但又不同的问题,教师示范第一个问题的解决方案,并在解决问题过程中分析解决问题需要用到哪些知识,传授要学习的知识点,并编程解决问题。程序设计类课程的特点决定了在学习过程中模仿的重要性。学生在了解并观察了教师的解决方案后,可以模仿教师的解决方案编程解决该项目中其他相似的问题。在模仿过程中,教师应给予相应的指导,加强学生对知识点的理解和运用,同时充分调动学生的主观能动性,训练学生自己解决问题的能力。这个过程可称之为“螺”,即在重复解决相似性问题的过程中锻炼学生基本问题的解决能力,特别适合中职学校学生综合素质较低的现状。
在“螺”的过程完成后,学生已基本掌握了要学习的知识点。此时,教师可对这个微型项目做出适当的改变,比如改变部分条件,或改变要实现的结果,在进行适当的提示之后,要求学生参考之前模仿完成的程序,根据条件的改变,编程解决新的问题。这个过程可称之为“旋”,即在“螺”的基础之上,对同一问题做出适当改变,提高解决问题的难度,使学生运用在“螺”阶段学习的知识,解决已经发生变化的问题,实现能力提升。
在这样一个个微型项目的实现过程中,学生的应用能力会“螺旋式”上升,最终能独立解决问题。“螺旋式”教学法的一个关键问题是要根据教学内容设计出适合的微型项目,在微型项目中体现“螺旋式”教学法的理念:既有重复的可训练的任务,又可以改变条件或结果,成为新的难度递增任务。
(二)“螺旋式”教学法设计案例
在 《动态网页制作》课程中学习VBScript脚本程序设计,其中学习“动态改变网页元素”的章节时,主要的知识点是:(1)事件:OnMouseOver;(2)文档对象模型:InnerText。
图1 网页原始静态页面图
图2 鼠标指向“毛绒玩具”时网页的变化图
1.设计项目。喜羊羊玩具公司网站主页上陈列了公司主要经营的四种产品:毛绒玩具、拼图玩具、交通玩具、卡通玩偶。当用户浏览主页时,鼠标指针指向页面左侧列表中的玩具种类时,在页面右侧会显示与玩具种类相关的图片和说明文字。
2.任务目标。完成动态网页设计。
3.教学过程。教师首先指导学生完成基本的静态网页设计,教学重点在VBS脚本程序设计,即当鼠标指针指向玩具列表时,能在页面上动态显示相关联的图片和文字说明。教师分析解决问题需要用到的两个主要知识点:事件和文档对象模型,然后简要说明OnMouseOver事件和InnerText的作用、使用方法。
在知识准备完成后,教师示范解决方法,运用学习的两个知识点编程实现:当鼠标指向“毛绒玩具”时,在页面右侧显示“毛绒玩具”的图片和文字说明。
教师完成解决方案示范后,要求学生模仿教师的编程方法,完成当鼠标指向“拼图玩具”、“交通玩具”、“卡通玩偶”时,在页面右侧相应位置出现该类玩具的图片和文字说明的任务。与教师演示的例子完全类似,相当于练习三次。这里不需要学生重复做教师已经演示过的“毛绒玩具”,这样学生听和做都是新鲜的内容,不易产生疲惫感。学生经过“一螺”、“二螺”、“三螺”后,应该对这两个知识点和此类问题的解决方法有非常清楚的认识,且能充分发挥主观能动性,强化了学生动手能力的训练。“螺”的过程主要训练学生的基础应用能力,在此过程中,教师可以给予较多的指导。
学生具备了基本能力后,可在教师指点下完成与教师演示问题类似但又有所差别的任务。比如,教师可改变微型项目的要求:当用户浏览主页时,鼠标指针单击页面左侧列表中的玩具种类,在页面右侧显示与玩具种类相关的图片和说明文字。注意区别:原来的要求是“鼠标指向”,现在的要求是“鼠标单击”。要求学生在原来编程的基础上实现这个新的要求,这时要用到一个新的事件:OnMouseClick,教师可以提示学生,但要求学生独立完成。这个过程就是“旋”,是能力提升的锻炼过程。
这样的一个微型项目完成后,学生就完成了一次“螺旋”,编程能力就向上迈了一个台阶。
“螺旋式”教学法在程序设计课程教学实践活动中经过较长时期的应用后,对比传统教学方式,教学效果和教学效率都得到大幅提高,这种教学方法特别适合生源基础较差的职业学校,也特别适合程序设计这类课程,学生很喜欢这种教学模式。实践证明,学生如果对所学的内容产生了浓厚的兴趣,就会由被动变为主动,由强迫学变为自觉学,注意力会变得集中和持久,观察力会变得敏锐,想象力会变得丰富,创造思维会更加活跃。在教学过程中,教师可以根据教学内容,选择优秀的软件、课件加以配合,激发学生的兴趣,使其实现自主学习。
程序设计课程的特点决定了教师应该留给学生更多的思维空间,不需要面面俱到,包办代替学生所要做的一切,应把更多的时间交给学生,让学生在实践中亲身体验创新和自学的乐趣,这样更有利于拓展学生的思维,培养学生的创新能力和学习能力。
[1]何定华,朱雄军.项目式教学法在《Delphi程序设计》教学中的实施[J].信息与电脑(理论版),2010,(2).
[2]何林锦,翟云波,李彩亭,路培.项目式实验教学模式及其可行性评价方法[J].实验室研究与探索,2010,(2).
[3]何克抗.建构主义的教学模式、教学方法与教学设计[J].北京师范大学学报,1997,15(5):74-81.
[4]戈素贞.教学设计研究与教学方法探讨[J].绍兴文理学院学报,2007,(3).
[5]杨静,王浩,方宝富,姚宏亮.程序设计课程教学改革探讨[J].吉林大学学报,2005,(S2).
G712
A
1672-5727(2011)09-0072-03
李永明(1973—),男,江苏无锡人,硕士,江苏省无锡立信职教中心校讲师,网络工程师,研究方向为计算机网络技术。