APP下载

基于CDIO工程教育模式的软件工程专业课程设计实践

2022-07-24刘美玲李熹周卫张纲强文勇

大学教育 2022年5期
关键词:软件工程课程设计实践教学

刘美玲 李熹 周卫 张纲强 文勇

[摘 要]文章从软件工程专业的培养目标出发,简述课程设计的概念、CDIO工程教育模式,探索基于CDIO的软件工程专业综合课程设计实践教学模式,详细介绍课程设计的组织与实施,最后总结近几年课程设计的实践心得与教学经验,为软件工程课程设计的实践教学提供借鉴与参考。

[关键词]CDIO;课程设计;软件工程;实践教学

[中图分类号] G642.3 [文献标识码] A [文章编号] 2095-3437(2022)05-0063-03

软件工程专业注重培养具有良好的科学素养,系统掌握计算机基础理论,具备运用先进的工程化方法、技术和工具从事软件分析、设计、开发、维护等工作,具备工程项目的组织与管理能力、团队协作能力的高层次、实用型、复合型软件工程技术和管理人才。

课程设计是广西民族大学(以下简称“我校”)软件工程专业的一门实践性课程,分别在大一、大二、大三学年的第二学期开设,时间均为两周。在两周的课程时间里,学生集中在实验室,每个年级由2~3名教师负责,学生在教师的指导下完成课程设计作品。每个学年的课程设计要求不同,完成形式也不同:或个人独立完成或团队分工合作,但目的都是培养学生的自主学习能力、综合设计与应用能力,训练学生的工程化思维。本文从我校软件工程专业的培养目标出发,结合CDIO工程教育模式以及近几年的教学实践,从课程设计的概念、CDIO理念、制订课程设计大纲和课程设计的组织等几个方面介绍软件工程专业课程设计的具体实施方案,并总结近几年课程设计的实践心得。

一、什么是课程设计

课程设计是学生在学完课程之后集中一两周时间,以个人独立完成或团队分工合作等方式,围绕某一设计题目进行专业实践活动,其旨在巩固、强化、拓展学生所学知识,提高学生实践操作能力和自学创新能力,培养学生的团队合作意识[1]。

课程设计是针对性较强的实践教学环节,是将课程基本理论与工程实际相联系的综合训练,是培养应用型人才的一个重要步骤。课程设计可以使学生通过查阅资料、分析题目、确定设计方案等一系列步骤将理论知识与工程实践相结合,从而巩固、加深学生对所学知识的理解,提高学生的整体思维能力、综合应用能力和创新能力[1]。

二、CDIO工程教育模式概述

CDIO工程教育模式是国际工程教育改革的成果,其中,C代表构思(Conceive),D代表设计(Design),I代表实现(Implement),O代表运作(Operate)。CDIO以产品研发到产品运行的生命周期為载体,让学生以主动的、实践的、课程之间有机联系的方式学习工程,以培养学生的工程能力,该理念是“做中学”和“基于项目教育和学习”的集中概括和抽象表达。CDIO工程教育模式的愿景是为学生提供一种强调工程基础的、建立在真实世界的产品和系统的构思—设计—实现—运行过程的背景环境基础上的工程教育。CDIO工程教育模式培养大纲将工程毕业生的能力分为工程基础知识、个人能力、人际团队能力和工程系统能力四个层面,大纲要求以综合的培养方式使学生在这四个层面达到预定目标。CDIO工程教育模式提出了包括基本理念、学习目标、一体化教学计划、工程导论、设计实现经验、工程实践场所、综合性学习经验、主动学习、教师能力的提升、教师教学能力的提高、学生考核和专业评估等12条标准,为工程教育实践提出具体的、可操作性强的指导[2-3]。

三、课程设计的组织与实施

课程设计的组织与实施以软件项目为主线,结合软件生命周期,将CDIO工程教育模式包括的四个阶段——构思、设计、实现、运作贯穿于课程设计实践的始终,软件需求理解与分析、系统设计、系统实现、系统测试与部署运行分别对应CDIO工程教育模式的四个阶段,将其理念与软件工程项目实践紧密联系。

