基于CDIO 的数据结构课程教学模式改革的研究
2020-09-29丁柏秀
◎丁柏秀
(作者单位:吉林建筑大学)
引言:CDIO 工程教育模式是麻省理工学院和瑞典皇家工学院等四所大学组成的研究小组自2000 年起,经过四年研究开发出来的一种全能的工程理念.CDIO的四个字母具体含义为:构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate),它以产品研发到产品运行的生命周期为载体,让学生以主动、实践、课程之间有机联系的方式学习工程。从2005年开始越来越多的知名大学引入了这一理念,受到好评.从2007 年开始我国开始引进CDIO 模式的工作,对于工程教育尤其是计算机类课程有着显著的作用。
数据结构是计算机科学与技术及相关专业的核心课程,其前导课程包括:《程序设计语言和离散数学,后续课程有操作系统、编译原理、数据库理论、算法分析与设计等,是软件设计的基础。数据结构课程有很强的理论性和实践性要求,对该课程学习的好坏直接影响了后续课程的学习,可见其重要性。将CDIO 引入数据结构课程,能提高学生的学习能力,提高计算机专业人才的就业能力。
一、数据结构课程教学中存在的问题
1.理论和实践学时安排不合理。目前有些学校仍然采用传统的教学方式,基本上都是理论学时,只是针对线性表、串、树、图、查找排序分别安排一个实验,实践学时安排的少,根本不能满足学生的需求,学生不能深入了解每一部分的原理,更谈不上能力培养了。
2.实验课上未能因材施教。学生的学习水平千差万别,实验课上实验的效果也不相同。如果老师布置的实验只有一个,只要学生完成了就得分,不能区分出学生的等级。学生知识按部就班完成老师布置的任务,学习创新能力得不到开发,学生的团队协作和查阅资料和编程能力得不到开发。
3. 实践过程中老师和学生的角色错位。在实践中学生应该占主导地位,让学生在实践过程中充分主导整个实践过程,但是有的学校仍然是老师在实践课上花大量时间讲解,学生只是验证一下算法的结果。学生的主导地位被代替了,学生缺少了主动学习的积极性。
4.考核机制不能激发学生对实践的积极性。目前有的学校仍然期末考试成绩占70%,实验和平时表现一共占30%。在有些学生眼里,只要期末考试考好,基本就过了,造成他们对实践不重视,只重视形式上的实验报告书写,而实践恰恰是开发学生能力的有力工具。实践能力强的学生分数没有优势,无法反映学生真实的实践水平,对整个课程起不到反馈作用。
二、CDIO 理念下的数据结构课程改革
1.提高教师队伍的CDIO 素质,提高团队的教学水平。时刻关注国内外CDIO 理念的发展动向,课程组教师定期参加CDIO培训,多听取国外和国内执行CDIO 机制的高校专业人士介绍经验,提高自己对CDIO 的理解,在充分理解CDIO 理念的基础上,制定基于CDIO 理念的人才培养方案和课程大纲和授课计划。转变观念,注重学生动手能力的培养,体现在各个环节。
2. 在项目中学习知识。基于CDIO 理念,做到“做中学,学中做”。在讲解每个知识点的时候,把知识点的实例给学生展示,让学生理解该知识点可以用到哪些项目上,对知识点有个直观的认识。例如:讲到图的拓扑排序、关键路径、最小生成树和最短路径问题时,可以给出一个高速公路问题:有M 个城市,有些城市间有双向高速公路相连,有N 条,每条高速公路有相应的最大载重限制,从某一给定城市出发到达另一目标城市,车辆最多能带多重的货物。在理解知识点的基础上,逐步分析项目的要点,老师引导学生进入项目,学生经过分析,编程,给出结果。教师可以引导学生从实例入手,锻炼学生从分析实例产品的构成和用户的实际需求出发,构思并设计合理的数据结构,促进学生对树型结构的掌握。学生在做的过程中加深了对知识点的理解,达到“做中学、学中做”,在项目中学习。
3.重构课程实践环节。CDIO 模式中的“实现implement”环节,即本课程改革的核心点—实践教学。实践教学体系的建立也是工程类高校能力培养的核心点,通常CDIO 项目按规模和范围划分为3 级:1 级项目为包含本专业主要核心课程和能力要求的项目;2 级项目为包含一组相关核心课程、能力要求的项目;3 级项目是为单门课程而设的项目,旨在增强理解和培养课程的相关能力数据结构课程的实践环节包括课内实验和课程设计。课内实验和课程设计均来源于可以实际应用的项目。课程设计项目要综合多个课内实验的项目的知识点得出,或者把一个知识点扩展成一个大的项目,项目组老师要花时间来设计各个项目,对以前的课内实验和课程设计进行全面改革。项目最好来源于企业或者具有实际意义的项目。课内实验要分多个层次:验证性、综合性、设计性、创新性。在上课内实验时,老师注重引导学生提出解决问题的思想、方法和步骤。逐步建立起正确的思维方式和程序设计方法,使其具备工程师的基本能力。整个过程以学生为主,让学生先发现问题,结合相关知识点,设计合理的数据结构,及输入输出模块,给出初步的解决思路,老师要不停的帮助学生修正思路,直到学生找到解决问题的方法,最后完成编程及代码的测试,从而完成项目。学生先完成验证性的实验,在完成验证性实验的基础上逐步完成综合性、设计性甚至创新性的实验,没完成一个层次的实验都有一个层次的收获,随着解决问题能力的提升,学生最后可以去设计问题再解决或者完成最具挑战性的创新性项目。让学生在实际动手的过程中,解决实际问题的能力不断增强。有了课内实验的基础,学生能力得到了提升,课程结束后接着进行课程设计项目。由于课程设计项目是多个知识点的综合或者某几个知识点的延伸,难度相对大一些,学生需要花很多时间来解决问题。解决问题的思路与课内实验是一致的,都是在老师的引导下,学生作为主体,从发现问题,主动思考,找到问题的根源所涉及的相关知识点,联合各知识点,给出具体解题思路,在老师不断给修正的前提下,对学生所提的方案加以鼓励,帮助学生树立创新意识,让他们不墨守成规,学会从多角度思考问题,找到正确的解题思路,画出流程图,编程调试,得出结果。
4.学生由被动变成主动,团队合作解决问题。CDIO 能力包括四个方面:技术知识和推理,个人能力职业能力和态度,人际交往能力,在企业和社会环境下构思、设计、实施运行。所以一定要注重CDIO 能力的培养。使学生理解构思—设计—实施—运行一个完整系统的复杂性。无论是完成课内实验还是课程设计,学生都是主体,并且要团队合作,分工协作。由于CDIO 强调的项目具有完整性和综合性,一个学生很难在短时间内完成,因此可以考虑采用分组的形式,由多名学生组成小组,由组长负责安排整个项目的进度。这种团队的形式最能锻炼学生的协作精神、沟通能力和领导能力。在项目中学生自由完成组队,并且分配任务,组长随时控制项目的组织、控制、实施及衔接。老师要激发学生的学习热情,让学生充分参与整个过程。学生需要在网上查阅资料及项目背景知识,上台展示发现的问题,相关知识点,解决方案,初期的思路,详细的方案,编程实现及最后的总结。学生在整个过程中充分参与每一环节,提升了自己的个人能力及团队协作的能力。
5.借助于学校的网络平台或者慕课平台建立数据结构课程,把课程录成视频发到平台上,平台上有授课计划、大纲、课程视频、辅导答疑、讨论区,学生上课有没弄懂的地方可以到平台上再次学习,还可以向老师提问题,老师看到马上回复,还可以针对某个问题与同学们讨论,加深对问题的理解。
从2015 年开始,学院成立数据结构课程组,定期派老师去CDIO 改革成功学校考察学习,每周三召开组会,学习CDIO 理念,讨论改革方案,逐步修改培养方案、教学大纲及授课计划。本文作者作为本校电气与计算机学院计算机专业教师,也是课题的主持人,是数据结构课程组重要成员,在2016 年申请了吉林省教育科学规划课题:基于CDIO 教育理念的应用型计算机科学与技术专业实践教学模式改革的研究,以我校计算机科学与技术专业2015 级和2016 级作为实践教学改革试点,以调查研究、理论研究和我院实际教学特色相结合的方法对人才培养方案中实践教学体系进行合理优化,更新了培养方案、教学大纲、授课计划等内容,把理论内容进行充实,适当增加相关企业案例和实际案例与理论知识相结合。课内实验项目和课程设计项目引入实际案例,课内实验分成了四个层次:验证性、综合性、设计性及创新性。增加实例如表1 所示。实验课上和课程设计中老师充分调动学生积极性,引导学生建立分组,从查阅资料、讨论问题,分析问题、设计数据结构,找到解题方案,编程实现,在班级里展示,总结项目内容。通过两级学生的参与,实验证明学生应用能力和创新能力均得到提高;采用抽样调查和比较研究的方法,边研究、边实践、边推广,研究过程与教学实践平行进行的方式进行教学内容、教学方法以及实践方法的改革实践,以达到建立科学合理的实践教学体系和培养模式。经过几年的CDIO 改革,学生的抽象建模和程序设计能力有明显提高。有了数据结构学习能力的锻炼,学生反映很快能进入后续课程的学习,我校计算机科学与技术专业2015 级和2016 级学生整体计算机编程能力、毕业论文质量和就业率较往年有明显提高。
表1 大纲中增加的实际案例
总结:CDIO 理念在强调学生理论基础知识的同时,注重培养学生理论应用能力、团队合作能力及工程系统掌控能力。本文针对在CDIO 理念下的数据结构课程教学改革进行探索,提出了以学生为中心,以项目为驱动,使学生主动学习,不断提升自我工程素质和分析问题,解决问题的能力,取得了良好的效果。