项目化教学在《JAVA语言程序设计》课程中实践与创新
2018-07-21王宏高丽霞
王宏 高丽霞
摘 要:《Java语言程序设计》在软件技术、移动互联等专业中都处于核心地位,在课程体系建设中起着承下起上的作用。而传统教学模式还是以满堂灌输、课件演示等方式进行,枯燥乏味。因此,作者根据多年的编程语言课程的课堂实践教学,总结出一套基于“项目驱动”的教学方法。实践证明,它有效地激发了学生学习的积极性和主动性,显著的提高了教学效果。
關键词:Java 教学 项目驱动 教学做一体化
《Java语言程序设计》是软件技术、移动互联等专业的编程语言的核心课程,通过本门课程的学习,重点培养学生面向对象的编程思想,使学生具备独立编程的能力、调试程序的能力,运用所学基础知识能够独立分析问题、解决问题的综合应用能力,并为后续的专业课程(如:Javascript、Web开发)打下坚实基础。
然而,在实际教学过程中,虽然大多也都是采用多媒体课堂教学方式,却基本上仅仅局限于放映课件和例题演示的模式,通常是教师在课堂上整堂课的讲解,或者照本宣科,或者填鸭式教学方式来传授知识,学生则被动的听讲,毫无生趣。这些问题主要包括:(1)学生过度依赖教材和老师,被动接受,缺乏知识内化和吸收。(2)学生基本上是仿照老师讲的例题写程序,所以不会出现什么问题因而不会调试测试程序。(3)实践教学内容多是课本例题,针对一个知识点的一个小例题,缺少实际应用性,学生在这样的教学过程中学的乏味,积极性不高,效率低下。(4)学生缺乏团队协作开发能力。
一、传统教学模式的弊端
首先,很多教师是依据书本的目录结构顺序进行授课,在授课的时候基于放映课件和例题演示的模式。学生在这样的学习过程中,多数时间处于被动记忆知识点,没有主动思考的机会,更谈不上自主思考的能力。学生学习的都是同一个标准的“算法”,这样的教学模式的另一个弊端就是严重限制了学生的创新能力发展。
其次,在Java语言的教学内容上,传统的教学模式还是按照语法分类,将课程内容划分成不同的章节。学生的注意力都被引导到语法细节和一个个独立知识点上,这样就导致学生“只见树木不见森林”的学习效果,很难将一个个章节的知识点灵活应用到综合项目中,从而无法解决实际问题,所以学生会感觉学习这门课非常的“痛苦”和“枯燥”,学习是被动的,不会学以致用,渐渐地就失去了学习的兴趣。
第三,作者在实践教学过程中,发现许多学生上机编写程序代码时,基本就是完全模仿教师讲解的例题,或者完全照搬教材中的例题代码,而这些代码都是经过检验调试正确的,所以学生在实际的编程实践中,基本不会遇到太大的难题,很少出现代码错误,当然更不会具备熟练调试程序的能力。而在软件开发过程中,调试程序是一个程序员最基本的技能,其重要性比肩于编写程序代码。显然,“重编码,轻调试”的传统教学模式,无法培养出满足Java程序员岗位要求的从业人员。
第四,在传统的教学模式下,学生的学习过程多是独自一个人完成的,不论实践练习写,课后作业,基本不需要团队,更没有沟通交流、分工合作等理念。这种教学模式培养的学生很难融入企业实际的项目开发环境。
第五,考核方式基本上是以学期结束的笔试为主,考核方式单一,题目老旧,没有新意。考核的是知识而不是能力,而且是一试定结果。
二、课堂教学模式创新
提高人才培养质量而言,课堂教学模式创新显然势在必行,本文以“项目驱动”的教学方法,用创新思路和循序渐进的项目案例,把《Java语言程序设计》的教学内容分为“基本技能”和“高级技能”两个模块,每个模块对应一个项目(如表1)。打破原有的章节式课程内容,通过两个教学项目将知识点有机的组合在一起,并达到知识学习循序渐进、应用技能逐步提高的教学目标。为学生提供主动学习机会,促进学生深入思考,真是实现以学生为本的分层次教学、个性化教学。
针对每个知识点,教学中设计了针对性较强的教学案例,这些案例既相对独立,又具有一定的联系。比如在学习Java容错处理机制时,我们设计了两个子项目《ATM模拟系统》登录信息合法性验证和系统业务逻辑容错处理的实现。每个子项目的设计都是有机地融合教学知识点和技能训练,在项目的教学实施过程中,先展示项目运行效果,并提出任务目标,让学生理解知识点在实际项目中的作用和使用技巧。学生可以在完成这两个项目的过程中掌握异常处理的知识点和处理技巧。这种在“做中学,做中教”的教学过程,体现了“学以致用”的教学理念。学生通过参与进实际的项目开发过程,在完成项目的同时掌握课程的基础知识,并解决了现实生活、工作中的实际的问题,从而激发了学生的学习热情和学习的主动性,同时培养了学生独立思考、分析、解决问题的能力。
三、教学方法与手段创新
高职教育与本科教育主要区别在于,高职教育更着重于职业能力的培养,学生需要具备自主学习,实践操作能力,在教学过程中,通过采用以下的教学方法及手段:
首先,为了使开发环境更接近于软件开发企业的真实情况,要把一个班的学生划分为若干个项目小组,每个小组需要独立完成项目要求。利用划分项目小组的方式组织教学的优点在于,可以促进项目组成员之间的沟通交流,培养学生之间的协作能力。在各小组的项目实施完成之后,每组都要提交项目实施报告,其中包括项目任务分解、项目组人员分工、主要的设计思路,以及源代码文件。老师要对各小组所提交的报告和代码进行评审,对于其中暴露出的共性问题加以讲解指正。
其次,本课程采用理论教学与上机实践相结合的“教学做一体化”授课方式。课程内容全部在计算机机房讲授,使用电子教室软件,通过教师端控屏进行讲授,综合利用Word和PPT课件以及绘图软件,图文并茂讲解知识点,并且在集成开发环境中现场操作演示,增加学生的感性认识。
第三,项目任务紧密联系生活。本课程所选用的两个项目都是来自于学生们所熟悉的生活场景,把计算机编程展开到实际应用这一层次,让学生感受到用所学习的知识可以解决生活中、工作上的实际问题,从而提高了学生的学习兴趣,激发了学习的热情。比如在学习Java可视化界面之前,可以先演示一个机动车驾驶员科目一考试的网上模拟考试软件(驾考宝典),让学生了解界面的外观和软件功能,并告诉学生应用Java高级编程技术就可以完成这样一个项目的开发。这样一来,学生便调动了学生的学习兴趣,然后教师就可以利用这个案例讲解Java高级的相关编程技术的实现机制与应用技术,并引导学生一步一步完成《学生标准化考试系统》项目的开发了。
第四,课堂上检查验收案例完成情况,当场评分,这种方式可以改变传统考勤方式学生“出工不出力”的情况,不仅能保证学生的到课率,还可以促使学生参与到学习中来。
四、考核方式创新
本课程采用项目驱动的方式授课,与此相对应,考核方式也改变单一的期末终结性评价方法,采用过程考核和终结考核相结合的评价方式,其中过程考核比例为60%,终结考核比例为40%。过程性考核主要包括出勤情况、课堂表现和课内案例任务完成情况和课下能力训练任务完成情况三部分组成,终结性考核采用期末上机考试的方式进行考核。各项目所占分值如下表。
结语
实践证明,在整个教学过程中以项目为主导,利用针对性较强的任务案例驱动教学,引导学生逐渐掌握Java的语法知识,建立面向对象程序设计的思想,培养和提升了学生分析任务、编写程序、调试排错、团队协作的能力。从学生课堂上的精神面貌、完成的作业、项目和反馈的意见来看,教学效果非常明显,达到了高职院校培养学生的职业技能与职业素养的目的。
参考文献
[1]戴华,杨志和.软件设计模式课程的教学模式改革探讨[J].课程教育研究,2017,(31).
[2]唐笑非.项目驱动教学法在Java课程的实验课改革中的应用探究[J].课程教育研究:新教师教学,2015,(25).
[3]吕延庆,范刚龙,宋振芳.基于教学内容的Java教学模式改革[J].计算机教育,2015,(2):48-51.
[4]赵丽娜.基于实训项目的Java程序设计实验教学模式改革与实践[J].电脑知识与技术,2016,12(26):181-182.