“系统软件开发实践”课程的教学探索
2010-04-04訾小超陆松年
訾小超,薛 质,陆松年
(上海交通大学信息安全工程学院,上海 200240)
“系统软件开发实践”课程的教学探索
訾小超,薛 质,陆松年
(上海交通大学信息安全工程学院,上海 200240)
“系统软件开发实践”课程对学生领悟经典系统软件(操作系统等)的设计理念、深入理解系统软件的功能特性,以及基于这些功能特性编写高质量程序等方面均有很好的帮助。本文对“系统软件开发实践”课程的教学工作进行探讨,首先对该课程的教学和组织管理进行讨论,如开发实践的组织、题目的选取和开发过程的监督等,然后结合具体教学工作,分析教学过程中所发现的具体问题,并对相应的措施进行深入的探讨。
系统软件;教学方法;软件开发实践
对计算机软件相关专业的本科生而言,软件设计与开发方面的动手能力培养极为重要。系统软件(如操作系统、数据库系统等)是计算机系统正常运行的基础软件,学生若能深入理解系统软件的功能和特性,他们基于这些功能和特性编写高质量应用程序的能力就能得到提升。目前国内一些有条件的大学逐渐开设了系统软件开发相关的实践课程或一些大作业等[1-4]。
为促进本科生对系统软件的深入理解,提高其软件开发实践动手能力,我院近年来开设了“系统软件开发实践”课程的教学。本文对该实践课程的教学和组织管理进行讨论,结合具体的教学工作,介绍了我们在该课程的教学过程中所发现的具体问题,并对如何预防和处理这些问题进行探讨。
1 课程教学和组织管理
作为一门软件开发相关的实践课,“系统软件开发实践”课程的教学形式与其它计算机专业基础课存在明显的区别。我们采用如下形式来完成该课程教学和开发实践的组织管理。
(1)开发实践组织分工明确 开发实践以小组的形式进行,每个小组2-5人,具体人数按开发工作量确定。小组成员预先确定好每个成员负责开发的模块,组长负责开发项目的事务协调。
(2)课堂教学形式 该课程除了学生自主进行开发实践外,还辅以少量的课堂教学。
(3)开发实践题目设计 该课程的候选题目覆盖难、中、易三个层次,既有“内存分配算法实现”等较为简单的题目,也有“TCP/IP协议栈实现”等开发量比较大的题目,还有“入侵检测系统设计与实现”等专业性较强的研究性题目。
(4)开发实践过程监管 本课程采用开发文档审查、课堂汇报和讨论相结合的实践监督方式,前者实现开发过程标准化的检查,后者监督开发实践的过程。
(5)课程考核方式 考核方式主要兼顾两点原则:①考核不仅涉及整个小组的集体开发成果,还具体到每个成员的工作和表现;②考核不仅参考最后的开发结果,还注重具体的开发实践过程,以鼓励学生去尝试难度较大的开发题目,并有效避免抄袭。
2 教学实践中的具体问题
1)教学实践基本情况
开发实践题目倾向于操作系统和网络安全,即多数题目都与操作系统或网络协议栈的安全相关,授课对象为学院内的高年级本科生。他们基本修完软件设计和开发相关的专业基础课程(包括程序设计、数据结构、操作系统和算法以及软件工程原理等),已经基本具备软件开发相关的理论知识和程序编制的能力。
经过几届学生的系统软件开发实践课程设计的教学实践,基本上达到了预期效果。学生对系统软件的功能和特性理解透彻,所开发的原型系统大都达到预期的要求,学生的软件开发能力得到很大的提高;而且绝大多数学生都表示在课程实践过程中,接触并解决了项目开发所遇到的一些实际问题(如算法优化、模块测试方案确定等)。
2)教学实践中的具体问题
我们发现学生在软件开发实践中一些比较常见的问题和不足。
(1)软件开发的工程思想不能得到很好地贯彻。表现在:①多数学生轻设计重编码:一些关键问题还没有考虑清楚就急于进入编码阶段;②重开发轻测试:很多小组对软件测试的重要性认识不足,缺乏软件测试的相关技术和手段;③开发计划性弱,前期安排比较松,到最后匆忙赶工。
(2)有些小组内部的沟通相对较少,协调效果差,小组与授课教师之间也缺乏有效的交流,导致系统软件开发实践不能很好完成。甚至个别小组到项目检查和结题时,才暴露出遇到了困难而无法完成项目工作。
(3)重视实践开发过程却忽视开发报告,忽视分析和总结。我们发现一些小组做了很多实际的开发工作,却不能很好地汇报和总结工作。
(4)个别学生参与系统软件开发实践的积极性不高,只顾挑选简单的开发题目。
3)对策分析与探讨
教学实践中存在上述问题既有学生方面的原因,如能力差别、兴趣不同等,也有教师教学方面的原因。从教学的角度来看,我们认为下列措施能够有效缓解问题。
(1)对软件开发的工程思想要在开发实践中加以贯彻,这需要从多个方面对学生进行指导。首先可结合一个具体开发实例,详细讲解如何按照软件工程思想来实现系统软件的开发;然后对软件开发的关键阶段(如项目目标和需求分析、概要设计等),要求学生提交相应的文档,并对文档进行审查或阶段评审。
(2)注重多种形式的交流和沟通。为保证交流和沟通的效果,可将开发目标、模块功能和接口等形成的文档交任课教师进行审阅,以避免一些理解上的偏差。
(3)采用多种形式加强对开发实践过程的督促和监管:①从课程评价上,如引入过程分,引导各小组按步骤、有原则地开展软件开发实践;②通过多种形式(邮件、电话、MSN等)和多频次检查和提示,督促学生完成开发项目。
(4)通过具体实例讲解,帮助学生提高报告撰写、项目分析和总结的能力。
(5)实践性强和目标明确的软件开发题目,对提高学生参与开发实践的积极性有非常明显的帮助,往届优秀的开发实践项目介绍和经验交流对学生也有显著的启发和激励作用。
3 结语
“系统软件开发实践”课程对学生领悟经典系统软件的设计理念、深入理解系统软件的功能特性,以及基于这些功能特性编写高质量程序等方面都有很好的帮助,同时可以提高学生运用软件工程思想设计软件和编制程序的能力。相对于一般应用程序而言,系统软件的实现和程序调试具有较高的难度,该类课程的开展无论是对教师还是对学生都是一个挑战。本文对“系统软件开发实践”课程的教学工作所进行的探讨,期望能起到抛砖引玉的作用。
[1] 龚玲,陆松年,薛质,“操作系统”课程教学探索[J].南京:电气电子教学学报,2007,29(5):1-3
[2] 宋广华,段健平,李善平,边学边干教研结合-谈“操作系统”课程教学改革[J].南京:电气电子教学学报,2006,28(5):1-3
[3] 林明方,将Linux引入操作系统课程教学的研究和实践[J].福州:福建电脑,2009年,21(6)208-208
[4] 滕艳平,王海珍,潘海珠,高校操作系统课程教学创新模式的研究与实践[J].北京:计算机教育,2009,7(7):101-103
Exploration on the Education of System Software Development Practice
ZIXiao-chao,XUE Zhi,LU Song-nian
(Schoolo f In formation Secur ity in Shanghai Jiao Tong University,Shanghai 200240,China)
The education of System Softw are Development Practice is important for the undergraduates to understand the performances and properties of system software,and further improve their programming ability.In this paper,w e investigate how to make a course of System Softw are Development Practice.Firstly,this paper discusses several crucial issues about the course,including the practice organization,the theme selection,the supervision etc.Then it analyzes some p rob lem s found in course experience.Finally,the paperexplores the countermeasures to dealw ith the problems and improve the teaching results of the course.
system softw are;teaching method;software developm ent p ractice
G642
A
1008-0686(2010)03-0005-03
2009-10-10;
2010-02-26
訾小超(1974-),博士,高级工程师,主要从事网络安全的教学与研究工作,E-m ail:zixiaochao@sjtu.edu.cn