任务驱动教学法在JAVA程序设计课程中的应用

2012-04-29 00:44黄洪赵小敏张繁叶蕾王奔
计算机时代 2012年4期
关键词:Java程序设计计算机课程任务驱动教学法

黄洪 赵小敏 张繁 叶蕾 王奔

摘要: Java程序设计语言发展快、应用广,已成为国内外高校实施计算机程序设计教学的主流课程。然而,在Java程序设计课程的教学中存在不少问题,其中最主要的问题是教学方法问题。实践证明,传统的满堂灌教学方法不能激发学生的学习热情和主动学习的积极性,严重影响教学效果和学生编程能力的培养。鉴于此,介绍了在Java程序设计课程中应用任务驱动教学法的改革思路、实施方案、实施过程、取得的成效和体会。

关键词: 任务驱动教学法; Java程序设计; 教学改革; 教学方法; 计算机课程

中图分类号:G642 文献标识码:A文章编号:1006-8228(2012)04-49-03

Application of Task Driven Teaching Method in Java Programming Curriculum

Huang Hong, Zhao Xiaomin, Zhang Fan, ye Lei, Wang Ben

(School of Computer Science and Technology, Zhejiang University of Technology, Hangzhou, Zhejiang 310023, China)

Abstract: Java is a fast developing programming language widely used in various areas and becomes one of the main curriculums in colleges computer programming education. But there are some problems that impact the results of Java programming curriculums teaching and learning, among them teaching method is a main issue. Long term teaching practices have demonstrated that the traditional cramming method of teaching cannot arouse the learning enthusiasm and initiative of students, hence will hinder the achievement of good teaching effect. Therefore the authors introduce task-driven approach to the Java programming teaching as an efficient student-centered teaching method. In the paper the idea, implementation scheme and procedure, the achieved results and experience of task driving teaching methods used in Java programming are introduced in detail.

Key words: task driving teaching method; Java programming curriculum; teaching method; teaching reform; computer curriculums

0 引言

Java语言由于其众多公认的优点已经成为各类软件开发的首选语言,许多高校都开设了Java程序设计课程。在教育部计算机基础课程教学指导委员会制定的白皮书中,Java课程被列为核心课程之一。

Java程序设计课程对构筑学生的软件开发知识结构体系起着重要的作用。然而,在多年的教学实践中,我们意识到在Java程序设计等程序设计类课程的教学中存在许多问题。目前的程序设计类课程的教学现状是,在教学形式和教学过程方面,以教师课堂讲授为主,辅以复习所学知识点的课后作业,安排相应的验证性课内实验,最后通过笔试对学生进行考核,评定学生的成绩。程序设计课程在这种基本上属于填鸭式的教学方式下,存在以下一些主要问题:

⑴ 无法调动学生的学习积极性。由于教学方法单一,教师按照课程的内容要求准备PPT,按部就班进行讲授,学生学得很被动,教学效果不佳[3]。

⑵ 学生没有学习目标,缺乏学习兴趣。学生没有短期的有吸引力的目标,许多学生的学习动机是“为通过考试而学习”,所以平时投入的精力很少[4]。

⑶ 学生学习不够深入和扎实,缺乏对所学知识的实际应用能力。教师和学生注重的往往是编程语法等表面知识,忽视实际应用和编程思维的训练,其结果是学生不会应用所学知识解决实际问题,学到的知识也会很快遗忘。

上述问题带来的综合后果就是,程序设计课程的教学效果不够理想,课程结束后学生仍不会编程,而且直接影响学生后续课程的学习。

鉴于上述情况,根据Java程序设计课程的特点,我们决定以Java程序设计课程的总体目标为导向,引入任务驱动教学法来激发学生的学习兴趣,培养学生的编程能力、知识应用能力和自主学习能力,希望以此来提高Java程序设计课程的教学质量和教学效果。

1 教学改革的思路

Java程序设计是一门实践性很强的课程,必须根据课程的特点采用合适的教学方法。程序设计课程的教学过程,学生的参与是至关重要的[1]。任务驱动教学法非常适合用于实践性强的课程,但这并不意味着任务驱动教学法适用于Java程序设计课程的整个教学过程,能够解决所有的教学问题。只有在课程的不同阶段,根据课程内容的不同特点以及学生的不同特点,以“任务驱动”教学法为主,综合应用不同的教学方法来实施教学,才能更好地解决各种教学问题,有效地提高教学效果和教学质量。据此,我们提出以下教学改革思路。

⑴ 通过“任务驱动”帮助学生建立学习目标

