APP下载

《Java程序设计》与《软件工程》综合教学改革初探

2016-12-28杜小坤涂韬徐胜舟

现代计算机 2016年33期
关键词:Java程序设计面向对象程序设计

杜小坤,涂韬,徐胜舟

(1.中南民族大学计算机科学学院,武汉 430074;2.湖北广播电视大学导学中心,武汉 430074)

《Java程序设计》与《软件工程》综合教学改革初探

杜小坤1,涂韬2,徐胜舟1

(1.中南民族大学计算机科学学院,武汉 430074;2.湖北广播电视大学导学中心,武汉 430074)

针对目前《Java程序设计》与《软件工程》课程教学中出现的问题,分析问题出新的原因并结合一些已有的教学改革成果,提出一种将两门课程进行综合并增加实践部分学时的改良方案。

软件工程;Java程序设计;面向对象

0 引言

《Java程序设计》与《软件工程》是计算机类专业高年级本科生的专业选修课,两门课程都具有较强的实践性,都着重培养学生的实践能力,但传统教学模式偏重于理论教学,对实践性较强的课程存在授课内容空泛,实践内容不完整、学时不足等缺点,导致最终教学效果不够理想。

1 传统教学方式分析

传统的教学体系将两门课程分别开设,使得在教学过程中存在如下一些问题:

《Java程序设计》:Java语言的应用十分广泛,且非常适合于大型程序的开发。作为一门专业选修课程,学生选修该课程的比例极高。该课程以培养学生面向对象的程序设计思想为目标,以Java语言及其面向对象特性、界面编程为重点教学内容,以代码阅读讲解为主要教学方式。这种灌输式的教学方式使学生无法真正理解知识点的应用场景,不能在实际中灵活应用,更无法体会到编程的乐趣和成就感,从而失去学习兴趣[1]。虽然目前已有一些教研成果通过在教学过程中引入大量实际工程案例的方式的提高学生的实践能力,取得了一定的效果,但也存在一些问题[2]。首先,模拟实际项目开发的工作量较大,现有的Java课程体系一般安排为48个学时(实践课16个学时),不足以支持实际项目的模拟开发;其次代码设计和实现只是项目开发中的一个重要环节,在Java课程中进行完整的项目开发实践不切实际,但若仅进行代码的设计与实现部分则无法使学生深入体会其面向对象特性的应用创景,效果不够理想。

《软件工程》:软件工程是运用计算机科学的理论和技术,并辅以工程管理的原则和方法,按预算和进度满足用户要求的软件产品的定义、开发、部署和维护的工程或以之为研究对象的学科[3]。该课程涉及复杂的工程性问题,其复杂性来源于现实世界问题的复杂性和教学过程中对问题复杂性的“难以再现”。事实上,教学一般通过从复杂现实问题剥离出一些简单问题,易于讲解,学生也易于接受,但这种剥离不仅使教学过程不完善,也导致学生不能驾驭实际问题[4]。对此,引入实际工程案例进行分析是一种有效的解决方案,目前已有大量的成果对此进行研究,但无法全面开展的一个重要原因是其中存在一些不可控的因素(例如实践教学质量无法有效保证等)并且对既有课程体系存在较大的冲击。

传统教学方式将两门课程分开进行,主要存在两方面的问题。首先,两门课程关注开发流程的不同阶段,都仅涉及其中的一部分,因此其实践课程内容的设计都仅包含软件开发流程的某一个或几个环节。其次,实践课时少且分散,导致学生仅能完成软件开发流程的某些环节,无法完整的操作一个具有一定规模的软件项目。针对上述问题,本项目提出一种综合实践教学的改革方案,该方案通过重新调整两门课程的理论和实践学时并将两门课程的实践课合并为一门大型的综合实践课程的方式以获取充分的实践学时来保证能够完成一个大型的实践项目的全部流程。Java语言是目前大型程序设计的主流语言,而软件工程也主要研究大型软件的设计与管理过程,二者的知识体系具有较强的相关性和一定的互补性。据此,本文提出一种将这两个课程合并教学的综合课程改革方案,该方案具有如下几点优势:

(1)使学生对面向对象思想的理解更全面。面向对象的思想即使Java语言的核心思想,也是软件工程的重要设计思想,二者的结合使学生对面向对象思想的认识更全面、更深刻。

(2)对现有课程体系的冲击较小。无须安排专门的课程教学时间,仅需将两门课程已有的理论和教学时间调整到同一学期并重新分配理论和实践教学工作量的比例即可。

(3)强调实践教学,提高动手能力。导师负责制的小班集中实验教学模式,导师能够对学生进行更具有针对性的指导。

2 总体实施方案

本次综合教学改革的具体实施流程如图1所示。首先由资深教师对关键的理论知识点进行精讲(实行大班教学),然后学生对相关知识点进行实践和综合实践,整个教学过程中,要求学生独立完成1-2个大型的软件工程项目的全部流程。与传统方式相比,其特点及优势主要体现在如下几个方面:

(1)将《软件工程》与《Java程序设计》课程体系中的相关知识点融合,这些知识点在不同课程体系中的具体表述存在一定差异,但其实质是相同的。通过横向、纵向的反复对比联系,让学生能够更深刻的理解和应用面向对象思想。

(2)重新分配课时比例,强化实践教学。已有课程体系中理论与实践教学课时的比例一般按照3:1的比例分配,这显然不适合实践性较强的课程,导致理论课花费大量时间读程序,效率低下。重新分配后,理论和实践课时比例为1:1,重点强化学生的实践能力。

(3)小班制的实践教学。理论教学实施大班教学,集中教学能力强的教师重点讲解关键的理论知识;实践教学实施小班教学(每班15人),使教师能够充分与每个学生进行沟通,了解学生在实验过程中问题,并在项目实施的关键节点对学生进行测评,既能考察学生动手能力,又能主动及时发现相关问题并进行指导,提高学习效率。

