软件工程专业面向对象程序设计教学改革研究
2016-02-22吴晓琴檀明许强胡春玲
吴晓琴 檀明 许强 胡春玲
【摘 要】针对用人单位对软件的人才需求,以软件工程专业模块化课程体系为研究对象,提出了面向对象程序设计课程体系及教学方法改革。研究如何将本专业其它课程融入其中,整合教学内容。根据不同的教学内容,探索灵活的教学方法,并提出实践教学方法的改革思想,以提高面向对象程序设计的教学质量。
【关键词】面向对象程序设计;Java;课程体系;教学改革
Research on Teaching Reforms Object-Oriented Programming of Software Engineering Special Field
WU Xiao-qin TAN Ming XU Qiang HU Chun-lin
(Department of Computer Science and Technology,Hefei University, Hefei Anhui 230601, China)
【Abstract】Considering the demands of software talent, modular curriculum system of software engineering special field is studied. The system of object-oriented programming courses and teaching methods are proposed. In Java, for example, The integration of professional courses is researched. The flexible teaching methods are explored . In order to improve the teaching quality of object-oriented programming, the reform ideas of practical teaching methods of is proposed.
【Key words】Object-Oriented Programming; Java; Curriculum system; Teaching Reformation
0 引言
Java是新一代面向对象编程语言。由于它的优点在不断发展,现已成为目前使用最广泛和最卓越的的面向对象程序设计语言之一,从桌面办公的应用软件到企业级大型复杂的应用软件,再到小型移动设备的嵌入软件,因此此类人才的市场需求与日俱增,一方面人才需求缺口很大,一方面企业很难招聘到合格的Java软件工程师。其主要原因体现在以下几方面。
(1)课程内容孤立:教学内容和其它课程知识点的缺乏融合、渗透。
(2)教学方法单调:老师只是单纯讲授每节课的知识点。很难激发学生学习兴趣。
(3)实践教学滞后:实践项目和实践教学方法滞后,没有完善的实践教学环节。
(4)学习方法被动:学生听完教师讲完课,被动地根据实验项目做该节单元实验。
本文结合多年的Java教学经验和教学过程中体会,以软件工程专业模块化课程体系为研究对象较,找出面向对象编程和其它课程模块的结合点整合Java教学内容,探索面向对象程序设计的新教学方法和教学手段的改革思想,引导学生自主学习意识,提升授课的效果。
1 挖掘软件课程间的结合点,整合教学内容
在整合教学内容时,一方面以软件工程专业模块化课程体系为研究对象,探讨本专业各课程特点,挖掘Java与本专业其他课程教学内容的结合点,另一方面将新技术、新知识融入其中,注意保持与Java技术的发展同步。java教学内容可分为四部分:基础知识(Java语法、数组字符串、工具类)、面向对象(面向对象分析方法、面向对象设计方法、面向对象特征)基本编程技术(多线程技术、异常处理机制、Applet应用编程、图形用户界面设计、输入输处流)综合应用技术(网络编程、数据库编程、多媒体编程等),具体如图1所示。如讲解包、集合和工具类的使用时,可以集合数据结构的线性表、栈、队列、二叉树例子。讲解Java线程生命周期、线程同步、线程死锁时,以操作系统的进程管理为例。讲解String类的使用时,可重点讲解字符串的各种操作,为后续的编译原理中词法分析的实现打下基础。讲解Socket通信、web编程、JSP程序设计结合计算机网络TCP/IP协议等知识点,讲解JDBC时,结合数据库操作相关知识, 讲解Java高级编程时,将软件工程、软件测试等相关课程融入其中,总之,整合课程内容时,将本专业相关课程的知识互相融合渗透,完善课程内容体系。
2 灵活运用教学方法,提高教学质量
针对不同的教学内容,灵活运用教学手段和方法。如对基础知识部分,Java语法主要以自学为主,以任务为驱动,重点讲授面向对象的程序设计思想和如何运用面向对象方法对客观实际问题进行建模。任务:用面向对象的思想完成车的设计,车是由发动机、轮子、车门、窗户等部件构成的,每个部件设计一个类,车类(Car类)有自己的属性和方法,还包含这些部件类。通过该设计任务的讲解让学生学会用面向对象思想解决客观实际问题,注重培养学生面向对象建模能力,实现班级学生。基本编程技术这部分内容,以案例为主线,结合生动形象的案例讲解,如案例1:实现windows附件所带计算器,通过该的案例分析、设计、编程实现的过程逐一介绍Applet应用、容器中组件的添加与设置、菜单的使用技术、布局管理器、Java核心包中数组、Math类的使用、异常的处理、事件处理机制等相关知识。案例2:操作系统的进程管理中生产者与消费者,介绍Java多线程技术,将具体的问题抽象为编程技术的实现,引导学生尽快掌握Java基本编程技术和设计技巧。对第三部分内容.采用项目教学法,综合运用前两部分知识,结合最新技术解决实际问题,如通过对聊天室软件的分析设计,让学生学会将输入输处流、图形用户界面的设计、数据库JDBC连接、Socket通信、线程等技术加以综合应用。在讲解Java高级编程时,主要是结合一个具体项目,如实现学生管理系统,讲解项目的设计思想、方法和步骤时,启发鼓励学生结合已有的知识积极主动地参与项目分析,然后再根据学生分析的进度将项目整个实现过程逐步讲解、逐一展示给同学,切忌将整个程序代码直接展示介绍。否则学生只能读懂代码的功能,而没有完整的思路。而面向对象程序设计课程的目的是培养学生运用面向对象程序设计方法解决问题的能力。
3 将软件工程素质的培养贯穿在整个实践教学过程中
在实践教学当中,一方面把所学的知识与技术融入到工程项目中,另十分关键是如何将软件工程素质的培养贯穿在整个实践教学过程中,面向对象程序设计实践教学采用项目驱动方式实施整个实践教学环节,通过成立项目小组模拟企业真实项目练习,具体过程如下:
(1)调研,选题;
(2)研讨项目方案,拟定开发计划,小组成员分工;
(3)查阅学习相关技术资料,完成需求分析;
(4)小组成员研讨课题相关的技术,完成设计阶段;
(5)编码实现和测试等各个阶段;
(6)开发文档整理、编制。
利用软件质量保证计划完成整个项目的实施完成需求分析、系统设计、编码实现和测试等各个阶段,撰写各个阶段的相应文档。特别在需求分析、系统设计阶段等阶段,充分理解和详细分析项目的需求,要注重培养学生的创新能力,经过需求分析、系统设计后,再用相应的Java技术对设计的结果进行编码,最后通过单元测试、集成测试完成整个项目。通过一个模拟实战项目训练,学生既掌握Java技术知识和运用,又对软件工程实际项目实施过程有一个清晰完整的思路,拓宽了学生的视野,增强了学生的学习兴趣。在是学生能明确自己的学习目标。很好地培养了学生软件工程素质。任课教师也要参与软件项目的开发,不断提高自身工程实践能力。
4 引导学生自主协作学习
首先要完善整合课程网络资源:包括课程介绍、教学大纲、教学周历、电子教案、重点难点内容特别指导、实践项目任务书等必需的教学资源。让学生依据自身学习能力、学习兴趣和学习时间,通过网络资源自主安排学习进度。教师可通过多种方式实时指导学生,如电话、电子邮件、课程学习论坛、建立QQ课程群等形式实时指导学习,培养学生自主学习能力。其次组织成立兴趣小组确定学习项目、让组长安排分配学习任务,教师参与定期交流学习体会,能解决活动中存在的问题。而协作学习有助于增强学生之间的沟通能力以及培养学生的团队意识。再学生可通过访问专业网站与经验丰富的编程人员交流,以提高自己的编程水平。并定期进行考核计入总评成绩,督促鼓励学生进行自主学习。同时了解学生学习效果,调整学习方法,激发学习兴趣,培养学生学习的主动性,使学生不在是被动的、孤立地学习,从而培养学生的自学能力和团队协作精神。
5 考核方式的改革
目前大多采用理论考试和实践考试相结合模式,以掌握知识为主单一的闭卷笔试占比例更大些,以至于难以衡量学生实践动手能力,不能客观公评价学生掌握该课程情况,甚至制约了课程教学改革和教学质量的提高。因此改革考核方式也是教学改革的重要内容之一,运用多样化的考核形式有利于全面真实地对学生的知识掌握程度、实践能力的衡量。考试重心转移到对学生的实际能力的考核,如,采用项目答辩、上机考试、过程考该等多种考试方式。完善的考核方式将推动课程的教学改革研究。
6 结束语
在面向对象编程技术课程教学过程中,应避免理论教学和实践环节脱离、注重学生项目开发能力的培养,授课教师应定期到软件企业调研,掌握最新的Java技术,调整教学计划,整合课程体系。还应采用科学合理的教学方法,引导学生采用正确的学习方法。理解面向对象程序设计的总体思路及各种抽象概念。培养学生查阅资料、编写和调试程序能力。特别注重在整个教学过程中贯穿软件工程的思想.培养学生具有一定的软件工程的素质和团队合作意识,为今后从事软件技术开发工作打下良好基础。今后,本课程组要总结前期课程建设工作,如教学内容的整合、教学方法和教学手段的改革和实践能力培养的突出方法。构建课程体系,编制实教材,建设案例库和项目库等资料,完善本课程教学体系。
【参考文献】
[1]王新海,李建东.李捷娜.软件工程专业课程体系研究与实践[J].计算机教育, 2012(4):70-73.
[2]韩春燕,高晓兴,姜慧妍,等.软件工程专业课程体系优化方法研究与实践[J]. 计算机教育,2009(2):70-73.
[3]王秀坤,张宪超,郭禾.本科软件工程专业软件类核心课程关联式教学模型研究与实践[J].计算机教育,2008(12):91-92.
[4]陈云芳,孙力娟.软件工程专业课程体系研究[J].高等工程教育研究,2009(2):140-144.
[5]许庆伟.徐兆佳.杨莉.软件工程专业Java教学初探[J].计算机教育,2009(1):28-30.
[6]阳王东,吴宏斌,祝青.以工程项目为主线的软件工程专业课程设计实践教学[J].计算机教育,2012(12):90-93.
[责任编辑:杨玉洁]