“任务驱动”教学法通过在教学过程中不断地布置适当的任务,帮助学生确立学习的短期目标。这不仅可以激发学生的积极性,而且可以通过一个个短期目标的达成,实现课程的总体目标。

在课程开始时,布置一个需要综合应用课程知识的“大任务”,即课程项目,以引领总的课程教学目标。

⑵ 综合运用任务驱动与填鸭式教学法

由于学时数的限制和部分课程内容的特点,在Java程序设计课程的教学中需要综合运用各种教学方法,以提高课程基础知识的教学效率。

对于知识性的内容,填鸭式教学法是效率最高的一种教学方法。因此,在进行Java基础知识(如数据类型、基本控制结构等)的教学时,采用“填鸭式”教学,不失为一种好的选择。

⑶ 通过“任务驱动”实施“做中学”,锻炼学生的实际动手能力

“做中学”是一种行之有效的教学方法,该方法特别适合与“任务驱动”教学法相结合,使学生学以致用,提高学生的学习兴趣和教学效果。通过“任务驱动”实施“做中学”可以促使学生主动学习,但使用这种教学方法的前提是学生有一定的基础,任务的规模和难度适中,与学生的已有基础能够合理匹配,否则教学就可能无法进行,学生也会因为失去信心而丧失学习的兴趣。因此,实施“任务驱动”教学时,根据教学进展的情况设计适当的“任务”是有效地开展“做中学”的关键。

按照以上思路,配合一些其他的措施和手段(如小班化教学等)应该能够很好地解决Java程序设计课程教学中的各种问题,提高教学质量。

2 教学改革的实施方案

根据前述教学改革思路,我们提出了以下具体的实施方案。

⑴ 设立综合性项目,通过目标引领激励学生。

在课程开始时就布置一个需要综合运用课程内容的综合性任务作为学生的课程项目(Course Project),提供项目需求说明书,给出评分标准,并告知学生该项目将以很大的比重计入课程的总评成绩。在课堂上演示已经实现了的项目,但不提供源代码。要求学生在期末考试之前完成并提交所布置的项目。

⑵ 基础知识以“填鸭式”教学法进行,提高学习效率。

教学初期采用快速填鸭式教学方法,将基本数据类型、程序控制结构、面向对象程序设计基础等初级编程知识传授给学生。这样的快速入门是完全可行的,因为这些内容在以后的教学中会反复出现和运用。通过日后的不断重复,相关知识会固化在学生的脑中。基础知识是学生以后实施“任务驱动”和“做中学”的基础,因此初期的教学以教师讲授为主,辅以课堂演示和验证性课内实验。

⑶ 任务驱动,通过“做中学”深入课程腹地,培养学生的实际应用能力[5]。

Java程序设计课程项目由于综合应用了课程的全部知识,学生最初是没有能力完成的。学生没有能力完成,就会失去信心。为了不断激励学生,树立学生的信心,就必须不断地为学生设立力所能及的短期目标,通过短期目标的达成,构筑学生完整的知识能力体系,帮助其最终完成课程项目。基本做法是每堂课上课之初提出一个与本堂课要学习的内容相关的编程任务,让学生分组解决。然后让各组学生给出他们的解决方案,并开展讨论。最后老师进行提炼和总结,给出参考方案,并布置预习的内容。如此反复,不断驱动。

⑷ 通过“项目驱动”构筑学生的综合能力。

课程开始时布置了一个综合性的课程项目,接下来如何高质量地完成这个项目成为学生学习本课程的一个持久驱动力。在课程学习过程中,教师要经常提醒学生“今天学习的知识如何能够运用到课程项目中去?”,这不仅可以激发学生的学习兴趣,而且这种“为了应用而学习”的主动学习方式与单纯的“为了通过考试而学习”的被动学习方式相比有着不言而喻的优越性[2]。最后,通过整个课程项目的完成,学生运用Java程序设计语言进行软件开发的初步能力必将形成。

3 实施效果和遇到的问题

2010年暑假,我们组织教师进行了相关教学方法的学习研讨,设计了针对Java程序设计课程特点的教学方法综合应用方案,授课计划,并准备了几个课程项目和每次课的阶段性任务,教学组织方案等。2010-2011学年第一个学期,我们在一个Java程序设计课程教学班级进行了教学试点。学生是大学二年级的,教学班级的人数达到了62人。

我们布置的课程项目是一个类似QQ聊天的软件,该项目除了Java程序设计的基本知识外,还要用到图形用户界面程序设计、输入输出程序设计、多线程程序设计、网络程序设计等知识,覆盖了Java程序设计课程的全部教学内容。

