陈军++李亚娟
【摘 要】针对数据结构与算法课程中授课理论晦涩难懂和编程难度较高等特点,基于CDIO 工程教育理念,同时把MOOC引入到数据结构与算法的日常教学中,用以改进传统的教学方法。在此模式下,结合地方性应用型大学的特点,为塑造具有自我学习能力和实践应用能力的新型应用型人才,提出了一种数据结构与算法的新型教学方法。此方法借助MOOC的优质教学资料,提高了学生的主观能动性和教师的授课效率,同时结合CDIO的实施细则,使学生深入到具体的大型编程实践当中,培养了学生分析问题、解决问题的能力。
【关键词】CDIO;MOOC;数据结构与算法
1 背景
数据结构与算法是信息与计算科学专业的一门专业基础课,在该专业的整个学习体系中占有核心的地位。学生在课程中研究数据的特点和彼此之间的关系,以及如何有效地组织管理数据,从而提高计算机处理数据的效率。该课程的学习也为信息与计算科学专业的后续课程,如操作系统,数据库原理和软件工程等,打下了坚实的基础[1]。但是,由于该课程内容抽象,不便于理解,很多学生往往感觉难以掌握。所以,为改善数据结构与算法的教学效果而对教学模式进行创新在当下具有迫切的需求。为此,我们把MOOC引入到数据结构与算法的日常教学中,结合基于CDIO工程教育理念的大型课程设计,使学生能够更加深入地掌握相关的基本理论知识和基本编程技巧。
2 CDIO
CDIO是由美国麻省理工学院、瑞典哥德堡查尔姆斯技术学院、瑞典皇家技术学院和瑞典林雪平大学等4所工程技术大学提出的一种现代工程教学理念。其中,CDIO代表构思(Conceive)、设计(Design)、实现(Implement)和运行(Operate),是近年来高校教育改革的最新成果[2-3]。它注重理论与实践相结合,提供了一整套工程教育的理论和体系,系统地提出了操作性强的实施方案以及检验评价的12条标准。这使得学生能够完整地体验构思—设计—实现—运行的全部过程,从而有效地克服了高校教育中出现的理论与实践相脱节的矛盾。
3 MOOC
大型开放式网络课程,即MOOC(massive online open courses),是一种参与者分布在各地,通过教学视频的学习,以及师生之间的讨论与交流,来获得课程教育的新兴教育形式[4]。它基于互联网和移动通讯技术的蓬勃发展,给传统的课堂教学模式带来了巨大的改变。它让所有人都能免费获得来自名牌大学的优质资源,可以在任何地方、用任何设备,借助于网络进行学习,完成在线作业和考试。同时,它在客观上加快了高校的教学改革进程,也为社会和普通高校提供优质课程的共享资源。
4 传统教学的弊端
1)传统的数据结构与算法课程,更加注重课堂知识的传授,对于计算机学科类课程中最重要的编程实践反而重视不够。无论是在学时的设置上,还是在对教学效果的考核上,都更加偏重于课堂教学。
2)在课堂教学上,教师更多地是照本宣科,直接讲解知识要点,往往难以调动学生的积极性。
3)在有限的编程实践教育中,只能面向小型化和碎片化的编程试题,无法处理大型的面向应用的项目。
4)相对注重学生独立完成任务的能力,缺少在大型项目中对团队协作能力的训练。这固然强调学生对相关知识的全面了解,但团队协作能力也是学生必须掌握的专业技能之一,需要着重培养。
5 结合CDIO和MOOC的新型数据结构与算法教学模式
在实际操作过程中,我们选择网上已有的优秀的MOOC资源,让学生进行自主学习,而教师在课程学习中的主要任务是强调并巩固学习内容的重点难点。这样,教师可以把更多的时间和精力集中在面对面的交流答疑中,这将有效地激发学生的自主学习性和提升学习的效率。在借助MOOC完成基本知识和基本技能的学习后,教师可以把主要的精力放在学生的实践中,即基于CDIO教学理念的大型课程设计的完成上。如图1所示,这可以促使学生能够在学习中做到理论与实际相结合。
图1 新型教学模式
为此,我们采取了下述几条具体措施来配合我们的教学模式改革:
1)选择适合本校学生水平层次的MOOC课程,以学生学号为用户名进行注册,并在MOOC平台上与其他用户一起进行学习。在学习过程中,需要学生全程参与MOOC教学过程中的视频观看,在线测试与课后编程作业。
2)视频观看在课前完成,其中与重点难点相关的内容在课堂上由教师再次进行进一步地讲解;在线测试与课后编程作业在上机实践课上完成,并由教师进行后续的解答。上述过程需要极大地调动学生的自主性,可以在学生中指定若干个学习小组,进行课后的讨论与复习。
3)在MOOC学习结束后,教师将基于数据结构与算法的内容,布置几个项目,以贯彻CDIO中“以项目为导向”和“在做中学习”的理念。以5个学生为一组,分组完成项目。这样每个小组的成员不仅需要完成自己的任务,也需要与其他同学进行配合,共同完成整个项目。
4)在CDIO的模式下,整个项目主要分成4个部分进行:
(1)构思(Conceive):学生明确项目的目标,方法以及相关理论知识,并完成相应的前期准备工作;
(2)设计(Design):学生对整个项目进行规划,分解整个项目,明确各自任务,完善实施方案;
(3)实现(Implement):在此过程中,不仅需要灵活运用已有理论知识和编程技能来完成自己负责的模块,也要了解参与其他学生设计的模块,增强彼此之间的协作能力;
(4)运行(Operate):通过在全体师生面前演示项目和公开报告,展示各个小组的成果。
以数据结构与算法课程中“查找”这一章为例。在课前,需要学生观看相关的MOOC视频。在课上,重点讲解折半查找和平衡二叉树这两个重点难点内容,并指导学生完成相应代码编写的练习。最后,让学生们分组完成“学生成绩查询系统”或“火车时刻查询系统”等大型项目,并公开作项目报告。
6 小结
在数据结构与算法的教学中,我们针对当前教学过程中存在的问题,把MOOC和CDIO教学理念相结合,提出了一种新型教学模式:利用已有的优质MOOC资源帮助学生掌握基本理论知识和基本编程技巧,利用CDIO教学理念指导学生进行综合性实验和大型课程设计。不过,如何掌握两者的平衡,是我们在将来的教学过程中需要进一步面对的问题。
【参考文献】
[1]李春葆.数据结构教程[M].4版.北京:清华大学出版社,2013.
[2]顾学雍.联结理论与实践的CDIO——清华大学创新性工程教育的探索[J].高等工程教育研究,2009(1):11-23.
[3]杨蒙召,顾泽元,刘文强.CDIO 理念在数据结构课程中的探索与实践[J].计算机教育,2010,12:124-126.
[4]李青,王涛. MOOC:一种基于联通主义的巨型开放课程模式[J].中国远程教育,2012(3):30-36.
[责任编辑:汤静]