胡瑞鹏
摘要:本文根据《C程序设计》课程特点,并且以具体案例处理为例,阐述了多层次任务驱动教学模式在本课程教学中的应用,着重探索了该教学模式必须把握的关键环节,并通过合理的教学内容设置,促进“教”与“学”相辅相成、和谐统一,以达到提高学生的学习兴趣和综合应用能力。
关键词:多层次任务驱动;C程序设计;教学模式;教学任务
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2015)28-0134-02
《C程序设计》是高校各类学科专业中都至少开设的一门程序设计语言课程,也是计算机专业的学生进一步学习其他程序设计课程的基础。课程教学的目的是使学生领会程序设计的基本思想与方法,具备运用计算机求解实际问题的能力。但是传统的教学方法往往以教师、课堂为中心,缺乏与学生的互动,不利于学生主动性的发挥。笔者结合自己多年在从事这门课程的实际教学过程中出现的具体问题和情况,探索出着重于“以学生为中心、以任务为总线、以能力为本位”的多层次任务驱动的教学模式。
一、多层次任务驱动教学模式
所谓“任务驱动”就是在学习知识的过程中,学生在教师的帮助下,紧紧围绕一个共同的任务活动中心,在强烈的问题动机的驱动下,通过对学习资源的积极主动应用,进行自主探索和互动协作的学习,并在完成既定任务的同时,引导学生产生一种学习实践活动[1]。“任务驱动”是一种建立在建构主义教学理论基础上的教学法[2]。它要求“任务”的目标性和教学情境的创建,使学生带着真实的任务在探索中学习。任务驱动教学法适用于培养学生的创新能力、独立分析问题和解决问题的能力。而多层次任务驱动教学模式与任务驱动教学相比较,任务的设计更注重学生的个性特点和认知能力,遵循由浅入深、由表及里、循序渐进等原则,避免呆板的“填鸭式”讲授,以学生为中心,设身处地地为学生着想,预见性的设计任务。各层次任务和教学目标设置如图1所示。
二、多层次任务驱动教学法在《C程序设计》课程教学中的应用
《C程序设计》课程内容包括数据类型、运算符与表达式、三大结构(顺序、选择、循环)、数组、函数、指针、文件等。每一个教学内容都可以设计成一个子任务,每一个子任务组合在一起就是一个完成的任务,也就是要求学生在学完这几个教学内容后能将子任务组合成一个大的整体的任务。结合本课程的实际教学,以“杨辉三角形”这个具体案例来讲授“二维数组”这一教学内容,按多层次任务驱动教学的模式进行教学行为、教学任务的划分。
第一层:基本任务。教师:给出第一个4*4的矩阵,要求学生观察该矩阵的构成特点。学生:通过观察和讨论,发现该矩阵的构成特点:有4行4列,并且每个元素的值均为1。老师:提出问题。运用以前的知识点可否实现该4*4矩阵的赋值。学生:可以运用前面学过的一维数组或普通变量、循环结构等实现。老师:分析学生实现语句的优劣,引出二维数组这个概念,介绍二维数组的定义、元素表示方法,赋值、输出等,并指出运用二维数组解决此类问题的优势。实现语句如下:
for (i=0;i<4;i++)
for (j=0;j<4;j++)
a[i][j]=1
第二层:案例任务。教师:给出第二个4*4的矩阵,要求学生观察该矩阵的构成特点。学生:通过观察和讨论,发现该矩阵的构成特点也是4行4列,但只给出对角线下半部分元素赋值。老师:提出问题。运用新知识点“二维数组”以及以前的知识点,如何实现该4*4矩阵的赋值。学生:可以运用刚介绍的二维数组、循环结构等实现。实现语句如下:
for (i=0;i<4;i++)
for (j=0;j<=i;j++)
a[i][j]=1
第三层:设计任务。教师:给出第三个4*4的矩阵,即“杨辉三角形”,要求学生观察该矩阵的构成特点。学生:通过观察和讨论,发现该矩阵的构成特点为:如第一列元素和对角线元素赋值为1,其他每个元素按规则a[i][j]=a[i-1][j]+a[i-1][j-1]赋值。老师:提出问题。如何给“杨辉三角形”的第一列和对角线元素赋值?如何给其他元素赋值?如何输出“杨辉三角形”?学生:加深对二维数组理解,利用二维数组、循环结构等实现“杨辉三角形”的赋值。第一步:给第一列和对角线元素赋值为1,实现语句如下:
for (i=0;i<4;i++)
{ a[i][0]=1;
a[i][i]=1;
}
第二步:给“杨辉三角形”中的其他元素赋值,此时可借鉴第二层任务中操作,稍加修改即可实现语句如下:
for (i=2;i<4;i++)
for (j=1;j
a[i][j]=a[i-1][j]+a[i-1][j-1]
至此,有关二维数组内容的“杨辉三角形”这个经典的问题得以实现,并且以任务驱动的模式,循序渐进地引导学生理解并解决了这个问题。
第四层:创作任务。此阶段,教师布置课外作业,鼓励学生以组为单位,讨论并实现所布置的创造任务。创作任务如下。
第五层:任务评价。老师:总结创作任务中出现的新算法和算法实现技巧,逐一评价每组学生运用适当和不当的地方。学生:学生之间也可以相互评价,并且需要在评价中收获经验。
三、多层次任务驱动教学过程中必须把握的几个关键环节
(一)要合理设计多层次的教学任务
在教学过程中,教师应认真把握教材,分析学生的认知水平和理解能力。根据每章内容设计出一个大任务,再将它分成几个子任务。每个子任务中将教学知识与技能训练包含进去。任务的提出首先要有综合性,它应该把旧知识和新知识融入进去,使学生既能学到新知识,又能巩固旧知识,还能综合运用新旧知识。其次任务要在基本知识点的基础上具有可拓展性,以满足不同层次学生的需求。
(二)科学有效地改革课堂教学
在教学实践中,教师应以学生为本,科学、有效地进行课堂教学改革,使学习方式更符合学生特点和认知规律,使课堂教学过程真正成为教师与学生之间有机的互动过程,真正成为教师引导学生进行有效活动的过程,真正成为师生共同发展的过程。
(三)培养学生的创新能力、实际动手能力和发散性思维能力
正确把握教学中的“教、扶、放”的关系,把科学的思维方法纳入到学生的认知结构中去,使学生产生更广泛的迁移,以教法启发引导学法,多方法、多角度、多层次地培养学生主动参与学习的能力和应用能力。例如在课堂上有针对性地对个别学生的程序进行评价,同时也可以组织学生进行互评、相互讨论、交换观点,吸取优秀程序的精华,并对自己的程序反思,以激发自身的创新力,进而达到相互学习的目的。
四、结语
在运用多层次任务驱动讲授《C程序设计》课程时,教师要明确教学目的,全面考虑学生的实际情况,针对不同层次的学生精心选择和组织不同的教学任务,更新教学方法,并对其过程和结果进行客观、科学的评价,这样才能达到“任务驱动”的实际意义,最大程度地调动学生的动手能力、思维能力和设计能力,从而培养出具有自主性、创造性及协作精神的技能型人才。
参考文献:
[1]王沛,康廷虎.建构主义学习理论述评[J].教师教育研究,2004,(5):17-21.
[2]谭浩强.C程序设计[M].第四版.北京:清华出版社,2010.