我们基本按照计划实施了教学,取得了良好的教学效果,学生反映良好。绝大部分同学完成了课程项目,实现了项目要求的基本功能;约20%的同学比较出色地完成了项目,不仅功能齐全、界面美观,而且在容错性等方面都有体现。最后总评成绩的优良率达到了62%。在当年组织的Java程序设计课程竞赛中,这个班级的获奖率也高于其他同类的非试点班级。2010-2011学年第二个学期,该班有多名同学参与了教师和研究生的科研项目,参与编写了许多程序模块、实现不同的算法等等,表现令人满意,说明他们已经具备了使用Java语言参与软件项目开发的基本能力。

在教学改革实施的过程中,我们也积累了一些经验。

⑴ 宜采用小班化教学来实施任务驱动教学。

由于学生自由选课的原因,2010-2011学年Java程序设计课程所有教学班级的人数都比较多,因为没有采取限制措施,所以试点班的学生数也达到了62人。实践证明,教学班级人数过多会影响任务驱动教学的实施。因为人数一多,许多学生就没有机会展示他们的解决方案,学生会缺乏参与感。还有一些本来就不够自觉的同学则会滥竽充数。所以,尽管是试点班,最后总评成绩也出现了不及格的情况。

但是,如果实施小班化教学,就会需要增加教师,这对很多学校来说可能是一个短期内难以解决的问题。

⑵ 在Java程序设计课程中实施任务驱动教学需要一定的硬件条件。

学生在课堂上完成任务时,最好是直接在电脑上进行编程和调试,而不是在纸张上写程序代码。这样一方面可以及时发现问题所在,方便对程序的修改,提高他们的实际动手能力,提高时间利用率,也方便展示和讲评他们的实现方案。然而,目前的教室普遍只有讲台上有一台电脑,即使让学生带笔记本电脑也会因为教室没有足够的电源插座而不便使用。所以,Java程序设计课程以任务驱动方式实施教学最好能够在机房进行。但这一般很难做到。

⑶ 采用任务驱动教学法对教师的知识水平和课堂掌控能力提出了更高的要求。

学生在尝试完成任务的过程中,会出现各种千奇百怪的问题,这就要求教师有比较全面的知识,对授课内容非常熟悉,反应灵活,善于解答学生的问题并把学生引导到正确的轨道上来。另外,在提出任务、初期引导、学生自学提出解决方案、讨论点评、纠错和总结等教学环节的时间分配和掌控方面,也要求教师能够合理掌控和灵活处理。

4 结束语

经过一年的改革探索和实践,在Java程序设计课程的教学中我们基本形成了应用任务驱动教学法的具体实施方法和模式,并取得了比较满意的效果。本学期(2011-2012学年第一学期),我们在Java教学班级中选定了35人组成小班,进行进一步的探索和完善。打算在总结经验、形成规范之后,在所有Java程序设计课程的教学中进行推广。

参考文献:

[1] T. Jenkins, A participative approach to teaching programming[A],Proceedings of the 6th annual conference on the teaching of computing and the 3rd annual conference on Integrating technology into computer science education: Changing the delivery of computer science education[C], ACM New York, NY, US, 1998.125~129

[2] Hong Huang, Dongyong Yang. Teaching Design Patterns: A Modified PBL Approach[A]. Proceeding of The 9th International Conference for Young Computer Scientists[C]. Zhang Jia Jie, Hunan, China. November 18~21, 2008. 2422~2427

[3] 易虹,徐振强,张红梅.程序设计基础教学改革实践与创新[J].计算机教育,2010.8:46~49

[4] 朱旻如,郭剑,朱立华. 程序设计实践课程教学改革探索[J]. 计算机教育,2010.22:109~111,115

[5] 张锦,林亚平,王如龙,凌小宁.基于"做中学"理念的教学方案设计与实践[J].计算机教育,2008.24:38~42

猜你喜欢
Java程序设计计算机课程任务驱动教学法
基于MOOC的混合式教学模式应用研究
《Java程序设计》课程网站的设计与实现
Java程序设计基础课实践教学中的分层教学模式研究
探讨提高初中计算机教学的有效方法与途径
任务驱动教学法在军械士官大专“机械基础”课程中的具体实施
任务驱动教学法在成人教育中的运用分析
基于实训项目的Java程序设计实验教学模式改革与实践
基于工程思维的Java程序设计课程教学研究
项目教学法在建设项目LCM课程实训中的创新应用
任务驱动教学法在C 语言教学中的应用研究