关键词:数据库;设计;教学方法
中图分类号:G434
文献标志码:A
文章编号:1002-0845(2007)05-0106-02
一、引言
随着信息社会的到来,既掌握专业技能又具有计算机应用能力的人越来越来受到欢迎。为了适应社会的发展,必须培养既熟悉专业又能把计算机技术同各领域的专业需要紧密结合的复合型人才。数据库技术成为高校各学科专业的必修或选修课程。数据库课程设计一般是大学三年级学生在学完计算机应用基础、计算机编程语言、办公自动化软件基础、数据库原理与应用等课程后进行的集中实践环节,主要内容是通过社会调查,选择一个实际课题,完成数据库应用系统设计工作,课程结束后提交应用软件系统和课程设计报告。通过课程设计,可以使学生较全面地理解、掌握和综合运用所学知识,培养学生调查研究,查阅技术文献、资料以及编写技术文献的能力。非计算机专业学生对于计算机类的课程通常有一定的畏惧感,尤其对计算机语言、编程等,觉得难以驾驭和掌握。如何让学生通过数据库课程设计,使他们的各方面能力得到培养和锻炼,一直是值得思考的课题。本文结合教学实践,就教学内容、教学手段、考核方式、课程管理等方面进行初步探索。
二、课程设计的目标、内容及要求
教师应了解学生以往所学过的计算机相关课程,注意课程的衔接,分析非计算机专业学生已经掌握的知识和知识的体系结构,明确数据库课程设计的教学目标、内容及课程设计要求,对需要加强或充实的内容要重点讲解和补充。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用要求,包括数据库的结构设计(数据静态模型的设计)和数据库的行为设计(应用软件等的设计)。学生应按照数据库结构设计的需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护这六个阶段,分阶段分步骤进行,完成每一个阶段的任务。根据软件工程的方法和理论进行应用程序的设计,熟练运用相关语言编制应用系统的界面,实现工具与数据查询语言的无缝连接,建立数据库应用系统。要求学生要提交报告、所开发的软件系统和程序清单。课程设计报告包括各阶段的设计内容和对所开发的应用系统的评价,以及课程设计的体会与建议。
为了发挥学生的主动性,教师授课的重点应放在系统化的开发步骤和关键性问题的求解上,首先要介绍设计思想、方法和程序设计的思想和方法。课程设计过程中教师要指导学生查资料,如数据库原理及应用,数据库系统,软件工程,管理信息系统等方面的书籍,同时要指导学生善用软件帮助系统,培养学生学会质疑、自学和调查研究解决问题的能力。针对在校学生接触实际比较少,没有实际开发软件和工作经验的特点,应精选有代表性的案例,从问题的提出、方案的设计与实施,到最终问题的解决,给学生全面了解解决问题的全过程。然后,由学生当主角,让学生自己解决问题,锻炼他们综合运用知识的能力。
三、课程设计的选题
选题是整个课程设计的前提和关键。课程设计题目选择的难易程度、范围的大小和是否能激发学生的学习热情,直接影响到这一实践教学环节的效果。;。理论来自于实践,又服务于实践。要贴近学生学习和生活实际,先选择容易开发的实用的数据库应用系统,对学生以后从事相关工作有帮助。脱离实践的题目往往激发不出学生的学习热情,达不到预期的目标。
首先,将学生分成若干个小组。分组的依据为:学生的学习成绩、知识结构、学习能力、性格特点、男女搭配等,遵循互补的原则,成绩好的与成绩差的搭配,性格内向的与外向的搭配等。每组人员为5~6名,每组设组长,全面负责小组的学习讨论和任务安排。。教师只需提醒学生合理分配工作时间,注意小组成员之间的沟通,帮助把握进度。实践表明:在互相讨论又各自有所负责的学习氛围中,学生之间可以相互学习、取长补短,对知识的掌握与巩固有很大的帮助。
其次,各个小组通过讨论、观察、思考、查资料等方式,结合各个学生的特长,参考教师指定的范围选定课程设计题目,然后与教师进行交流。教师应对学生选定的题目进行批阅,在可行性、工作量大小、小组成员及题目意义等方面进行把关评估,及时将意见反馈给学生,学生再针对教师的意见进行调整,最终确定课程设计的选题。结合教学实践可以选择如下题目:客房管理系统、学籍管理系统、学校工资管理系统、科研项目管理系统、高校设备管理系统、档案管理系统、图书资料管理系统、教学成绩管理系统、后勤管理系统、系办管理系统、居委会管理系统、职工人事管理系统、宿舍管理系统等。
四、方案设计和方案实施
选定题目后,即可着手完成数据库课程设计的各个阶段的任务。首先,各小组应对所选题目进行分析,通过查阅资料、小组讨论、走访专家或社会调查等途径,进行调查研究和可行性分析。通过调查组织机构情况、业务活动情况、数据情况、用户要求,确定新系统的边界,完成系统需求分析。。接下来,实现E-R模型向模型的转化,利用关系规范化理论进行关系模式的优化,设计用户视图,同时进行界面设计,模块设计等,完成逻辑结构设计阶段的任务。再往下,进行物理设计和软件实施,最后是应用系统的集成与。小组成员在组长的领导下,可以分头完成各自负责的任务,小组成员要分工负责和团结协作。教师在指导课程设计过程中,可以设置几个检查点,制定阶段性任务。如根据课程内容、教学目的、系统规模、工作量等因素,审查各小组递交的初始设计方案,在设计方案的实现方法、表现形式等方面做出调整建议,以避免在方案实施过程中出现不必要的反复。
在课程设计过程中,提倡通过模仿来学习,只有多模仿才能掌握方法,才有可能创新。学生根据初始方案,通过各种途径查找与自己的题目类似的范例,通过模仿范例来实现自己的程序。有的学生在范例中看到自己感兴趣的内容,通过适当修改,将其应用到自己的程序中,使程序更合理,内容更丰富。学生在掌握了基本方法和解决问题的途径后,对自己感兴趣的内容,自然愿意努力去寻找答案。学生在方案设计、修改、实施的过程中不断发现问题与解决问题,逐步产生了学习的乐趣。为了避免在分组的实验、设计中有的同学不积极参与的现象,可以采用随机抽查的办法来考核小组的成绩,促使小组内部互相监督、互相帮助、互相学习,有利于培养学生学习的积极性,提高教学效果。
数据库课程设计中实验是重要的组成部分,教师要详细布置实验,制订上机纪律,并且督促学生严格按照课程设计各阶段工作要求操作。。包括创建数据库,创建表,建立字段和记录的有效性约束,建立索引,创建表间关系和触发器设计等。(2)使用表单操纵数据库。包括设计表单,创建表单,为表单添加对象,定义表单及其对象的属性、事件和方法。(3)设计用户视图。包括创建不同的用户视图,实现用视图来控制更新数据库中的数据的目的。(4)设计报表。包括创建报表,打印和预览报表,注意各个带区的使用。(5)设计菜单系统。包括规划菜单系统,创建菜单及其子菜单,为菜单指定任务,调试和使用菜单系统。(6)项目集成。包括使用项目管理器集成数据库、表单、视图、报表等数据库对象,设置主控程序,编译和发行软件等。
五、课程设计的考核与评定
学生在课程设计结束后,不仅要提交软件系统,还要提交课程设计报告,阐述其设计思路、运用的知识及自己的体会。。课程设计报告主要看各个部分的完备性,分析的透彻性和独到的见解。在评分方式上采取自评和互评的方式,首先由各小组依据教师给出的评价标准给本小组打分,然后由每组各选一名代表给大家介绍系统开发的情况并演示系统,同时回答学生和教师提出的问题。所有小组代表陈述完后,由各组分组讨论,对其它组开发的系统进行评价和评分。最后由教师根据其自评、互评分数结合实际情况(包括软件开发水平、演示能力、回答问题能力、软件开发文档等)适当总结并公布成绩。
;教师也可以采取删除软件中一些关键性语句由学生当场调试的方法检查学生的学习效果。通过评价和自我评价,学生的学习主体意识得到充分体现和加强,激发了学生发现、分析和解决实际问题的学习积极性,不仅提高了学生运用数据库理论开发出具有实际应用价值的数据库应用系统的能力,而且学生思考和解决实际问题的能力也有了较大提高。
六、结束语
课程设计是一种学习、实践、探索和创新相结合的综合教学,是高等学校培养人才的重要教育教学环节。通过近年来课程设计的指导实践.笔者深切地体会到,正确合适的选题、恰到好处的指导、学生积极性的调动、科学的评价手段及课程设计规范化管理等对提高课程设计质量是至关重要的。实践证明,课程设计大大激发了学生的学习兴趣,促使学生将所学的课程知识运用到实践中去,使学生对所学的知识融会贯通,巩固加深。课程设计培养了学生的团队意识和协作精神,增强了学生的创新意识,提高了学生的创新能力。
参考文献:
[1]靳学辉.数据库原理与应用[M].北京:电子工业出版社,2004.
关键词:CDIO工程教育模式;数据库课程设计;教学改革
中图分类号:G64 文献标识码:A 文章编号:1009-3044(2015)05-0141-03
Reform and Practice of Course Design of Database based on CDIO
LU Lu, LING Jie
(School of Computer Science and Technology, Guangdong University of Technology, Guangzhou 510006, China)
Abstract: Aiming at the problems of the shortcomings of the traditional pattern of traditional course design of database,Based on the concept of the CDIO engineering education, combining with the present teaching situation of course design of database of computer-related specialty in an university of Guangdong, the specific measures on the teaching system and evaluation for course design of database is expounded. The practice results show the teaching reform expands the students' open minds,stimulates students' initiative and raises the students' practical abilities .
Key words: CDIO engineering education; Course Design of Database; teaching reform
CDIO工程教育模式是近年来国际工程教育改革的最新成果。从2000年起,麻省理工学院和瑞典皇家工学院等四所大学经过四年的探索研究,创立了CDIO工程教育理念。CDIO代表构思(conceive)、设计(design)、实施(im-plement)、运行(operate),它是“做中学”和“基于项目教育和学习”(Project based education and learning)的集中概括和抽象表达。它体现了现代工程师所应具备的服务于现代工业产品从构思、设计、实现到运行的全过程所必须拥有的基本能力。CDIO培养大纲将工程毕业生的能力分为工程基础知识、 个人能力、 人际团队能力和工程系统能力四个层面[1-2]。然而我国工科的教育实践中还存在不少问题,如重理论轻实践、忽视团队协作精神等问题。国内外的经验表明CDIO的理念和方法是先进可行的,适合于工科教育的教学改革。
1 数据库课程设计传统教学模式培养现状
数据库课程是计算机及其相关专业课程体系中的核心和基础;而数据库课程设计是数据库课程的实践科目,其特点是综合性强,对动手操作能力要求比较高。但是,传统数据库课程设计的教学模式,往往偏重理论,这会让学生处于课堂教育与实践操作严重脱节的尴尬境地。因此,针对计算机专业人才培养的现实需求,数据库课程设计教学改革势在必行。
2 数据库课程设计教学改革研究
为了达到让学生主动学习的目的,基于CDIO的模式理念,本文构建了数据库课程设计教学内容体系。该体系自始至终与数据库理论内容以及CDIO模式相结合,通过项目驱动,让学生参与其中,按照数据库设计的每个阶段由学生自发独立的发现问题以及解决问题,最终完成课程设计的各个内容。
2.1 数据库原理教学内容以及传统数据库课程设计教学安排
数据库原理针对计算机相关专业本科教学内容主要涉及关系数据库、关系数据库标准语言SQL,数据库安全性完整性、关系数据理论、数据库设计、查询优化、数据库恢复和并发技术[3]。
以广东某高校计算机学院为例,数据库原理理论教学56课时,授课时间为学期第1周至第16周。数据库课程设计16课时,课程设计准备工作主要集中在第13周到16周,设计完成以及检查时间为第17周。(教学内容与进度如图1所示)
这种传统教学的弊端主要体现在:
1)理论教学与实践操作相互脱节。学生不能发挥主动学习的积极性;
2)课程设计实践操作部分学时少,准备不够充分;
3)课时分布不均匀,前松后紧,学生动手实践部分大多放在学期末,容易造成学生在期末考试的压力中忽略动手能力的提高和培养,眉毛胡子一把抓;
4)单凭一个课程设计报告和程序很难衡量学生对知识的理解和掌握程度;
鉴于以上的内容,本文提出了基于CDIO模式的新的数据库课程设计教学体系。
2.2 数据库课程设计教学模式改革
数据库课程设计教学模式改革主要体现在:课程设计在理论教学中贯穿始终。基于CDIO的数据库课程设计教学改革内容如图2所示。
2.2.1 课前准备
。因此,团队协作也作为数据库课程设计教学改革的一个重要内容。为了学生沟通方便,每个行政班中以寝室为单位(4个学生)组成若干个开发团队,选取组长,并且向老师上报各个组员的分工情况,之后各个开发小组可以根据老师给出的备选题目进行选题。
2.2.2构思(Conceive)
CDIO的精髓在于让学生“做中学”。但是对于没有任何数据库基础知识的学生来说,课程开始就投入到实践中是不现实的,所以范例教学十分重要。在理论教学开始时教师利用大概2周的时间,讲解数据模型、数据库系统结构、数据库系统的组成、数据库技术的研究领域以及前沿的知识体系、开发工具,让学生对该领域的知识产生浓厚的兴趣。然后,教师可以从典型案例着手――以学生管理系统为例,讲解如何进行业务流程分析、功能分析和数据需求分析,如何绘制用例图,在数据库设计过程中如何完成数据流图和数据字典分析,让学生在范例讲解中一步步的学会如何绘制ER图,如何设计数据字典中的各项内容。该阶段是构建系统蓝图的阶段,所以,教师要引导学生立足于不同项目的实际需求,通过调查问卷、查阅资料、客户走访等形式,深入探析软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件各项有效的需求,与此同时,在确定需求过程中,团队成员之间的磨合与沟通也是必不可少的。通过各个成员的协调,才能最终确定该团队共同的软件需求以及数据库整体规划策略。该阶段的汇报成果即是各团队小组的需求分析报告。
2.2.3设计(Design)
数据库设计包括概念结构设计、逻辑机构设计和物理结构设计,所涵盖的理论知识点比较多。传统数据库原理教学和数据库课程设计在设计阶段几乎是相互脱节的,见图1。为了能让学生提高完成项目的主动性以及自我认知性,数据库课程设计调整幅度也相对比较大。
1)课堂学习关系数据库时,引导学生以课程设计中的选题项目为基础,编制相关的关系代数的演算
2)课堂学习关系型数据库标准语言SQL时,引导学生以课程设计为基础,利用SQL语句解决数据的增删改查的一系列问题,并且针对需求分析中不同的设计模块,设计不同的SQL操作,其中包括单表查询、多表查询、模糊查询、相关子查询、不相关子查询、多表更新操作、视图操作等。
3)课堂学习数据库的安全性和完整性时,通过一系列反例,例如违反实体完整性的数据操作会带来怎样的后果;违反了参照完整性的操作会有哪些危害等等,让学生强烈感知如何能设计出效率高、安全性较好的数据库基本表。此时,可以让学生根据项目选题设计出系统的各个分ER图并且形成初步ER图,在合并过程中找出冲突和问题所在,为后续内容做准备。
4)课堂学习规范化理论时,利用循序渐进的方法,举例说明,让学生利用范式的思想,对项目中的表格进行规范化分析,判断属于第几范式,有什么样的优缺点,能否进行优化。此时,课程设计的概念结构设计,逻辑结构设计已经初具雏形。
5)课堂学习第七章数据库设计时,结合实例,让学生独立完成概念机构设计中的消除冲突与优化,完成由基于项目的初步ER图到基本ER图的转变;。
该阶段的汇报成果是各团队小组的概要设计报告。
2.2.4实现(Implement)
设计阶段其实是将任务离散化,那么实施阶段就是将项目综合化。该阶段中,书本上的重点内容已经基本结束,学生可以根据学过的基础知识自由发挥,将之前的需求文档以及概要设计文档进行拓展和完善,并且将自己设计的关系代数以及SQL语句转换成高级程序语言中的数据库操作的语句。这时候,有能力的同学也可以根据老师上课讲授的查询优化等内容针对具体项目实际进行查询算术优化和物理优化,并且对比执行效率,感受在不同的实际应用中对不同问题的处理方式。
该阶段的汇报成果是各团队小组成员的详细设计报告的综合文档。
2.2.5运作(Operate)
系统模型建立好之后,要进行软件的各项测试。学生可以通过学习恢复和并发控制等内容,对系统的完整性、安全性等性能进行进一步的改善,完善详细设计报告,补充系统测试内容以及使用系统安装使用说明。最后,通过小组的公开答辩,向老师和全班同学展示系统的设计思路、完成过程以及跟同学们交流心得和体会,并由其他非小组成员的同学作为评委进行点评。
2.3 课程设计考核评价改革
课程设计是一门衡量学生动手操作能力、综合运用能力的科目,所以这门课程更要体现对学生是实践能力的检验。数据库课程设计考核评价改革主要体现在:改变单一的评分标准为多角度综合性评价标准(如图3所示)。
2.3.1 项目文档(分数比例50%)
项目文档包括需求分析报告、概要设计报告、详细设计报告。
1)需求分析报告(分数比例10%),内容包括:
①可行性分析;
②拟采用的开发工具;
③用例图;
④数据字典,包括数据项,数据结构
⑤软件模块初步设想以及每个模块可能进行的操作。
2)概要设计报告(分数比例20%):
②软件设计方面:功能结构图以及各功能模块主要功能(明确小组成员的分工)
3)详细设计报告(分数比例20%),内容包括:
①系统与后台数据库连接的执行过程;
②系统各模块的主要界面和UI接口;
③系统各个模块的流程图以及详细实现过程;
④关键问题的解决方案;
⑤总结系统后续有待优化和改善的方面。
2.3.2 项目成果演示(分数比例40%)
该类别主要考核的方面如下:
1)系统运行正确;
2)功能完善:有增、删、改、查功能,输入、输出功能;
3)有基本的统计、报表功能;
4)有多表连接查询、自身连接查询、字符串匹配查询、模糊查询、分组查询等;
5)工作量饱满,系统实现技术的难度;
6)是否符合软件开发规范;
2.3.3 团队综合素质(分数比例10%)
该类别主要通过系统演示、课题答辩以及团队的出勤和会议纪要等信息考核团队成员的协同合作的能力,而且,尤其要注意有些同学过分依赖他人的思想。所以答辩过程中要求每个小组成员都要对自己所做的内容进行阐述和说明。
3 结束语
通过一系列的基于CDIO模式课程设计教学改革,使得每一个同学都有公平的主动参与的机会,同学们从这门课程开始就主动思考项目中各种实际问题,由“学中做”转变为“做中学”,极大发挥了学生的积极性和创造力,从而使得数据库课程设计的实践教学取得了非常好的教学效果。很多同学都对数据库产生了浓厚的兴趣,而且也有一部分同学毕业之后选择了数据库相关的行业。
参考文献:
[1] E.F.Crawley. Creating the CDIO Syllabus, a universal template for engineering education, fie, vol.3,Pp.F3F8 -13, 32nd Annual Frontiers in Education (FIE’02), 2002.
关键词:综合性课程设计;软件工程;教学实践;创新模式
中图分类号:G642 文献标识码:A
1引言
软件工程课程具有综合性强,实践性要求高的特点。但是,通过教学实践发现学生普遍感觉软件工程课程中的概念抽象,不容易在课堂讲授中获取切身的体会和认识。同时,大部分学生的编程实践较少,很少参与开发实际的软件项目,对项目的背景了解甚少,欠缺在实际环境中综合运用知识的能力。因此,仅仅是在上软件工程课程的时候以固定课时的方式进行实验训练,学生很难真正理解和掌握软件工程的内涵。从实验过程来说,学生也没有足够的时间为具体的项目做好充分的准备,以完成资料查找、阅读、系统分析、设计、编码和测试等软件开发工作。此外,很多学生重视编程等技术的学习而忽视了必要的文献查找、阅读和写作的训练。
开展综合性课程设计主要是要解决本科生在学习中重理论轻实践,缺乏综合运用各种知识来完成实际工作的问题。软件工程综合性课程设计作为培养学生软件开发能力的重要教学手段为软件工程课程教学提供了理论与实践相结合的有效途径。通过参与综合性课程设计,学生能更好地掌握软件开发的基本技能,培养动手能力,锻炼分析和解决问题的能力。通过经历整个软件开发过程,学生发现和解决各种问题,能进一步培养学生的创新素质;同时,经过工程实践,学生还能建立起独立开展软件开发工作的信心和动力。
2课程设计的组织
课程设计以学生为主体,为学生提供一个既动脑又动手,并且独立实践的机会。首先实验题目要能激发学生的兴趣而不仅仅是一些常规的示例性课题。其次,课程设计的时间安排、实验的开展都需要学生自己把握。因此,在实践过程中不能按通常的课程教学来组织,需要围绕给定的具体题目指导学生自己查阅相关的资料,自学必要的开发工具,搭建实验的开发环境,完成编程和测试工作。除了软件开发实践以外,还要在此过程中培养学生的项目组织和管理能力,以及团队协作精神。老师主要是通过指引方向、讨论问题、提出建议、评价和考核完成情况为学生提供一个将所学知识进行融会贯通的环境,让学生在这个环境中自由的成长。
(1) 制定目标和要求。让学生明确综合课程设计的重要性、需要完成的任务和考核目标,给出具体的问题领域和题目。综合性设计的题目可以按照不同的标准进行划分,例如:研究型和应用型题目,或科研型和教学型题目。研究型题目可以指定学生完成某个特定的研究问题,例如:某些比较复杂且学生没有学过的算法。。
(2) 按学生的实际水平和情况进行分组管理。学生在知识掌握和运用方面有一定的差异。有的学生具有较强的分析、理解能力,但是动手能力较差;而有的学生动手能力较强,但在写作方面的训练较少。不少的学生在接触到自己不熟悉的领域时,感觉进入陌生的领域很困难,缺乏完成题目的信心。另外,很多学生由于认识上的问题,关心编程锻炼而忽视写作练习。针对这些问题,在组织管理时,要充分了解学生各自的特点,把不同类型的学生划分到一个小组中,例如:在一个小组中以五个人为上限,进行合理组合和搭配使在一个团队中既有具有较强管理意识的学生、编程能力较强的学生,又有一定写作能力的学生。在管理小组时,让每个人去尝试其他小组成员的角色,让他们从团队中学习,既发挥各自的专长,又能全面培养软件开发的才能。
(3) 项目实施和指导。。在时间安排方面,通过一个学期来实施整个课程设计,所有实践不占用课程时间,学生利用课余时间来完成分配的任务。前期老师对如何开展工作进行指导,然后定期对学生的阶段性成果进行检查。根据学生所积累的问题的数量和重要程度不定期的做一些软件开发知识的专题指导,如软件编程规范、界面和数据库设计、软件体系架构等。在完成系统后,指导学生依据文档规范撰写实验报告。针对在写作过程中出现的条理混乱、表述不清等问题,通过讲解相应的写作模板和案例来加强学生的写作训练。最后,对学生提交的各种文档采用分析、讨论等方式进行评审和考核。
3教学实践
在综合考虑各情况的基础上,以实验项目的形式开展综合课程设计的教学活动。设计的实验题目涉及多领域的知识和工程背景。老师在指导过程中,运用引导、辅助等手段来充分发挥学生在实践中的主导作用,加强创新能力的培养,让学生充满热情地参与到系统开发,从中获取知识和经验。
(1) 引导学生进入课程设计
。给小组成员讲解综合性课程设计的目的和意义、题目背景,以及所涉及的知识领域。大多数学生是第一次完成这样较大的软件开发题目,缺乏足够的自信,老师需要通过鼓励来帮助学生扫清心理障碍。刚开始学生对整个工作没有明确的思路和规划,因此要引导学生按照项目的开发方式进行规划,包括时间安排、任务分配、确定重点、查阅资料文献,等等。通过培养学生独立查阅文献资料的能力和对系统进行分析和设计的能力,使他们能独立地思考问题,逐步摆脱对老师的依赖。
对于项目完成的成果,给出明确的规范和考核标准。在开始课程设计前需要向参加项目的成员介绍软件开发需要建立哪些文档,例如:需求规格说明书、概要设计说明书,等等,要求学生按照标准的软件工程文档来完成课程设计报告。概要讲解有关的软件开发工具,包括设计工具(MS Visio等)、开发环境工具(MS Visual Studio,Eclipse等)、测试工具(JUnit等)。这些工具的安装、配置和使用要学生通过搜索Internet、查找图书馆资料来自学掌握。
(2) 培养创新能力
软件工程教学如果仅仅在抽象的概念、术语和图表上进行分析、讲解,学生没有直接的项目开发体验,不了解真实用户的需求,就很难发现在软件开发中存在的问题,这样也就限制了学生用新的思维或新的角度去思考问题。从很多IT行业的成功例子中可以发现很多优秀的人才在实践中发现问题、解决问题从而创造了新的产品和技术,甚至开拓了一个新的市场或领域。例如,Google、Facebook、P2P软件等都是从最初一点想法和实践发展起来的。因此,在综合性的课程设计中要充分考虑发挥学生自己的想象力,训练学生的创新思维。
在综合性课程设计中提出四种创新模式,通过不同的创新模式引导学生突破传统和常规的思维方式,尽可能以创造性的方式去解决实践中遇到的问题。
① 应用创新。应用创新以实际工程中的用户需求为核心,以多领域相结合,强调软件系统的实用性,例如:在指导学生确定题目时,把P2P网络和信息检索相结合提出应用软件课题。
② 技术创新。开发一个具体的软件系统需要各门课程,甚至是其他学科的知识,因此,掌握新的技术,并对多种技术进行融合创新,能极大地激发学生的积极性。例如:根据学生已掌握的操作系统知识,在实验中结合多核技术拟定“基于多核实现矩阵并行运算”的题目。
③ 研究创新。研究创新强调问题驱动和研究导向,通过给出能激发学生兴趣的研究问题,进行研讨式分析和实验。老师指导学生阅读某个研究领域前沿性的论文,在论文的基础上实现相关的算法和系统,在逐步积累的基础上,对不足的地方加以改进,实现创新。
④ 管理创新。在实际的软件项目开发中,管理比技术更重要。通过实践要让学生重视管理,学会管理,培养管理能力,实现管理创新。例如,在软件开发中经常会出现各种变化,包括软件需求、设计、源代码等都会在开发过程中出现这样或那样的改变,学生通过在实践中体会这些变化对软件开发的影响,思考如何从管理的角度去解决这些问题,从而发挥创造性。
(3) 评价与考核
在实验过程中要进行阶段性评价,以讨论的方式找出软件系统和文档中的问题。将文档分发给团队成员,每个人要对其他成员的工作进行分析和衡量,对程序代码和各种文档进行评估,提出自己的看法。通过讨论以及批判性和创造性的思考,来强化学生之间的知识交流,提高其分析能力,锻炼交流和沟通技能。老师在评价时要考察学生的开发进度、商讨解决出现的技术问题,协调管理中的矛盾。在总结学生工作时要对学生作出指导,并给出改进建议。
考核方式主要是对学生开发的软件系统和课程设计报告进行评分。在评分时,要综合考虑学生的平时表现、提交的源代码、课程设计报告,以及是否具有创新性。具体来说,考核分为三个部分:第一部分是软件系统的需求分析,这一部分占 30分,主要根据文档考察学生对系统的认识和分析能力;第二部分是软件系统的设计,这一部分占30分,主要考核学生运用各种图表和语言进行系统分解和设计的能力;第三部分是软件系统的编码和测试,这一部分占40分,主要考核学生的逻辑思维能力和动手能力。
4总结
当前本科生除了掌握基本的理论知识和技能外,还需要通过训练学会如何运用各种知识来解决实际问题。综合性课程设计以培养学生的综合素质和能力为目标,以发挥学生主观能动性为指导思想,注重学生在实践过程中各方面能力的培养。通过开展软件工程的综合性课程设计,为学生建立起完成具体任务的团队合作环境,使学生真正成为学习的主动者,让学生组织项目团队,担任不同的角色,培养了组织和管理才能,提升了动手能力和创新素质。
参考文献:
[1] 周波,钟林飞. 软件工程课程设计教学方法探讨[J].计算机与网络教学,2007(9):154-155.
[2] 刘智,刘加伶,闫河,李唯唯.数据库课程设计的教学思路与实施[J]. 软件导刊,2009(1):198-199.
[3] 庞晓琼.案例驱动的数据结构课程设计教学改革实践[J]. 计算机教育,2009(1):53-55.
[4] 唐仕喜.编译技术可扩展式课程设计改革研究[J]. 计算机教育,2009(2):40-42.
[5] 张天宝,王攀峰.试论新型教与学的关系的建构[J].教育研究,2001,(10):38.
Teaching Practice of Comprehensive Course Design of Software Engineering
ZHU Da-yong1, ZHANG Xin-li2, LI Shu-quan1
(1. School of Software, University of Electronic Science and Technology of China, Chengdu 610054, China; 2. Department of Math and Information, Chengdu University of Information Technology, Chengdu 610054, China)
1.1系统流程分析
首先我们对该平台系统从信息需求和功能需求两个方面进行需求分析。为了实现CSCL思想的要求,系统分析过程中充分考虑了课程设计平台的交互性要求,在充分了解教师和学生的需求后,我们进行业务流程分析,将整个流程分为任务要求下达、申请阶段、中期检查阶段、终期审核阶段、答疑、评分等业务阶段,各个阶段有先后顺序要求,每个阶段中都考虑教师和学生的信息互动,并做相关信息存贮,保存各阶段过程信息,以备评分。
1.2数据库设计
本系统主要有四张基本表即教师表、项目表、学生表和课程表,各数据表的主要属性及表之间的关系见图1所示。
1.3系统功能模块设计
(1)任务要求模块:本功能模块针对老师以及学生开放,老师通过这个功能模块可以添加所属的课程设计的任务要求,学生通过这个模块可以查询老师所的课程设计的任务要求。
(2)项目申请模块:本功能模块针对学生和老师开放,学生通过此功能模块提交项目的申请,老师查看后,批准通不通过,学生可以登录平台后查询审核结果。
(3)中期检查模块:本功能模块针对学生和老师开放,学生通过此功能模块提交项目的中期检查论文,老师查看后,批准中审是否通过,学生可以登录平台查看中审结果。
(4)终期检查模块:本功能模块针对学生和老师开放,学生通过此功能模块提交项目的终期检查论文,老师查看后,批准终审是否通过,学生可以登陆平台查看终审结果。
(5)答疑模块:本功能模块针对学生和老师开放,学生提交问题,老师登陆后查看并回复,答疑基数改变。(6)评分模块:本功能模块针对学生和老师开放,老师进入界面可以看到学生的终期论文并结合学生在课程设计的表现情况打分,学生登录后可以查看自己分数。
3系统开发环境
以Delphi7作为系统集成开发环境,利用SQLServer2000数据库平台实现数据的存储管理,服务器使用MicrosoftWindowsXP操作系统。
2系统实施
本课程设计平台系统主要有:布置任务要求、学生查看、选择任务、提交项目申请、教师审核、学生查询、提交中期资料、教师审核、学生查询、学生发出疑问、查询答疑记录、教师答疑、教师查询项目信息、教师查询答疑记录以及教师评分18大主要功能并且分支于六大子系统。
3结语
关键词关键词:数据库课程设计;项目驱动;教学方法;考核方法;能力培养
中图分类号:G434 文献标识码:A 文章编号文章编号:16727800(2013)008017402
。
0 引言
数据库技术已经成为先进信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。数据库技术是将数据库与软件开发相结合,数据库设计和基于数据库的应用程序开发。为此,课程要求学生选用主流DBMS,自选某种高级程序设计语言,实现一个完整的以数据库为核心的B/S或C/S架构的应用系统。掌握设计实现一个完整的产品化导向的数据库应用系统的流程和方法,包括需求分析、数据库设计、应用程序设计。本文分析了湖北经济学院开设数据库课程设计以来,实践教学环节中存在的问题,结合项目模拟实训教学方法的基本原理,提出了基于团队项目模拟实训的数据库课程设计教学方法的具体方案及实施效果。
1 数据库课程设计教学现状
(1)题目过少不够开放。湖北经济学院是一所财经类教学型学校,开设的主要专业为经济管理类。。另外,题目呆板,没有和本校的专业特色相结合,选择余地太少。长此以往,会使学生养成不劳而获的坏习惯,不利于学生毕业之后适应竞争激烈的社会。
(2)学生轻分析设计,重编程实现。 学生把编程工作放在数据库设计中的首要位置,轻数据库及其对象的设计,重开发工具的使用。很多学生只重视系统功能模块的设计与实现,缺乏全局观念。
(3)学生缺乏整体意识,团队协作能力不强。在数据库系统开发的过程中,学生对系统没有整体规划,经常把时间都花在需求分析和系统实现上,造成在学生项目后期没有时间做系统测试,这样开发出来的系统必然出现很多问题。
软件开发是一个系统工程,特别强调团队协作能力。如果一个课程设计题目只让学生一个人完成,缺少与他人相互的交流,不利于交流与沟通能力的培养和项目的正常开展。原有教学模式下,学生做课程设计往往单打独斗,没有形成一个团队。
(4)课程考核方式不够科学。老师通常采用平时成绩和实验报告相加权作为总成绩。在这种考核方式下学生是被动地完成任务,不知道所做项目的评定标准,因而积极性不高,也不能通过项目设计有效地提升自己的能力。
2 数据库课程设计基础准备及教学目标制定
2.1 基础准备
综合性的实验课程往往需要很多课程作支撑。在该课程开设之前,前期学生应该已经学习了C、C++等一些经典的程序设计课程,学习了数据库原理及软件工程课程,对于数据库原理课程中的相关概念例如数据库文件的创建、表的建立以操作、视图与SQL查询、存储过程与触发器等进行了相关实验,对于关系型数据库基本概念和特性有一个比较完整的认识。由于课程设计中需要将数据库原理与工程项目相结合设计出具体的应用程序和界面,所以学生还需掌握至少一门前台开发工具,如 、或PHP等,让不同层次的学生选择不同的培养方案,有针对性地进行学习。
2.2 教学目标
结合教材上关于数据库设计的思想和方法,对一些简单的信息管理问题进行必要的分析和设计。在掌握了数据库系统的基本原理和基本方法的基础上,熟悉数据库管理系统的工具及语言。能查阅资料解决数据库技术方面的问题,具备在微软开发平台下进行数据库设计和管理操作能力,培养数据库应用系统开发的基本能力,项目合作、团队精神及小组交流的能力,培养学生运用数据库管理系统解决实际问题的能力。
3 数据库课程设计教学构思
课程组根据学生的实际情况,制定了相应的教学计划。本课程安排在一个学期内,32学时,每周具体安排如表1所示。
3.1 人员安排及开题
把整个班级按照开发小组的形式进行分组,每组4~5人,选一名组长,每个同学承担不同的角色,共同完成任务。在整个过程中,为了达到锻炼的目的,每个同学的角色可以互换。
在选题方面,应充分考虑到学生的专业特色,体现经管类专业的特点,选择具有专业特色的案例,以激发学生的学习兴趣。比如,针对“旅游管理”专业和“国际金融”专业,可以根据专业要求来分别制定教学案例,使学生在数据库课程设计中加深对本专业课程的理解,从而达到数据库课程设计和专业特色融合的目的。在制定选题的过程中,教师应进行充分的调研,与该专业的教师进行讨论,帮助学生选择他们熟悉的题目,如旅游酒店管理系统、学生成绩管理系统、人力资源管理系统等,或者选择学生生活中经常接触、能很快上手的内容。同时,应注意控制题目的规模和难度,使学生经过努力后能在规定的时间内完成。这个阶段可以充分调动学生的积极性,鼓励学生自己选题组建项目小组。这种方式经检验取得了较好的效果。
3.2 需求分析
在此阶段,要尽可能收集课题的全面需求,利用不同小组互相模拟实际用户的形式,开小组讨论会来确定需求,增强学生的沟通能力和开发兴趣,并引导学生自己画出数据流图。
例如,某家工厂的采购部每天需要一张订货报表,表中列出所有需要再次订货的零件。对于每个需要再次订货的零件列出下述数据:零件编号、零件名称、订货数量,目前价格、主要供应者。零件入库应有入库单,零件出库应有出库单,通过放在仓库中的CRT终端把入库单或出库单报告给订货系统。当某种零件的库存数量少于库存量临界值时就应该再次订货。
当系统比较复杂时,应当采用分层描述的方法。一般第一层描述系统的全貌,第二层分别描述各子系统的结构。如还未表达清楚,可以继续细化。
3.3 系统设计与实施
确定用户需求后,进入系统设计阶段。物理设计阶段应该充分利用表、视图、存储过程、触发器等各个数据库对象的特点,建立一个完整的数据库。要引导学生利用课程设计来熟悉数据库开发的一些常用技术和工具。例如,在数据库课程设计中可以教学生怎样使用Power Designer来做数据库设计。在软件公司实际的数据库系统开发中,有很多工具可以直接完成从数据库概念模型到物理模型的设计和转化。
系统实施阶段,各小组可以选择自己熟悉的程序设计语言动手编写代码,完成系统各个模块的功能。开发语言可选择机房环境,有Java、VB、VC、PB等;数据库可使用提供的SQL Serever2000、DB2、MySQL5等主流DBMS;软件架构两层、三层都可以。教师对各小组学生在设计中遇到的具体问题,有针对性地给与启发式的引导。
3.4 系统测试
系统测试阶段可以选取小组之间交换测试,主要从功能测试、数据库测试两个方面找出系统的缺陷,对软件质量进行评价打分。列出测试计划,往各数据库表中插入正确的测试数据,测试数据插入情况和各种约束作用,并记录结果;往各数据库表中插入错误的测试数据,记录出错结果;在各数据表中修改测试数据,记录测试结果;各数据表中删除测试数据,记录测试结果;创建各权限等级的用户,授予相应的权限,然后按权限等级执行相应操作,查看操作结果是否正确,最后再编写实验报告。
数据库功能测试主要是对界面进行测试,按用户类型进行分部测试,查看每一种类型的用户功能是否有欠缺;用户操作是否符合实际,是否具有意义;尤其是在功能实现上,不同情况,会有怎样不同的处理;查看在出错的情况下,系统如何处理。3.5 完成设计报告
。撰写设计报告前小组中各成员必须对自己的工作进行归纳、分析和总结。小结一般包括工作内容、工作量大小、自己完成情况、遇到的问题以及解决方法、收获与体会、今后努力与改进方向等。教师给出设计报告书写规范,学生根据系统分析设计结果完成该部分内容。报告编写是考查一个学生总结工作、撰写科技论文的能力。该环节考查的重点:报告是否内容完整、充实,条理是否清楚,格式是否符合科技文章规范。
3.6 检查与考核
考核是检验教学成果的有效方式和重要手段,对学生学习和教师教学具有重要导向作用,不同的考核方式能激发学生的学习动机。除了加强平时考勤外,教师还需在每个阶段对各个项目小组进行跟踪检查,对各个阶段的完成情况进行记录。从数据库原理、数据库应用和数据库设计三方面对学生进行综合评测,达到对数据库系统主要内容和框架的评测。具体考核指标权重为:平时表现 (25%) + 任务完成情况 (30%) + 答辩 (20%) + 设计论文 (25%)。同时还要鼓励学生在课程设计后,尽量撰写相应科研论文,积极申报校级学生科研项目。对于能力非常突出的学生,可以建立课外研究小组,让他们参与到教师在研的省部级科研项目中,进一步提升他们的专业技能和综合素质。
4 结语
数据库技术是一门理论和实践并重的学科。课程设计是否成功的标准在于学生是否通过项目开发,将自己所学到的数据库知识运用于实际需求中,是否提高了学生的动手能力。通过两年的教学实践证明,以这种方式开展课程设计更贴近企业实际的项目开发方式,能倡导学生主动参与的探究式学习和研究,改变学生被动接受、大量反复操练的学习和实验方式, 真正培养学生严谨周密的思维和临时处理问题的能力,满足企事业单位信息化建设的用人需求,有效地解决了理论教学与实践教学脱节和经管专业学生数据库工程实践能力薄弱的问题。另外,做好数据库课程设计作业有利于学生毕业设计报告和毕业论文撰写。今后学生面临的毕业设计其实就是一个完整的系统设计,是课程设计的扩大化、完整化,为设计报告的撰写、文献资料的查阅也为今后撰写毕业论文打下坚实的基础。
参考文献参考文献:
[1] 赵慧敏,杨鑫华,牛一捷. 数据库课程设计实践教学改革探索[J].当代教育论坛,2011(8).
[2] 张志锋,王文冰.以就业为导向的学生综合能力培养教改研究[J].计算机教育,2010(11).
[3] 林巧,丁革建.数据库课程设计的项目化实验教学方法[J]. 实验室研究与探索,2009(5).
关键词:小组互助式;课程设计;应用型人才;教学手段
中图分类号:TP393文献标识码:A文章编号:1009-3044(2016)01-0023-02
数据库技术是现代软件类人才所必需的三大技能之一,在高校培养软件类人才的课程体系中,数据库原理课程占有举足轻重的地位[1]。数据库技术是一项应用最为广泛,发展最快的技术,几乎涉及所有的计算机应用领域[2]。特别是随着大数据技术的发展,数据库技术已经成为该技术的核心技术之一。而对应于传统的数据库原理课程设计,存在着重原理,轻应用,教学方法较为陈旧等不足[3]。很难适应应用型本科人才的培养目标。通过在数据库原理课程设计中,引入小组互助式教学方法[4],可以改善这些问题。采用小组合作教学模式,教学过程的所有环节以小组活动为核心,依靠小组成员积极的相互依赖关系,面对面的促进式互助来完成学习任务;以小组成绩为最终考核成绩,而非某个成员的成绩。本文探讨了小组互助式教学模式在数据库原理课程设计的运用。
1数据库原理课程设计中存在问题分析
。
1)重理论轻实践,大部分高校开设数据库原理这门课程存在着理论原理学时和课程设计上机实践学时分布不均衡的问题。也就是注重理论知识的讲授,忽略了学生动手能力的培养,这与应用型人才培养是相矛盾的。
2)课程设计工作量较小,只适合一人独立完成。这与现代软件开发是相抵触的,从软件工程学角度来讲,软件开发需要团队协作完成。
3)课程设计考核制度较为陈旧。传统的数据库课程设计考核,大多以学生所做数据库系统的前台实现情况和后台数据库设计两个方面进行考核。所做系统相对简单,与实际要求的技术水平有出入。不利于激发学生实践的主动性,应用型人才培养的目标也无法真正落到实处。
2小组互助式教学的实施
1)组建数据库原理课设小组
根据学生自选优先的选择,分成若干小组。各小组组建后,求小组成员推荐组长。老师布置好课程设计任务后,学生根据要求开会讨论确定实施方案。有组长牵头实施,统筹全局,并将课程设计任务分解,分配到各小组成员手中。按照相应的工作内容,将小组成员划分为需求分析、概要设计、数据库设计、详细设计等工作的负责人。也就是每个人负责组织在不同阶段的实施内容,例如召集例会讨论、调研、设计等工作。每个小组成员,并不意味着完成自己的相应工作就完成了,也要参与到其他环节中去。
2)数据库原理课程设计题目的选取
根据所学数据库原理知识,根据所给题目,进行数据库设计,选择SQLServer数据库管理系统作为后台开发工具。结合所学面向对象编程知识,选择合适面向对象程序设计语言作为前台开发工具。。教师规定学生可以从学生成绩管理子系统、课程管理子系统、图书管理子系统、通讯录子系统、教室管理子系统、宿舍管理子系统、个人事务管理子系统,库房入库出库管理子系统进行选取,也可小组自拟题目,但工作量必须由指导教师进行审核。对于题目,教师鼓励小组自拟题目,因为这样学生才能选取与实际项目相近的题目,提高学生的课程设计的兴趣。
3)课设中实施
指导教师,要对各小组的工作进行整体监控。在课设的前期准备工作中,参与到各小组的课设讨论中去,给予相应的开发建议。通过小组间的竞争,点燃各小组的课设工作的热情,激发学生的数据库设计工作的欲望。当各小组进入到课程设计实施过程中时,要进行必要的指导,省得学生走弯路。课程设计环节对学生技能的提升来说非常重要,它能提升学生的设计能力和创新能力。学生在课设的实施环节中,按照小组进行,由组长统筹安排。依据数据库设计的工作流程进行开发,做到人员分工明确,以团队形式进行课程设计工作。课程设计结束后,要以小组为单位进行公开答辩,小组各成员表述自己设计的理念和实施方案,小组成员的结构和分工,遇到问题及解决方案等,由指导教师和各小组组长作为评委进行考核。这样有利于,增强学生的沟通能力,也提高了学生的社交能力和数据库原理实践能力,还培养了学生的团队精神。并且教师在整个过程中,既是主导者又是参与者,融洽了师生关系。
4)课设的总结
答辩结束后,各小组长要代表本组进行总结,主要总结课设过程中存在的不足,以及从其他组学习来的经验,还有对本组课设内容怎么进行完善等。最后教师对每组进一步的点评,包括各组的优缺点,课设中存在的共性和个性问题等。
3小组互助式在课设工作中的优势和不足
小组互助式进行数据库课设工作,是以小组为主导,教师为辅助的一种课设教学方式。比以教师为主导的程序要复杂,但学生在参与热情上明显提升。比较优秀的学生通过此进程,可以提高自身理论实践的水平;中低层次的学生,可以通过与小组其他成员学习,增加自己的学习兴趣。这种方式,给予每名同学展现自我的平等机会,更有利于个体的发展。当一个小组中,责任不清晰,工作不平衡时,会导致课设工作要集中到一两个人的手中,导致其他学生产生不劳而获的状态。所以,指导教师,要监控整个课设活动,积极进行巡查督导,发现问题,解决问题。
4结论
本文分析了数据库原理课程设计中存在的一些问题,并进行了分析,提出了一种基于小组互助式的数据库原理课程设计的实施方案。该方案,为学生的想象力、创造力的发挥提供了平台,也为将来的团队式软件开发工作打下了坚实基础。为数据库原理课程设计和其他实践能力要求比较强的实践教学环节,提供了相应指导。
参考文献:
[1]杨进,郑先荣,唐德玉.数据库课程教学改革探讨与实践[J].教改创新,2011(32):136-137.
[2]王珊,萨师煊.数据库原理概论[M].北京:高等教育出版社,2006.
[3]韩秋英,朱变,张少辉.地方师范院校数据库原理课程教学改革与实践探索[J].周口师范学院学报,2014(31-2):141-142.
[4]王慧敏.对小组合作学习实效性问题的思考[J].厦门广播电视大学学报,2005(2):17-19.
因篇幅问题不能全部显示,请点此查看更多更全内容