课程设计主要由制订大纲、学生实践、教师指导、过程考核与最终考核几个环节组成。其中,课程设计大纲的制订是课程设计的首要环节,学生实践是主要环节,教师指导是教师了解学生完成进度、发现学生遇到的问题并给予辅导与建议的过程,考核是对学生的作品进行检查与评价,包括过程考核与最终考核。过程考核贯穿整个课程设计的始终,主要考核学生在完成软件系统过程中的系统分析、设计与实现的完成情况;最终考核通过学生演示系统及答辩来完成。

(一)制订课程设计大纲

课程设计的题目要与软件工程专业培养目标和课程设计的教学大纲要求相一致。课题应尽量满足理论知识与专业技术相结合、软件工程理论与项目实际需求相结合的要求,既要全面覆盖理论课程所学知识,适合实践教学和启发创新,又要联系工程实际,并适应本专业的发展趋势。课题应具有一定的可操作性、设计性、灵活性、挑战性和趣味性。课程设计内容难易程度的确定要以中等水平的学生在规定时间内经过努力能完成任务为依据[1]。

另外,课题应尽可能与学生的实际学习、生活等相关,这样学生在调研、分析设计时更容易了解需求。例如,与学生学习相关的课题有学生成绩管理系统、课程信息管理系统、图书信息管理系统、学生选课系统、毕业论文选题系统等,与学生生活相关的课题有宿舍管理系统、超市管理系统、网上购物系统等[4]。

根据课程设计的教学大纲要求,制订相应的课程设计大纲,明确课程设计的课题、目的、时间安排、任务要求、开发流程、评分标准与细则、考核方式等。大一、大二的课程设计是个人独立完成,因此,课题设计的难易程度应适中,以保证学生在规定的时间内能顺利完成;大三的课程设计则是以团队的形式完成,题目难度应比大一、大二稍大。为了在指导与评价上尽可能统一与公平,每一届学生我们只提供一个题目,我们也会根据实际情况一年或两年更换题目,以免不同年级的学生互相抄袭。

基于CDIO工程教育培养模式的培养大纲中定义的四个层面的能力与我校软件工程专业培养方案,结合社会对软件工程人才培养的要求与我校软件工程专业学生实际,我们制订了以工程项目为主线的符合我校软件工程专业学生特点的综合课程设计实施方案,课程设计方案符合CDIO工程教育培养模式的12条标准。

(二)学生实践与教师指导

在课程设计中,学生是主体,教师是主导。学生围绕系统需求分析、功能划分与设计、数据库设计、界面设计、系统实现、系统测试与部署运行等展开实践。学生在课程设计实践中,应最大限度地发挥教师的导向作用与学生的主动性、创造性。学生在完成课程设计的过程中,教师可以对学生进行统一指导与个别指导。指导过程同时也是教师对学生课程设计进度的检查与监督过程,教师在指导中可以实施过程考核。

1.在理解课题上的指导。理解课题的目标与功能需求是课程设计的第一步,教师在课程设计开始时应统一讲解课程设计大纲中的任务要求、基本功能要求、扩展功能要求、技术要求等,并说明各个基本功能模块与扩展功能模块的难易程度,帮助学生理解系统需求和了解系统的难度,以便学生顺利展开系统设计。

2.在技术上的指导。由于课程设计是一门综合性的实践课程,涉及程序设计语言、数据库、数据结构、软件设计模式等多门课程,而课程设计所需的理论知识与技术未必都在课堂上讲授过。教师需要对课程设计中用到的技术进行串讲,串讲时要指明核心技术是什么、需要掌握哪些技术,并以项目演示操作的方式讲解这些技术如何运用等。与技术相关的理论知识以及详细内容需要学生自学,这有助于培养学生的个人能力、特别是学习能力,这一点与CDIO工程教育模式对学生能力的要求相一致。

