朱强
(合肥师范学院计算机学院,安徽 合肥 230061)
[文章编号]1671-802X(2016)04-0048-02
双驱动模式下Java语言程序设计课程改革与实践
朱强
(合肥师范学院计算机学院,安徽 合肥 230061)
将“项目驱动”和“竞赛驱动”的教学方法引入到java语言程序设计课程中,着重培养学生的编程实践能力和动手操作能力,使得毕业生与企业需求很好的衔接,提高了课程的教学质量和教学效果。
竞赛驱动;项目驱动;面向对象;实践
Java语言是一种跨平台的面向对象的程序设计语言,也是当前比较流行的企业开发语言,广泛地应用于移动端应用程序开发和企业级程序开发,是当前计算机类应届毕业生必须掌握的一门高级编程语言。国内很多高校计算机类专业都开设了这门课程,但是培养的学生与用人单位需求间存在很大的鸿沟,导致目前多数毕业生必须要经过培训机构的再培训才能顺利找到相关的工作岗位[1]。因此,在《Java语言程序设计》课程教学中,如何加强学生编程实践能力的培养,实现专业学生零距离就业,是个值得深入研究的课题。本文将“项目驱动”和“竞赛驱动”的教学模式引入到该课程的教学中,优化课程标准和实践课程的内容,在项目实践中学习语法知识,巩固所学内容,在竞赛活动中拓展Java体系知识视野和创新能力,从而提高学生工程实践和编程实践能力。
(一)当前教学过程中存在的问题
大多数计算机类专业学生在《Java语言程序设计》课程前通常已经学习过至少一门高级语言程序设计课程,如《C语言程序设计》等。而计算机高级程序设计语言在基础语法、语句等方面都具有很大的相似性[2],因此应该尽量的缩短这些内容的讲解,而将重点放到实践应用知识点中去,如应该加大图形界面、数据库编程和网络编程等的讲解。同时由于Java基础包每过一段时间就会有所更新,所有要不断地关注新知识点,选择性地将这些新知识点导入到课程教学中。实践教学作为提高学生编程实践能力的重要教学手段,在现实执行中往往得不到应有的效果,这是因为一方面实践教学学时的分配太少,另一方面实践项目往往是对单一知识模块甚至单一知识点的设计,很难提高学生的工程实践能力。课程考核也在延续传统的期末考试形式,这往往并不能反映学生的动手操作能力。以上种种都严重束缚了《Java语言程序设计》的实践性课程特点,导致学生学习兴趣不高,甚至厌学。
(二)改革的具体措施
课程组经过深入调研,对《Java语言程序设计》的课程标准进行了修改,优化了课时分配:理论课时24学时,实践课程24学时;优化了教学内容:对于大部分语言知识都让学生在实践中来潜移默化的学习掌握,同时教学知识点也不在拘泥于一门教科书,引入新的知识点,比如导入应用广泛的MVC架构设计、引进工厂设计模式等;改变了以往理论课和实践课分开上课的模式,所有课时都在实验室完成,以便边讲边练,边练边学;引入企业工程师带学生学习部分实践课程内容。
以上所有的改革措施都是在引入以“项目”驱动的教学模式下完成的。所谓的“项目驱动”的教学是指以学生为中心,在教师的指导下,以项目为驱动的教学模式,是探究式教学模式的一种。这种教学模式是将知识点融入到具体典型项目中,创设有利于学生发挥潜能的学习环境或模拟真实的职场情景,让学生主动全程参与教学,在动手实践中学习知识,以培养学生的实际编程开发能力。
课程组引入和设计了成绩管理系统、五子棋游戏、投票系统和聊天软件等实践项目,系统地将知识点引入到项目中。第一,学生分组选择相应的项目,学习了解项目的功能,并要写出项目的所有功能划分;其次,在老师对总体架构进行讲解或类似项目分析后,要求学生通过查找相关的资料,尝试着去搭建所选系统,如界面等;第三,在教师的帮助下,一步步实现所有的功能模块,在此过程中,教师对学生的学习方向或项目所需知识点进行引导式的指点,知识点的语法功能、类中函数使用等都由学生自主独立完成学习;第四,在项目完成后,以小组进行项目的验收答辩,小组之间相互作为裁判打分。最后,小组要总结,完成项目学习报告,列出从项目实现中所学习到的新知识点,教师再给出下一个有利于知识延伸的项目案例。
高校中《Java语言程序设计》课程往往都是一个学期内完成,自控能力较弱的学生在其它学期就很少接触到相关知识,时间一长,本已学会的知识也都忘记了。为此,课程组引入多种竞赛活动,不仅能激发学生再学习兴趣,长期的在Java知识体系中遨游,更能在竞赛中获取新的知识,拓展学生对Java体系视野的拓展,提高他们的应用编程能力和创新应用能力。
首先,课程组每年都会组织学院内的程序设计大赛,大赛模拟ACM程序设计大赛,在实验室中搭建大赛的环境,所有在校学生都可以参与比赛。比赛结束后不仅有丰富的物质奖励,更将比赛结果与相应课程挂钩,获得二等奖以上的学生都可以免修或免考该课程。
其次,引入ACM程序设计大赛,该赛事是在众多的计算机类竞赛中规格最高、最权威的竞赛[3]。为了使学生能顺利参与比赛并获得较好的成绩,课程组改革实践课程教学和考核模式。课程组首先从多所名校的开放平台式如HUSTOJ上收集整理的相关的题库,学生可在开放实验室中练习题库中的题目。同时,开放实验室每天都有教师或高年级学生对他们进行辅导[4]。为了激发学生的积极性,更是改革了考核模式,如果学生能在题库中随机抽取5道题目作对3题则可以免于期末考试。
第三,组织学生参加“中国大学生服务外包”竞赛,该大赛的主要目的是搭建产学结合的大学生服务外包创新创业能力展示平台,学生可以自由组队,经过报名参赛、自主选题、分散备赛和集中答辩的环节,评选出相应的优秀团队。在形式上,注重学生的团队协作,在虚拟的商业环境中解决问题。赛题一方面来源于现代服务产业企业的现实需求,鼓励学生综合考虑业务模型、技术方案、商业运营等各种因素,提供完整方案,立足实际情况创新应用;另一方面,大赛还鼓励参赛团队提出有创造力的创意项目,在优秀方案的基础上实现创业,增强大学生的创新创业意识[6]。从近几年的出题看,该竞赛大量用到Java体系知识,参与赛事,能很好地培养学生的编程实践能力和创新创业能力。
另外,课程组也组织学生参与了安徽省大学生程序设计大赛、全国软件设计大赛、Java程序设计大赛等能锻炼学生工程应用能力和编程实践能力的各项赛事,课程组会安排教师轮流为学生对赛事情况进行辅导。同时,加大实验室开放力度,提供给学生一个好的实践锻炼环境。
以“项目驱动”和“竞赛驱动”的教学方法能够使学生对Java语言程序设计的极大兴趣,并能潜移默化地培养学生计算思维能力和编程实践能力、动手操作能力,有利于培养较高质量的应用型人才,提高了学生的竞争力。但在实施过程中也产生了一些问题,主要表现在来自真实工程项目的案例较少,有些竞赛需要指导教师付出大量的心血,但不一定立即有很好的结果,教师也都是义务指导学生,没有建立相应的激励机制等。
[1]徐 南.基于项目驱动的Java课程教学改革研究[J].教育与职业,2011,(14).
[2]梁志红,肖欣欣.Java程序设计的教学思考[J].计算机教育,2013,(16).
[3]项 炜等.以ACM竞赛驱动程序设计类专业课教学改革[J].计算机光盘软件与应用,2012,(19).
[4]李 平,杜 力.以学科竞赛为驱动的主动式实践教学探索[J].中国电力教育,2013,(11).
[5]赵永华等.关于程序设计在工科院校中教学改革的探讨[J].教育教学论坛.2015,(27).
[6]徐胜舟.以学科竞赛驱动程序设计类课程教学改革研究[J].软件导刊.2015,(5).
(责任编辑:卓 如)
TP312
A
2016-07-18
朱 强(1981-),男,安徽界首人,讲师,硕士,研究方向:图像处理、机器学习。Email:abelhftc@163.com.
资金项目:安徽省教学研究重点项目(2015jyxm276);合肥师范学院课程建设项目(2013hxk06)