任务驱动与分组教学法在《C++程序设计》教学中的应用

2014-02-06 01:32祝元仲魏小琴何汶静
中国医学教育技术 2014年1期
关键词:程序设计分组教学法

祝元仲,魏小琴,何汶静

川北医学院医学影像学系,四川 南充 637007

C++程序设计语言课程是高等院校理工科专业的一门重要的计算机技术基础课程。但在实际教学活动中,存在两个很大的问题:

一是技术进步引起的日益增长的教学内容和有限的教学学时之间的矛盾。对于川北医学院生物医学工程专业本科生来说,该课程实际包含面向过程和面向对象编程两大方面,内容较多,而课时较少,学生学习难度较大,进而影响学生学习兴趣,导致学习效果不佳。各高校在这方面的教学研究改革不少,也取得了很多的成果,如引入任务驱动教学法[1-2],分组教学法[2-5],采用案例教学或 PBL 教学法[6-8],运用多媒体技术,网络教学平台[9-10],精简教学内容,增加学生实践时间,采取小班授课[11-13],等。但运用网络教学平台、采取小班授课往往涉及学校多部门间的合作,推广有一定的难度。

二是广泛存在作业抄袭问题。作业原本是高等教育教学活动中不可或缺的重要组成部分,学生通过作业巩固和掌握课堂上所学的知识,教师通过作业了解学生对知识的掌握程度。但在实践中,虽然双方都投入了大量的时间、精力,却未获得相应的效果。其原因在于所有学生做相同的作业,容易相互抄袭。对于学生来讲,没有经过逻辑思维的抄袭过程没有任何学习效果可言。对于教师来讲,虽然批改作业却没有达到巩固和提高学生知识的目的。各高校在这方面的探索和研究也取得了一定效果。如利用计算机技术实现自动评阅,可以大大提高作业批改效率,但无法杜绝抄袭;以“一人一题”的方式杜绝抄袭,将大幅增加教师出题和批改的工作量,不适合大班教学。故当前高校作业仍然大量采用传统方式,抄袭现象仍然存在,学生作业质量难以有效提高[14]。

解决这两个问题的思路是推动学生积极自主学习和采取任务驱动的分组教学模式。分组教学在大学课程中往往局限于实验课程[1,3,8,10],实际上,通过合理的教学设计完全可以应用在课程的各项教学活动中,同时可以在一定程度上解决作业抄袭问题。

1 教学设计

任务驱动与分组教学法的核心是教师将教学内容设计成一个个具体的、相关联的任务,由学生自主完成。其关键在于适当的教学设计,包括分析教学内容,确定教学目标,分组,活动过程管理,评价活动结果,等。

1.1 分组

通常在第一次课,通知学生根据全班人数进行分组。每5-7人一组,考虑到学生的实际情况,一般而言不宜采用随机分组或按照成绩分组[2-8]。作者采用的方式是教师引导,由学生自行协商确定每组成员,理论课与实验课采取相同的分组;以随机抽取某位组内学生代表整组学生完成回答问题、讲解作业等活动的方式,确保小组内每位学生都要参与到活动中来。

1.2 教学活动设计

教师要合理布置任务目标,任务目标如果过大,会导致内容冗长繁琐,学生无法按时完成,而任务目标过小,又会使任务失去挑战性。作者给学生布置的任务主要包括自学任务、典型例题(开发任务)、课后习题三种。得益于教学设施的改善,笔者所在单位所有教室均实现了多媒体化,能够在教室中实时编写运行调试程序,教学活动主要按以下几种方式开展。

1.2.1 自学任务 教师在下课前为学生统一布置自学任务及典型例题,学生在课后分组完成;每次上课时选派代表上台运行完成的程序,为全班学生讲解并运行,回答学生的提问;教师随机抽取其他学生提问,了解其对该学生所讲内容的理解程度。随后教师针对程序向讲解者提问,考察其对该题目及相关知识的掌握程度,在此期间他可以获得本组其他学生的帮助,以体现小组的集体性;最后教师对某些未准确回答的问题做出分析,并对某些关键点进行加强。此种方式的目的在于鼓励学生自主学习,积极参与。

例如:作者跳过了结构的讲解,在讲解了类之后再让学生自学结构,然后讲解结构与类的异同,最后教师再对结构的应用做补充说明。

1.2.2 实时任务 第二种方式是教师在课堂教学中设置一些知识点或者较小规模的程序改编或调试,然后给3-5分钟时间要求学生以小组为单位自学,接下来随机抽出某组的某位学生代表小组讲解分析过程及结果。由于是随机抽取,所以在这位学生答不上来的时候仍然可以得到所在组其他学生的帮助。最后,教师对问题做出深入分析和扩展。

例如:笔者在讲解指针做函数参数后,让学生自学引用,然后以两数交换的swap()函数为例,让学生对比C++函数参数传递的传值和传址两种方式的差异,最后教师再对指针的应用做补充说明。