(4)创新性的课程考评机制。传统课程考评机制常用30%(实践)+70%(考试)的方式,但在一些实践性较强的课程中,传统的考试形式很难反映学生的真实水平。本方案将考试所占比例降低为40%,并完善了实践课程的考评机制。

图1 《Java程序设计》与《软件工程》综合教学流程图

3 综合改革具体实施方案

面向对象是《软件工程》与《Java程序设计》课程共有的重要概念,下面以该知识点为例讲解综合教学改革实施方案的过程。

3.1 传统教学方式及缺陷

面向对象的软件工程方法是软件设计方法学中极其重要的一种方法,其基本原则是尽可能地模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致,便于程序的理解和维护。Java作为目前最流行的面向对象语言,在软件工程课程实践中被大多数同学选用。传统教学方式在对该知识点进行教学时主要会遇到如下两个问题:

(1)实践课学时数较少,无法完整的执行一个大型面向对象软件开发的全部流程。《Java程序设计》和《软件工程》的实践课学时都为16学时,因此在实践课题的选择上存在较大局限性,前者一般选取规模较小仅能完成初步功能的题目,而后者一般仅要求学生完成部分代码。二者都无法完成实际软件开发的整个流程。

(2)面向对象语言的诸多特性都是为了更方便地解决面向对象设计过程中遇到的各种问题。《软件工程》课程中仅介绍设计理念,缺少具体实现,而《Java程序设计》则仅介绍Java面向对象特性的具体实现。这种分开的教学方式使学生缺乏对面向对象思想的全面理解,在实践课程时大多也是生搬硬套。

综合改革教学方案能够有效克服上述问题,首先通过课程融合并提高实践课程所占比例使得实践课程量能够满足较大型软件开发的工作量,其次通过面向对象分析、设计、实现一整套的流程实践,使学生对面向对象思想的理解更深刻,运用起来也更为灵活。

3.2 具体实施流程

新方案将面向对象对象的分析、设计、实现过程完整的融合,下面给出该部分内容的教学大纲:

第三章Java面向对象的设计

通过本节的学习,学生应熟悉面向对象程序设计方法的整个过程,重点掌握面向对象分析的基本过程及模型的建立,设计对象的交互作用、指定联系、寻找继承、分析对象行为、设计系统的体系结构,测试用例的设计。

第一节面向对象的基本概念和特征(4学时)

1.面向对象方法学概述

2.面向对象的概念

3.面向对象建模

第二节面向对象分析(4学时)

1.面向对象分析的基本过程

2.需求陈述

3.建立对象模型

4.建立动态模型

5.建立功能模型

6.定义服务

第三节Java面向对象特性(4学时)

1.抽象与封装

2.Java类与类的设计

3.类的继承、多态

4.方法的重载

5.包和接口

第四节面向对象设计(5学时)

1.面向对象设计的准则

2.启发规则

3.软件重用

4.系统分解

5.设计问题域子系统

6.设计人机交互子系统

7.设计任务管理子系统

8.设计数据管理子系统

9.设计类中的服务

10.设计关联

11.设计优化

第五节面向对象实现(3学时)

1.程序设计语言和风格

2.测试策略

3.设计测试用例

通过上述课程学习应独立采用面向对象设计方法完成具有一定规模的应用软件的设计与开发流程,并由指导教师进行分阶段考评,考评成绩占期末总成绩的60%。具体考评表格如下表1所示。

表1 实践成绩评分表

4 结语

《软件工程》和《Java程序设计》是两门实践性较强的课程,教学的重点和难点在于强化学生的实践能力。笔者分析传统教学方式针对实践性课程存在的缺陷,提出一种综合性的改良方案,该方案能够在基本不改变现有教学管理体制的前提下,提高学生实践性课程的教学效果,提高学生的实践动手能力。

[1]徐传运,张杨,王森.针对Java程序设计的仿真教学法[J].计算机教育,2013(6):99-102.

[2]覃国蓉,张席,李华忠.基于开源项目的项目教学法在Java教学中的应用[J].计算机教育,2010(12):66-69.

[3]教育部高等学校软件工程专业教学指导分委员会.高等学校软件工程专业规范[M].北京:高等教育出版社,2011:3-3.

[4]王灿辉,张舒,林郎碟.案例教学法在软件工程教学中的应用[J].计算机教育,2012(1):20-23.

Discussion on the Synthetically Teaching Reformation of Java Programming and Software Engineering

DU Xiao-kun1,TU Tao2,XU Sheng-zhou1

(1.College of Computer Science,South-Central University for Nationalities,Wuhan 430074 2.Guidance Center,HuBei Radio&TV University,Wuhan 430074)

Aiming at the problems in the teaching of Java Programming and Software Engineering,analyses the reasons and combines the existing teaching reformation achievement,proposes the improved solution to combine these two courses for synthetically teaching,and adds some practice class hours.

Software Engineering;Java Programming;Object-Oriented

1007-1423(2016)33-0057-04

10.3969/j.issn.1007-1423.2016.33.013

2016-10-08

2016-11-16

中南民族大学“本科教学工程”(No.JYX14024)

杜小坤,男,讲师,研究方向为模式映射

猜你喜欢

Java程序设计面向对象程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
面向对象的计算机网络设计软件系统的开发
面向对象的数据交换协议研究与应用
《Java程序设计》课程网站的设计与实现
Java程序设计基础课实践教学中的分层教学模式研究
高职高专院校C语言程序设计教学改革探索
基于实训项目的Java程序设计实验教学模式改革与实践
基于工程思维的Java程序设计课程教学研究
面向对象Web开发编程语言的的评估方法