基于CDIO理念的软件开发教学改革
2017-02-06金礼模
金礼模
(贵州工业职业技术学院,贵州贵阳550008)
基于CDIO理念的软件开发教学改革
金礼模
(贵州工业职业技术学院,贵州贵阳550008)
为了提升学生软件开发能力,使所学知识和能力能够更加贴合社会需求,该文从当前计算机技术专业的背景分析和先进的工程专业教学CDIO理念入手,从课程内容改革、评价体系改革和开展校企合作改革入手,提高学生构思、设计、实现和运行四个方面的能力,达到培养应用型人才的目的。
CDIO;软件开发;教学改革
1 背景与理论
随着计算机技术和互联网技术的不断发展,计算机技术的应用越来越广泛,遍布于农业、法律、土木、社会治理等各个方面,上至大型企业,下到一个不到十平米的水果店,对于软件开发都有不同的需求,庞大的需求造就了软件开发行业的持续快速发展。为了满足人们对于计算机技术尤其是软件开发行业的需求,近年来,软件开发专业随着我国高等教育的不断普及出现在各大高校的专业名录上,计算机专业或者软件开发专业成为高校热门专业,相应的课程设计及改革十分重要。
CDIO理念是一种工程教育模式,是国际工程教育改革为了适应社会发展需要而进行研究得出的一种最新成果,从2000年起,由瑞典皇家工学院、麻省理工学院等高等工科学院进行研究从而确立的一种教育理念,CDIO是Conceive、Design、Im⁃plement和Operate这四个单词的缩写,分别代表了构思、设计、实现和运作,是一种学习过程的简单概括,这四个过程是在社会生产中,一个产品从研发到产品实现的生命周期,CDIO教育理念,就是让学生在原来的理论学习的基础上,完整地感受和参与整个产品周期的过程,使学生能够主动地、实践地进行有机学习,CDIO培养大纲将工程毕业生的能力分为工程基础知识、个人能力、人际团队能力和工程系统能力四个层面,大纲的要求贴合了现如今应用型人才的培养,以综合的培养方式使学生达到预定的学习目标。
2 软件开发教学中存在的问题
软件开发教学是一门需要理论与实践相结合的课程,两者是有机结合不可分割的,但是现在的很多高校的教学中,却将两者割裂开来,理论课程与实践课程脱节,造成学生懂得理论,熟练实践,但是真正到实际案例中,却无法将两者有机结合。具体来说,存在以下问题:
1)理论教学与实践脱节。在传统的软件开发教学过程中,教师在课堂上占据主导地位,机械式的讲解软件开发的基本概念、原理和方法,学生只能被动地接受;实践课中,学生将分块的实践课程操作进行实际录入,例如C++课程的实践教学,只对简单语法进行练习,学生缺乏思考,谈不上对理论课程的巩固和应用,根据调研,学生仅能掌握课堂教授的5%的内容,达不到预期的教学效果。
2)课程内容陈旧。软件开发是以当前快速发展的计算机技术为基础的,尤其是近年来,手持智能终端的迅速发展,虽然课程教学是基础性教学,但是课程内容设计上仍要与时俱进,随着科技的进步和技术的更新而更新。当前,企业对于人才的需求越来越倾向于复合化、前沿化、应用化,课程内容中鲜有对内工程项目管理、能力成熟度模型集成内容的体现,培养课程与社会需求有所脱节。
3)教师队伍缺乏软件开发经验。目前,大多数高校教师均为从高校走进高校,没有在企业中进行软件开发的实际经验,在讲授软件开发理论或设计课程中,只能简单地进行理论讲解,对于软件工程技术,软件开发设计理念,软件开发技术方法等内容理解不足,不能真正体会软件开发工程的要义,教学缺乏灵活性。
3 基于CDIO理念的软件开发教学改革
3.1 课程设置改革
课程内容设置是践行CDIO教学理念的基础,软件开发课程内容改革要从需求出发,可适当引入软件设计师及相关资格证书考试内容或CMMI的知识,CMMI标准是一个企业软件开发能力的体现,很多企业都想获得该标准认证,以帮助企业优化和改进软件开发过程,软件开发课程中引入这一概念,可以促进课程设置的标准化,更贴近企业需求。加强软件开发课程群的设计,不同的软件开发环境,例如:C++和Java程序设计这两门面向对象的程序设计语言,有很多相通的地方,在课程内容制定中,可以将相通的课程放在其中一门语言中讲述,进而可以帮助学生对比两种语言的特点和优势。不同年级的课程,可将软件开发课程分为三个部分,一部分为基础课程,包括C语言程序设计、C++、Java等语言课程,作为基础课程,让学生掌握一到两门的软件开发基础语言,了解程序的基本原理,培养学生的思维逻辑和习惯,为下一步的进阶课程打下基础。第二部分课程为提升课程,包括数据结构、数据库原理、算法分析、网页设计及制作等课程,通过这些课程,学生由基本原理过渡到实际应用,培养学生的数据抽象能力和程序开发基础系统开发能力,适当加入一些专业的应用型课程,让学生初步接触当今主流软件的开发语言。第三部分是高阶课程,主要包括软件工程设计、WEB开发原理、J2EE程序架构、移动应用开发、软件测试与运营等课程。通过这些课程,将前两部分课程有机结合起来,通过实战案例,掌握软件开发的方法、技术、流程等内容,一方面对前期学习的理论课程进一步巩固,另一方面,为毕业后走向社会打下坚实基础。
3.2 实践教学改革
实践教学课程改革涵盖软件开发专业高等教育的整个过程,在课程设计过程中应站在整个软件开发专业学习的高度,分为课程实验(基础程序设计语言实验,包括简单语法,程序结构等)、综合课程设计(第二部分进阶课程实验,包括主流软件开发语言语法,单个程序开发实例)、软件开发项目实训(让学生参与企业软件开发案例,从乙方需求开始进行软件设计、开发、实现的整个过程)、毕业设计(学生自主进行软件设计、开发、实现和运营)。软件开发专业是一门实践性强的专业,每一门专业课程都应该有实验课程相对应,部分核心课程应开设软件设计实践课程,例如:数据结构设计分析。通过这几类实验课程的有机结合,实现学生由低到高的学习过程,从基础理论开始逐步掌握软件开发的各个环节,符合CDIO教育理念,学生从构思、设计、实现到运行,参与到软件开发的整个过程。
3.3 课程评价体系改革
对软件开发专业实施CDIO模式教学后,相应的教学评价体系也要进行改革,由传统性的学期末进行考试的方式变为阶段性项目式的考核方式,在教学的各个环节对学生进行评价考核,例如在面向对象的程序语言Java课程考核中,阶段性考核可以分为课堂表现、课下作业、实践项目、小节性考核,最终期末考试的方式进行,在这几项中课堂表现分为出勤率、课堂讨论情况、课堂回答情况;课下作业可以按照完成情况及完成质量等,课下作业不拘泥于教材规定的内容,可以让学生自由结合为小组进行任务分配;实践项目由实验课程和程序开发小项目组成,主要考核学生的团队合作能力、组织协调能力、课程知识掌握程度等;小节性考核,可以以阶段性的对课堂讲授内容进行随堂测验等方式进行,目的在于考核学生对某一阶段课程的掌握程度;最终再进行期末考试,将本学期的学习内容进行总结性考试,主要考察学生对本门课程的整体掌握程度。此处仅以理论性较强的Java程序设计语言进行说明,对于软件开发专业的其他课程,考核评价体系可进行特殊性取舍,尤其是实践性较强的移动应用程序开发,可以取消期中或期末考试,增加其他项目类考核的权重。
3.4 探索校企合作,巩固改革成果
纵观软件开发专业课程,都是各自为战,学好一门课程并不能在未来的工作中灵活使用,无法将所学用于实践,CDIO教学理念要求课程设计中要有一门课程将所学课程进行有机串联,使所学知识贴近实际,根据每一个项目的实际情况确定项目的设计重点。能够达到这个目的的形式多种多样,可以选择软件开发方向作为毕业论文,通过与软件开发公司合作给学生亲身锻炼, 开展校企合作,让企业软件开发项目走入课堂,学生亲自去解决这些问题,不能再依赖课本内容,需要综合所学的各种软件开发设计知识,有时不仅包含课堂上学到的内容,可能还具有某些未学到的知识内容,需要学生自己去主动学习。通过这种方式,达到提高学生的综合设计能力,全面培养学生的综合素质,达到真正培养复合型、应用型人才的目的。
4 结束语
软件开发专业是一个实践性很强的专业,通过践行CDIO教学理念,在理论教学内容、实验课程内容设计、改革课程教学评价体系、开展校企合作,让软件开发实战案例进入课堂,提高学生知识运用和软件设计开发能力,帮助学生能够在走出校门后,迅速适应企业需求,实现培养应用型人才的目的。
[1]康塔尼克,闪四清.数据挖掘:概念、模型、方法和算法[M].北京:清华大学出版社,2003.
[2]韩智.基于CDIO理念的软件工程课程教学改革[J].计算机教育,2010(11):56-59.
[3]陶永芳,商存慧.CDIO大纲对高等工科教育创新的启示[J].中国高教研究,2006(11):81-83.
G642
A
1009-3044(2017)24-0154-02
2017-07-01
金礼模(1981—),男,贵州六盘水人,本科,软件工程师,主要研究方向为信息自动化系统研发。