3.在设计上的指导。课程设计的具体实施主要由个人独立设计与教师指导两个部分构成,当然,在课程设计中学生之间可以互相讨论。在系统设计过程中,教师会逐一与每位学生交流,让学生阐述其系统设计思路与方法、数据库设计等,通过这样的方式,教师可以深入了解学生的学情,并拓展学生的思路,从中发现问题并引导学生解决问题。

由于学生的基础与能力不同,教师在课程设计的指导上要因材施教。对于基础好、动手能力强的学生,教师应当引导他们进行深入探索与研究,进行创新性的设计与扩展功能设计,而不仅仅局限于基本功能要求。这就要求教师要具备系统的、扎实的专业知识,要不断学习新技术,更新知识结构,只有这样才能更好地引导学生。

对于基础好、动手能力一般的学生,因为他们的理论基础扎实,系统分析与设计会做得较好,但是实际编程能力稍弱,教师可以鼓励引导学生发挥理论基础优势完善系统设计,在系统实现时给学生推荐一些应用性强的项目案例,提升学生理论知识的应用能力。

对于基础与动手能力都一般的学生,教师要帮助他们加深对理论知识的理解,并在设计上多加指导,引导学生从易到难逐步完成设计;在编码实现时,给学生提供易于理解、可操作性强的项目案例,让其参考案例完成。

对于极少数基础差或态度不端正的学生,教师要主動与学生交流,深入了解他们的实际情况与想法。对于学习确实有困难的学生,教师要帮助他们排除心理障碍,多加鼓励,提供可操作性强的学习视频,让他们边学边做。对于极个别态度不端正的学生,教师既要帮助其转变学习态度,并给予更多的关注,又要不断地督促其独立学习,并严格要求。

在课程设计的指导中,除了教师的指导,也可以采取“强帮弱”的帮扶形式,让能力较强的学生帮助能力较弱的学生,促进学生之间的交流与帮助。

(三)考核

在为期两周的课程设计结束后,教师要对学生的软件系统完成情况进行检查并考核,评分项主要有设计文档、功能模块、数据库设计、代码质量、系统调试能力、答辩情况等,考核主要采取学生讲解其系统设计思路并演示系统和教师提问学生答辩的考核方式。这种考核方式对于增强学生的学习紧迫感、加强学生对知识的全面理解与综合运用、提高学生的动手实践能力、锻炼学生的语言组织与表达能力、应变能力等都有明显的效果。

答辩过程分为学生自述、教师提问、学生回答三个环节。首先由学生阐述其系统的分析、设计与主要实现过程,接着边讲解边演示系统。学生展示完之后,教师根据考核标准进行提问,提问内容包括系统的数据库设计思路、模块设计思路、代码与技术等方面。教师通过学生答辩情况并结合学生的设计文档、系统完成情况进行综合考评。学生通过与教师面对面的交流与答辩,可加深对理论知识的理解,弥补和纠正知识点理解上的盲点与误区,发现设计存在的问题并获得解决的方法。教师从学生的自述与问题回答中能了解学生理论薄弱的地方与设计存在的问题,从而在今后的教学中改进。

四、关于软件工程专业课程设计的几点思考

近几年的课程设计实践效果表明,课程设计是学生巩固所学知识并能学以致用、提高综合应用能力的重要平台。通过课程设计,大部分学生的自主学习意识与学习能力、专业能力和工程系统能力都得到了较大的提高。同时,教师也从课程设计实践教学中获得了一些有用的经验,为进一步完善课程设计教学提供了帮助与参考。

(一)课题的选定

在选定课题时难度要适宜并具有一定的挑战性,课程设计大纲的制订既要满足大多数学生的基本要求,又要满足能力强的学生的提升要求,只有这样在最终考核评价时才能有一定的区分度。

(二)及时发现并总结问题,积累经验

在课程设计实践中,教师要在课堂上不断走动,与学生交流,了解学生的完成进度与存在的问题,若是个别问题则个别指导;若教师预见该问题是其他学生可能会遇到的问题,则应事先提醒全班学生要注意;若问题是普遍性的,则向全班指出问题所在并给出解决方法。不论什么问题,教师都应及时指导学生。另外,教师应从学生上交的课程设计文档中发现学生数据库设计与面向对象建模方面存在的问题,并分析问题产生的原因,以改进教学方法。教师还可以从学生的心得体会中了解学生对课程设计的态度以及遇到的问题,为以后的课程设计指导积累经验。总之,在课程设计的任何一个环节,教师都要善于发现问题、总结经验。

