应用型本科院校Java程序设计教学改革
2014-07-02卢沿
卢沿
摘要:分析应用型本科院校软件工程专业人才培养的特点,以Java程序设计作为改革示范课程,提出体现工程教育特色和素质培养的教学改革方案。
关键词:Java语言;教学改革;实践环节;职业素养;人才培养
0 引言
应用型本科院校培养应用型、技术型人才,在建设高等教育强国的进程中发挥着不可或缺的作用,也形成了独特的鲜明特征:以服务地方或行业经济发展为宗旨,以培养应用型人才为目标,以应用科学研究为特色,以产学研深度合作为途径。因此,错位竞争、特色发展、服务区域经济是应用型本科院校的根本发展路径,而人才培养的创新是其改革的突破点。
软件工程专业是研究运用工程化方法构建和维护有效、实用、高质量软件的学科,如何将软件专业的工程教育特色融入到专业课程教学过程,是应用型本科院校在程序设计类课程的教学改革中必须考虑的问题。
Java是流行的网络程序设计语言,具有面向对象、可移植、多线程、分布式等特点,在各类高校中被列为计算机和软件专业教学体系中的主干课程。该课程对于培养学生的逻辑思维能力、编程技能、自学能力、分析解决问题能力都有着重要作用,并对Android平台移动应用程序开发、JavaEE框架技术、Web前端开发技术等后续课程的开设起到铺垫作用。
因此,以Java程序设计作为改革示范课程,从教学理念和教学目标人手明确课程定位,从内容层次、教学方法、实践环节、职业素养、程序竞赛、考核方式等方面,构建全方位立体教学系统,将工程教育和素质培养融入到基础教学过程中,提高教学质量和效率,并为学生将来从事Java平台相关软件产品的设计与开发奠定坚实的基础。
1 课程定位
1.1 教学理念
在软件工程专业现有的课程体系中,入门的程序设计语言是c++。由于Java语言的许多基本语法与C++一致,所以学生在学习Java的过程中会感觉相对轻松。因此,Java程序设计重要的是让学生理解和掌握面向对象程序设计,理解其作为一门和计算机交流的“语言”,如何让计算机实现所需要的功能,而不是局限于基本语法或者编程细节中。
1.2 教学目标
通过理论授课、实验、实训项目等教学环节,学生将全面了解Java语言的功能特色,掌握它的基本语法和面向对象的编程思想,理解并运用Java的应用技术实施网络编程和数据库操作,最终能够独立完成面向对象的程序设计与开发。由于Java平台的开发具有连续性特点,本课程的学习将为后续系列课程的开设打下坚实基础。Java程序设计的具体教学目标概括为如下3个方面。
(1)知识目标。立足于基本语法,先由浅入深地介绍一些过程式的内容,在具备一定语法的基础上深入讲解面向对象的思想,初步探讨面向对象的基本原则和设计模式,最后讲解实用程序设计。
(2)技能目标。要求学生熟练地使用JDK 6.0及以上开发工具包在集成开发环境Eclipse平台上进行Java程序的编辑、编译、调试和运行。
(3)能力目标。全面培养学生的面向对象程序设计能力、良好的编程习惯、阅读API文档的能力、语言表达能力、团队意识与合作精神。
2 构建全方位立体教学系统
2.1 教学内容和方法
Java程序设计作为一个系统的课程体系,包括64学时授课和2个教学周(折合32学时)的课程设计,其中课内实验24学时。
授课内容归纳成11个单元,循序渐进地划分为3个层次。首先介绍过程式的内容,包括基本数据类型、枚举和数组、运算符、表达式和语句;其次在具备一定语法的基础上,深入讲解面向对象的封装、继承和多态特性在Java语言中的体现;最后介绍实用程序设计及其API。教学内容的层次划分使知识具有很好的连贯性,适合学生按部就班的学习。
针对上述3个内容层次,要分别采用不同的教学方法。第1层次的基础部分采用比较教学法,通过和C++语言的类比使学生迅速掌握语法;第2层次的面向对象部分采用实例教学法、演示教学法,由简到繁便于学生理解面向对象的概念和特征;第3层次的实用程序设计部分则采用探究法,结合JavaDoc文档,从每个知识点的类层次结构讲起,在认识了总体结构以后再结合实例理解每个类的具体功能。比如在介绍输入/输出流时,首先通过与学生的现有知识进行对比,说明Java I/O工作原理;然后从文件类人手,分别讲解字节流和字符流。以字节流为例:首先介绍InputStream和OutputStream类的特征;然后依次讲解二者的子类,诸如文件流、过滤流、对象流、字节数组流、序列流、管道流的功能;最后以程序实例演示基于进程流构造I/O流实现对内存、文件和管道中数据的访问。字符流工作原理的讲解方式同上。
教材以中文为主,建议对Java平台感兴趣和学有余力的学生阅读英文版教材,从设计模式的角度深入理解Java语言的编程思想。
2.2 丰富的案例教学
对每一章节用心创作相关素材和程序实例,并优化课件。在讲解特定概念和方法时,通过类比生活中学生熟悉的概念,进行饶有趣味和深入浅出的实例教学。例如在讲解面向对象的难点——抽象类和接口的概念时,编写了动物抽象类和宠物接口,然后定义具体的蜘蛛、鱼、猫、狗等动物类来扩展抽象类,而鱼、猫和狗通常又具有宠物的特点,因此还要实现宠物接口。学生在测试程序中通过声明不同类型的对象,在运行时观察它们所表现出来的不同行为,从而深刻理解封装、继承和多态特性的内涵,并且能够比较抽象类和接口的区别。
2.3 重视实践环节设计
针对11个内容单元,设计对应的实验环节,让学生及时对授课内容进行练习从而掌握。实验内容共设置9项,每项实验又具有关联性,因此统合成3个项目。项目1是银行账户管理程序,主要练习Java基本语法、类与对象、异常处理机制、输入/输出流、泛型与集合框架等知识点;项目2是简易聊天室程序,主要练习Java Swing图形用户界面和Socket网络编程等知识点;项目3是图书信息管理程序,主要运用Java Swing绘制界面并使用JDBC访问数据库。在课程设计环节,设计和布置两个实训项目,主题分别是俄罗斯方块和猜数字游戏,寓教于乐,激发学生兴趣。学生在学习相关知识点之后,根据实验要求不断补齐功能,并在学期末完成任选其一的实训项目,最终都会完成4个完整的作品,既能提高动手能力、增强自信心,还能提升专业认同感和成就感。endprint
2.4 职业素养的提升
从教学的角度看,软件工程学科发展速度非常快,教师只能将核心基础知识和当前的实用技术传授给学生。因此,如何培养学生持续学习的能力和运用知识解决实际问题的能力是每个教师面临的重要课题。针对每个教学环节,需要融入一些通识教育的元素,具体体现在:(1)培养学生良好的编程习惯,写好代码注释、查阅JavaDoc文档、编写项目文档说明;(2)程序出错时及时查看日志,分析异常堆栈信息定位错误源头;(3)遇到难题不能解决时,可以利用Google、百度等搜索引擎查阅信息,培养学生独立分析、调查和解决问题的能力;(4)要求学生经常登录CSDN等专家博客,关注行业发展趋势,借鉴前辈们的经验。久而久之,学生的职业素养在潜移默化中得到提升,并使之成为一种学习习惯沿袭到以后各项技术的学习过程中。同时,通过教师指导下的实践活动和项目组成员的互动,全面提升学生的实践能力、团结协作能力。
2.5 构建师生互动平台
通过各种方式建立互动平台和沟通机制,加强师生间交流。
(1)在授课中,通过提问和讨论来调动学生的参与感和热情。
(2)建立班级QQ群,进行实时交流和答疑。
(3)构建网络教学平台,并于2012年通过年度评审。学生可以在平台上提问或相互回答,教师主要负责回答其他同学回答不上来的问题。另外,网络平台还实现了作业批改、文档共享、通知发布和教学内容存档。
2.6 以程序设计竞赛推动课程教学
以程序设计类课程为基础,以竞赛型创新实践基地为依托,为学生参加各类程序设计竞赛构建专业平台。目前,已组织和参加了校级程序设计大赛、“蓝桥杯”全国软件专业人才设计和创业大赛。竞赛团队的选拔一方面由任课教师在教学过程中发现有潜质的学生;另一方面,则通过计算机协会的宣传,吸引更多学生参与进来。进入竞赛团队的学生,分成C/C++和Java两个方向。除了课堂教学和指导教师的深化培训以外,还会根据竞赛的最新要求展开针对性训练。
目前,学生已经在“蓝桥杯”全国软件专业人才设计大赛Java本科组的比赛中荣获江苏省一等奖2人次,二等奖3人次,三等奖4人次;全国总决赛三等奖1人次,共计10个奖项,并且凭借基于Java平台构建的参赛作品“虚拟解剖系统”荣获第四届“蓝桥杯”软件专业人才创业团队赛全国选拔赛三等奖。
2.7 注重过程考核
依据教学环节,考核方式分成课程考核和项目考核。
课程考核从3个方面进行:
(1)注重过程考核,考核过程贯穿于整个课程教学中。通过实验项目的现场完成情况,考察学生的知识掌握程度、应用能力和程序开发能力,占总成绩的40%。
(2)理论考试成绩,占总成绩的50%。
(3)平时成绩占总成绩的10%,强调出勤情况、课堂纪律、课堂表现和作业完成情况。
项目考核则通过成果展示、演讲等方式,结合实训期间学生表现出来的动手能力、独立分析解决问题的能力以及总结报告和答辩水平进行综合考评。考核比例如下:
(1)项目代码的可用性、完整性、实用性以及规范性,占总成绩的40%。
(2)项目期间展现的动手能力和团结协作意识,占总成绩的20%。
(3)项目报告和答辩情况,占总成绩的20%。
(4)超出任务要求的创新精神,占总成绩的20%。
3 结语
经过3年的探索和实践,我们已经形成了以Java程序设计为基础的Java系列课程群。教学模式改革的探索与实践对提高课堂教学质量和效率具有重要作用。已经毕业的近300名毕业生正服务于张家港地方经济,服务于江苏省信息化建设,服务于长三角地区的现代化发展。这不仅推进了校区在本专业领域的知名度,也为校企合作打下了一定的基础。
作为应用型本科院校,明确科学定位与加强内涵建设是学校在发展机遇期所面临的首要问题。今后的工作中,在实现软件工程专业人才培养基本要求的基础上,着重于对学生实践能力和项目开发能力的培养[4]。在专业教学过程中,尤其是程序设计类基础课程的教学中,重视与企业需求对接,继续体现工程教育特色,使学生积累丰富的项目经验,具备较好的职业素养,为其今后的就业和继续深造奠定良好的基础。
参考文献:
[1]上海电机学院高等技术教育研究所.创新人才培养模式,不断提升地方应用型本科院校服务区域经济发展的能力[EB/OL].[2011-10-13].http:∥gaojs.sdju.edu.cn/default.php?mod=article&do=detail&tid=85.
[2]金智勇,叶时平,梁方.基于案例分析的Java程序设计教改研究[J].福建电脑,2009(4):203-204.
[3]储岳中,秦锋,刘宏申.c语言程序设计理论与实践一体化教学的几点实践[J].计算机教育,2012(12):22-25.
[4]刘海燕,王雅轩.高校对日软件外包Javaweb项目开发人才培养[J].计算机教育,2012(10):107-110.
(编辑:郭田珍)endprint