信息系统开发与管理课程实践的设计与实施
2010-02-16陈洁
陈 洁
(中华女子学院 计算机系,北京 100101)
计算机科学是一门注重实践能力的学科。在《中国计算机科学与技术学科教程2002》对毕业生的能力与技能要求中,明确指出实践能力和技能是计算机科学与技术专业学生的必备能力和技能。因此,作为应用型本科院校,在应用型人才培养中,实践教学是整个教学过程的一个重要环节。[1]对计算机专业而言,课程实践是最常采用的一种实践教学形式,对学生应用能力与创新能力的培养起着非常关键的作用。实践能力的培养是创新教育的核心。虽然创新的含义不断扩展和深化,但创新的基石依然是实践。要创造就离不开实践,再好的设计创意也要在实践中变成现实。[2]
本文以计算机科学与技术专业开设的信息系统开发与管理课程为例,通过对课程特点及其对实践要求的分析,并结合计算机系学生的学习特点和知识能力,介绍课程实践的设计方案与实施过程,通过对实施效果的评价提出改进措施。
一、信息系统开发与管理课程的特点
随着社会信息化的发展,计算机硬件技术、软件技术、网络技术与实践要求的发展为社会信息化进程提供了必要的条件,信息系统的普遍使用已成为信息技术应用的最主要、最广阔的领域,如,学校里常见的人事管理系统、财务管理系统、图书管理系统、教务管理系统、物资管理系统等,信息系统的建设在各行业各领域中变得越来越重要。在信息系统的开发过程中,系统分析与设计的好坏是信息系统建设成功的关键因素。
信息系统开发与管理课程是培养学生掌握信息系统分析与设计的基本方法及技术应用,具有分析和解决信息系统规划、分析、设计、实施及维护管理中的实际问题的初步能力,以及使用典型的建模工具辅助系统分析和设计的能力。与本专业的其他课程相比,该课程具有以下两个主要特点:
1、理论与实践密切结合。本课程既有系统化的理论,又需要充分考虑个案的实际背景,实践性和操作性很强,需要遵循一定的开发方法,并运用相关技术和开发工具进行系统的规划、分析、设计、实施与管理工作。构建一个信息系统与建造一幢楼房具有非常相似的过程,首先要学会设计方法,然后再根据不同的建筑要求,在某种设计思想的指导下,完成具体的设计与施工工作。
2、多门课程知识的综合应用。本课程除了要学习基本的系统开发与管理方法学,在开发的不同阶段还涉及数据库、程序设计、网络设计、软件工程等多门课程的知识应用。其他专业课程,一般主要涉及某个方面知识的学习,如某种程序设计语言的学习、网络知识的学习、数据库设计的学习等,本课程需要对这些选修课程中的知识进行综合运用。
因此,信息系统开发与管理课程的实践环节是整个课程学习中不可或缺的部分,大多数院校都是采用两种形式进行的:一种是章节实验,以理解和掌握本章的教学内容为目的,基本属于验证性的,通常称之为实验课;另一种是课程实践,是在课程后期或课程结束后安排的一次全面的综合练习,其形式是让学生选择某个实践课题进行信息系统的分析与设计,目的在于加深对信息系统基础理论和基本知识的理解,掌握使用信息系统分析、设计的基本方法,培养系统开发的实践能力。[3]对于课程实践,很多院校是以课程设计或课程实训的形式进行的,也就是在课程结束后,集中1周或2周的时间,让学生根据选题完成一个小型系统的综合开发,并单独计入学分。
根据培养方案,中华女子学院计算机系在信息系统开发与管理课程的设置上没有安排专门的课程设计的时间,但这个实践环节对于该课程来说又是非常重要的和必要的,一种折中的方式就是以大作业的形式进行。大作业是介于章节作业和课程设计之间的一种课程实践形式,其特点是,与每章的练习作业相比,具有高度的综合性,目的是培养和考查学生综合运用本课程知识解决某个实际问题的能力;与专门的课程设计相比,它又在选题、时间安排、考核内容等方面需要指导教师精心设计,才能取得应有的效果。
二、信息系统开发与管理课程实践的设计与实施
在实际教学中,笔者结合中华女子学院计算机系学生的学习特点,从以下几个方面进行了大作业的设计和验收。
(一)时间安排。按教学大纲规定,信息系统开发与管理课程有16个实践课时,根据整个课程的教学内容,12课时(6次课)安排为实验课,进行章节练习,4课时为大作业的答辩和作业点评。大作业需要学生完全利用课后时间完成,大约2周时间,对于学生在设计过程中遇到的问题,任课教师主要也是要在课后进行指导解答。
由于大作业的目的是让学生综合应用本课程所学知识,因此一般都是安排在课程内容快结束时进行。为了给学生留出设计的时间(并尽量与其他课程的大作业时间错开),首先就要合理规划教学内容。针对信息系统开发与管理课程,根据教学大纲的要求,具体要向学生介绍两种系统分析和设计的方法,一种是传统的结构化分析与设计方法,一种是目前广泛应用的面向对象的系统分析与设计方法,面向对象方法是本课程的教学重点,因此学生的大作业也就要求采用面向对象的设计方法完成。由于结构化方法产生的年代比面向对象方法早,所以传统的教学过程通常都是先介绍结构化的分析与设计方法,然后再介绍面向对象的分析与设计方法,而目前的教材几乎都是按照这种顺序编排内容的。实际上,这两种设计方法属于两套不同的方法论,完全可以先讲授面向对象方法,再介绍结构化的设计方法。这样,就可以将大作业的时间提前一个月左右,避免了与其他课程的大作业时间“撞车”,使学生能有足够的时间完成大作业的设计要求。
(二)选题设计。为了充分调动学生的积极性和能动性,变“让我做”为“我要做”,以提高作业质量,增强实践效果,教师必须做到对选题精心设计。[4]
首先,选题要贴近学生日常的学习、生活和工作,如,图书管理系统、选课管理系统、成绩管理系统等,学生对于这样的系统都有所了解,也都接触过,所以,容易产生动手试试的想法。从知识应用的角度来看,由于系统开发首先是从需求分析开始的,如果选题所针对的应用环境对于学生是不熟悉的而难以获取功能需求,那么后面的设计工作将无法进行。
其次,选题最好有实际的应用价值,能够学以致用,这样可使学生首先在思想上就认识到做这项设计是有意义的,因此会更重视作业完成的效果,而且完成这样的作业任务,更容易使学生获得成就感。模拟的或者假定的研究对象会使学生在分析和设计过程中忽略很多因素,而导致设计结果过于简单。另一方面,由于选题是针对一个实际的工作场景,学生必须根据该场景中的实际情况进行分析和设计,而同一个系统在不同应用场景下的功能需求不可能完全相同,从而也就避免了学生直接从网上或其他资料上抄袭的情况。
第三,选题的大小要适中,由于大作业要求学生在课下完成,并且实践的目的是让学生学会应用课堂所学的系统开发方法,因此选题的规模应当适中,从学生已完成的情况来看,部门级的规模比较合适。规模太小,会使学生不经过分析和设计阶段,就直接进行编码(实施阶段),这好比盖一间小平房,不必有设计图纸和施工图纸,就可以直接进行施工,这样就达不到课程实践的目的;规模过大,学生容易产生畏难情绪,并且也无法保证在所规定时间内完成。
基于上述几点考虑,学期末给学生布置的大作业选题就是“学生综合测评系统”和“计算机系毕业设计管理系统”。对于第一个选题,有些学生在大二学习完数据库原理课程之后就很想做了,而且这项工作在每学期末主要就是由学生干部来完成的,学生也都参与了测评过程,因此对于系统应具有的信息处理功能是比较了解的。对于第二个选题,虽然学生们尚未经历过毕业设计,但可以从计算机系制订的毕业设计(论文)管理规程中全面了解整个毕业设计的管理流程和信息处理需求。从学生实际完成的作业情况看,这种选题类型是比较适合的,如果分析合理、设计方案正确,并且能够编码实现,则可投入实际的应用,学生可以从中获得很大的成就感,并自我肯定,这种积极的心态反过来又会促使学生再接再厉,争取取得更大的成功。
(三)实施方式。系统开发涉及需求获取、系统分析、系统设计、实施(编码)等多个工作阶段,是一项综合性的工作,在实际的工程开发中通常都是采用团队合作的形式完成。因此,本课程的大作业也采取小组协作的方式进行,一方面可以培养学生的团队意识,另一方面可以减少学生的畏难情绪,有了问题大家可以一起商讨、共同解决,这一点很适合女生的学习特点,也比较适合我系学生的学习环境。目前是采用自愿组合的形式,小组成员大都是同一个宿舍的(这样可能更便于交流)。虽然是合作形式,但小组中的每个人必须有自己独立完成的设计模块,设计模块由小组长来分配,以杜绝“滥竽充数”的情况。
(四)作业答辩与作业点评。虽然只是一门课的大作业,但作业答辩还是很有必要的。特别是对于信息系统开发与管理课程,同一个问题会有多种设计方案,设置答辩环节有如下益处:第一,可以让每个小组充分展示自己的工作成果,尤其是对于做同一个选题的小组来说,通过相互比较不仅可以扩展思路,而且更容易认识到自己的差距和不足;第二,教师可以全面地了解学生的工作情况和分析问题的思路,更容易发现设计过程中所存在的问题及其根源。
作业点评则是对学生的答辩情况以及设计报告的一个总结,同样是课程实践的一个重要环节。点评的过程,既是对学生应用能力的一个评价,也是一个对知识再学习和再应用的过程。不论选题是否相同,每个组的设计方案都是不同的,各有长处和不足,通过教师对不同选题的分析和讲解,有助于学生加深理解,明确错误的原因,从而学到更好的应用方法。
三、结语
通过对信息系统开发与管理课程的课程实践过程的总结,并对实际完成的结果进行分析,可以看出,对于这种需要以大作业的方式、并且主要是让学生在课下进行的课程实践,选题和考核方式的设置非常关键。笔者认为本文上述所说的选题原则还是很合适的,可以大大减少教师课后的指导工作,但考核方式还有待完善。目前的考核形式还比较单一,只是根据学生提交的设计报告和课堂答辩情况进行成绩评定,针对小组合作的形式,今后在评定成绩时还应该增加组内互评和学生自评结果,也就是师评、互评、自评相结合,保证“多劳多得(分)”。另外,在设计要求上还可以再灵活一些。针对本课程而言,系统的分析和设计任务是必须完成的,但可以不要求将所有功能都编码实现(要将所有程序都编写完成并能正确地运行需要花费较长的时间),允许学生选择主要功能模块编码实现,或者只建立系统原型,即利用CASE工具(Computer Aided Software Engineering,计算机软件工程)辅助系统建模并自动生成程序框架,再利用可视化开发工具构造系统界面,以此验证分析结果和设计方案是否正确合理。完整的代码编写与调试等实际操作则可以要求学生在假期里去完成。
[1]李未.关于提高计算机本科教育质量的几点思考[J].计算机教育,2010,(1).
[2]王欣.浅议室内设计教学与创新人才培养[J].中华女子学院学报,2009,(4).
[3]李晓勇,周丽涛.提升计算机专业实践能力的研究与探索[J].计算机教育,2010,(1).
[4]周立涛,苑洪亮.计算机科学与技术专业实验课程体系的创新与实践[J].计算机教育,2008,(10).