(三)教师要不断提高自身能力

从课程设计大纲的制订、任务布置到指导、考核都需要教师付出很多时间与精力,这对教师的专业知识与能力要求都很高。因此,要想保证课程设计的质量与效果,教师要有很强的责任心和完善的知识结构。如果教师对课程设计不重视,对学生不负责,不参与学生的设计与讨论,不听取学生的思路,不及时给予学生指导,那么课程设计将达不到理想的效果。如果教师的知识结构本身不完善,对课程设计所涉及的知识没有深刻的理解,对最新的技术没有一定的了解,那么在学生提出大量问题的时候,就会觉得力不从心,起不到该有的指导和引导的作用[5]。

(四)采用个人完成与团队合作完成方式

我校软件工程专业的课程设计贯穿大学四年,大一、大二主要培养学生的个人能力,采取个人独立完成的方式;大三主要培养团队合作精神与能力,采取团队合作完成的形式;大四则是由学生独立完成毕业设计。课程设计过程中可采用比赛、学生互评或小组互评、互相提问等方式来激发学生的竞争意识,增强学生的团队合作意识,增进各组之间的学习与交流,扩大学生的知识面。这样的方式有助于学生团队能力的培养,符合CDIO工程教育模式四个层面能力的要求。

(五)高效到位的指导

由于课程设计的指导教师一般为2人,而面向的班级数不定,一个年级最多有2个班100人,学生人数较多,教师指导不过来。如何做到高效到位的指导,保证课程设计的质量与效果,是需要我们进一步思考和探索的。对于学习能力强的学生,教师可鼓励引导他们发挥最大潜能。而对于理论基础薄弱、动手能力欠缺的学生如何帮助他们巩固基础知识、提高动手能力,进而提升他们CDIO工程教育模式四个层面的能力,这需要我们不断思考、探索和实践。

五、总结

我校软件工程专业的课程设计已在九届学生中进行了实践,对照CDIO工程教育模式培养大纲的四个能力,绝大部分学生的工程基础知识、个人能力和工程系统能力在课程设计中都得到了锻炼与提升,取得了比较好的教学效果。与此同时,课程设计要求教师具有较高的专业水平与综合能力、较强的工程实践能力,包括多门课程知识的综合运用水平、系统分析与设计能力、编程能力、实际系统开发中解决问题的能力、程序调试能力等,因此,教师在课程设计实践教学中的教学能力也有了较大的提升。

[ 参 考 文 献 ]

[1] 尹继明,吕凡任.课程设计在实践教学中的应用研究与探索[J].扬州教育学院学报,2011(2):73-75.

[2] 顾佩华,包能胜,康全礼,等.CDIO在中国:上[J] .高等工程教育研究,2012(3):24-40.

[3] 顧佩华,包能胜,康全礼,等.CDIO在中国:下[J] .高等工程教育研究,2012(5):34-45.

[4] 刘美玲,李熹,黄文钧.软件工程专业Java课程设计实践与思考[J].计算机教育,2014(10):62-65.

[5] 杨全胜,王晓蔚,吴强.对提高高校计算机专业课程设计质量的思考[J].计算机教育,2007(22):36-39.

[责任编辑:陈 明]

猜你喜欢

软件工程课程设计实践教学
“苏州园林:景致与情思”课程设计
A Study on the Application of Task—based Approach to English Vocabulary Teaching
依托工作室的软件工程实践教学研究
基于工程教育认证的《软件工程》课程教学质量建设研究 
关于如何创新和完善计算机软件工程管理的探讨
茶学专业校企合作实践教学探索
《电气工程毕业设计》 课程的教学设计
高职院校商务礼仪课程教学改革探索刍议
《数据库高级应用》教学创新方法研究
关于完善课程设计教学及教学管理工作的思考