1.2.3 课后作业 在教学实践中发现,学生花时间深入研究习题的积极性不高。虽然极少有学生不交作业或未完成作业,但是很多是一抄了之,即使以小组为单位要求课后习题,随机抽取每组中某位学生的作业作为整组学生每人的成绩,对于防止抄袭的效果仍是有限的。作者采取的方法是小组为单位分别布置课后习题,在分组抽查作业的基础上,每次上课随机抽取某组中某位学生上台运行完成的作业,为全班学生进行讲解;教师主要针对程序向讲解者提问,考察其对该题目及相关知识的掌握程度,在此期间他不能获得所在组其他学生的帮助,以体现他对小组的责任心和集体荣誉感;最后教师进行点评并视情况对某些共性问题做出分析讲解。

1.3 活动评价

活动评价也是保证教学效果的重要部分。小组活动的评分计入学生的平时成绩,以某学生的成绩代表整个小组的成绩,多次活动取平均成绩。此外,在评价过程中要突出在小组与小组,学生和学生之间的随机性,并强调小组的整体性,尽量保证每个学生都能参与到活动中,完成教学任务。

1.4 教学效果

在实践中,课堂教学气氛热烈,由于可以获得所在组其他学生的帮助,学生愿意主动回答、讲解问题,能够对其他学生的讲解提出质疑,极大地激发了学生的学习激情,从最初的战战兢兢,仅会运行程序,读一遍代码,到后来落落大方,讲得头头是道,进步是十分明显的。同时,作业质量也有较大改善,以小组为单位抽查作业的做法也在很大程度上改变了学生不做作业,或敷衍作业的现状。由于组内学生的督促作用,没有出现作业未完成的情况,对较难的题目学生也愿意提出来,通过教师的帮助尽量完成。

2 结语

任务驱动和分组教学法实施中的要点在于学生讲解,这也体现了学生的主体地位。评价学生完成任务和作业的好坏不能只停留在纸面上,要求他们做出程序来,讲出来,对学生而言印象要深刻得多。就最极端的情况而言,学生抄袭别人的程序,但现在他必须看懂并讲解清楚,这比他仅仅抄写一遍,其效果不可同日而语。这也是笔者采用这种方法的初衷。

任务驱动和分组教学法实施中另一个需要教师注意的问题是,学生的参与占用了较多课堂时间,所以教师在任务目标的制定中应有统一的规划,精简教学内容,加强课外辅导。笔者采用了这样一种方法,除了常见的将课件、参考资料等置于校园网上外,加入学生的QQ群,或者学生加入教师的QQ群,除了在线解答问题以外,还可以进行实时远程程序调试。

从4年来实行任务驱动与分组教学法的情况来看,我们认为这种方法弥补了传统教学方法上的不足,也能很好地培养学生的自学能力、动手能力和团队精神,在提高教学质量上取得了初步成效。为了让这种教学方法能更有效地运用到C++程序设计乃至其他课程教学中,我们还需更进一步的探索和实践。

[1]魏小琴,祝元仲,冯元元.任务驱动与分组教学法在《C++程序设计》实验教学中的应用研究[J].信息与电脑,2012,(7):36-37

[2]何汶静,祝元仲.分组教学模式的探索与实践[J].当代医学,2011,17(1):159-160

[3]魏小琴,祝元仲,冯元元.C++程序设计开放性实验教学的探索与实践[J].信息与电脑,2012,(3):127-128

[4]陈向阳.C程序设计中的分组教学[J].科技资讯,2011,(7):164-165

[5]杨兆楠,张枢,冯福生.机械工程及计算机专业程序设计课程分组教学方法探讨[J].煤炭技术,2013,32(2):206-207

[6]史金成.案例教学法在C程序设计教学中的应用[J].宿州学院学报,2010,25(5):107-109

[7]刘井莲,赵卫绩.C++教学改革与探索[J].赤峰学院学报:自然科学版,2012,28(9):209-210

[8]徐一秋,王立伟,王海波.PBL教学法在C程序设计实验课教学改革中的应用[J].计算机教育,2010,(21):93-95

[9]程宁,程全洲.C++专业课程教学中多媒体与传统教学法的优化结合[J].南阳师范学院学报,2012,11(3):119-121

[10]陈婷.C语言程序设计实验教学改革探究[J].实验技术与管理,2010,27(10):182-184

[11]丁海燕.计算机专业高级语言程序设计课程改革方案[J].云南大学学报:自然科学版,2010,32(S1):387-390

[12]李立刚.非计算机专业C++程序设计语言教学改革[J].中国石油大学胜利学院学报,2011,25(1):65-67

[13]胡慧.《C语言程序设计》教学探索与实践[J].电脑学习,2010,(6):78-80

[14]何汶静,陈晓文,祝元仲,等.医学院校理工类课程作业质量调查与分析[J].中国医学物理学杂志,2013,30(1):3954-3957

猜你喜欢
程序设计分组教学法
批注式阅读教学法探究
基于Visual Studio Code的C语言程序设计实践教学探索
实施“六步教学法”构建高中政治高效课堂
从细节入手,谈PLC程序设计技巧
分组搭配
怎么分组
高中数学实践教学法的创新策略探讨
分组
高职高专院校C语言程序设计教学改革探索
PLC梯形图程序设计技巧及应用