摘要:本文介绍了《算法设计与分析》课程的教学现状,针对传统教学方式的弊端,探索将国际化工程教学理念CDIO引入《算法设计与分析》的教学实践当中。构建“做中学”的教学模式,围绕“以项目设计为核心”规划和展开教学过程,鼓励学生进行自主性、创造性的学习。在实践中,提高了学生的自主学术能力、工程能力、团队协作能力以及创新能力。
关键词:算法设计与分析 CDIO 做中学 教学模式 工程科技人才 实践教学
1、CDIO理念简介
CDIO工程教育模式是国际工程教育改革的最新成果,以构思(Conceive)、设计(Design)、实践(Implement)及运作(Operate)全过程为载体,以“做中学”为原则,以“项目的教育和学习”为核心,让学生以主动的、实践的、课程之间有机联系的方式进行学习[1]。其目的是培养学生的工程能力,该能力包括个人的学术能力,学习能力、团队协作与沟通能力和大系统掌控能力等4个层面[2]。CDIO工程教育模式为解决我国当前面临的工程教育理论与实践相脱轨的现状,具有积极的示范和启发意义。
2、《算法设计与分析》课程简介与传统教法分析
计算机科学与技术专业的培养目标就是要培养“高素质、高技能、创新型”的应用型人才,培养面向新兴产业的工程科技人才。《算法设计与分析》是计算机科学与技术专业的核心课程,主要是讲授各种算法的基本思想、方法与技术,从而使学生在分析解决问题的过程中,培养学生抽象思维和缜密概括的能力,提高学生的软件开发设计能力。
《算法设计与分析》在学习中并不需要太多的死记硬背,更多的是依靠理解与实践,并加以灵活应用。但在实际的教学过程中,较多的学生对该门课程掌握的情况并不理想,没能实现本课程在专业教育中所起的作用。问题产生主要原因是以教师为中心的传统教学模式,教师完全控制整个教学过程,学生在教师的指导和要求下进行理论学习和上机实践,不仅不能激发学生的求知欲和参与教学活动的热情,反而造成学生对教师和课堂的过分依赖,难以发挥其创新能力和思维能力。
由此可见,《算法设计与分析》这门课程的教学改革势在必行。而CDIO教学模式中所强调的主动学习、实践、思维等能力的培养,在《算法设计与分析》教学中都能得到体现与贯彻。研究CDIO模式下的《算法设计与分析》的教学实践是该课程改革的良好途径。
3、实施面向CDIO的教学改革实践
笔者通过深入分析《算法设计与分析》课程的主要特点及其在培养应用型工程科技人才中的地位和作用,并依据多年讲授本课程的经验,从以下几个方面对实施CDIO型实践教学改革。
3.1 以项目设计为核心,构建教学方案
CDIO模式强调“做中学”,以“项目设计”展开教学过程,课程项目编排的质量直接决定教改的效果。因此,要求课程组教师在备课时要全面系统把握算法课程的内容,选择和设计突出章节重点难点、难度适中、趣味性强、类型多样的项目进行讲解实践,注重培养学生的动手能力。由此构建教学方案,设置各章节的项目设计规划如下:
项目一“求最大公约数和最小公倍数”,要求掌握欧几里得算法,并应用算法的数学分析和后验分析方法。
项目二“SAT问题”,掌握NP完全问题算法,并考察问题规模与算法时间性能关系。
项目三“串匹配问题”,掌握运用蛮力法设计算法的技能。
项目四“最近对问题”,掌握递归算法的设计思想以及递归程序的调试技术,理解分治与递归在算法设计中的双重运用。
项目五“8枚硬币问题”,掌握蛮力法设计思想,并理解建立正确模型对于求解问题的重要性。
项目六“最大子段和问题”,掌握动态规划法设计思想,比较不同算法的时间性能,理解好的算法是反复修正的结果。
项目七“霍夫曼编码”,理解数据压缩基本方法,掌握贪心法设计思想及最优子结构性质的证明方法。
项目八“禁忌搜索算法”,掌握回溯法设计思想及解空间树的构造方法。
3.2 以项目设计为核心展开教学的策略
CDIO教育模式要求学生基于工程项目的生命周期进行学习与实践,“项目设计”作为基础知识传授与基本技能掌握的载体[3]。
3.2.1 项目驱动式的课堂教学
考虑到该课程在结合CDIO理念进行教学改革的需求,我们将授课环境设置在具有多媒体教学设备的实验室中,这样教师授课与学生实践可以同步实现。实验室中安装有教学管理软件,教师可以通过服务器端随时的演示、操作、监控,便于教师进行项目布置、分析、讲评、测试等。
在知识点的讲授过程中采用“提出问题、分析问题、解决问题”的模式,引导学生由生动的项目设计实例过渡到算法设计要求中来。大致分为以下几步:(1)教师首先提出项目设计任务,与学生一起讨论明确项目设计内容,带着学生挖掘解决问题的算法。(2)展开重点教学内容,结合讲解学生需要理解和掌握的算法设计思想。(3)引导学生依据教师讲解的算法设计思想,从分析项目设计到算法设计分析,由学生自主、创造性的完成项目设计。组织学生进行分组讨论,以小组为单位提交项目实现方案,并分析算法可行性及时间性能,绘出算法流程图。通过分组方式充分调动了学生的参与意识和动手的积极性,培养了学生的团队精神。(4)教师对小组提出的解决方案给出相应评价和指导,对于多算法可实现的项目问题,可分配各小组按不同方法进行程序设计,编写程序代码,在机器上进行完成调试。最后教师可推荐优秀设计组的学生作示范,鼓励学生们探索、实践的积极性。
3.2.2 充分利用网络教学技术
在《算法设计与分析》教学改革中,不仅要在课堂教学中以先进的教学方式,同时应融入先进的信息技术,充分发挥网络辅助教学的强大作用,将单一的课堂教学模式拓展为网络化、互动式、自主化的多元教学模式。
课题组基于信息工程分院网站,建设了《算法设计与分析》网络课程,将教学从课堂延伸到课外。网站中的电子教案、算法动画演示、课后练习、教学案例库等教学资源为学生提供课外自学的网络环境;提供了在线答疑、作业提交、网上留言等交流互动平台。学生可通过网络环境极为便利地实现自主学习和教与学的互动,成为实施教改的有效手段。
3.2.3 以“项目教学+竞赛实战”的分层次实践教学
实现“因材施教”的分层次教学,让能力突出的学生有更广阔的提升空间,是CDIO模式实施的重要问题。课程组成员将实践教学形式多样化,以项目教学为主线的同时,附加以竞赛实战为辅助,在“项目教学+竞赛实战”的实践中,提高了学生的自学能力、工程能力、团队协作能力以及创新能力。
课程组多次组织学院的程序设计大赛,并带领学生参与全国大学生ACM程序设计大赛,加强学习实战性。ACM竞赛拓展了学生的视野,提高了学生编程和学习算法设计的热情,让被动学习变为主动学习。另外,鉴于ACM竞赛试题本身的趣味性和价值性,结合算法设计的基本实验和设计型实验的要求,从ACM竞赛试题中精心挑选相关题目补充到“算法项目设计”的案例库当中。这样学生可以在平时的学习和实验中接触到ACM试题,对编程能力、外语能力的提高都大有裨益。
3.2.4 以项目评价为核心,改革课程考核模式
CDIO标准要求以项目形式,从构思、设计、实施、运作四个层面对学生所学知识进行评估。基于这一思想,笔者以出勤成绩、笔试成绩、实验成绩、主动学习、创新成绩的汇总作为期末成绩,替代以单一的期末卷面考试为主的评价方式[4]。其中的主动学习与创新成绩是学生在项目开发过程中的参与程度、掌握新知识和新技能的能力以及综合运用知识解决问题的能力的得分。
4、学习效果
在《算法设计与分析》课程中进行的探索和实践证明,采用CDIO教育理念设计的项目设计为核心的教学过程,与围绕教材、以课堂讲授为主的教学方式相比,新的教学方式可有效激发学生的学习兴趣,大部分学生学完本门课程后,学生普遍反映能够较好地理解并掌握算法设计的方法和技术,学生的自学能力、工程素质、团队协作能力以及创新能力得到提高,更增强了学生在今后从事实际工作的信心。
参考文献
[1]顾学雍.联结理论与实践的CDIO:清华大学创新性工程教育的探索[J].高等工程教育研究,2009(1):11-23.
[2]万金华.基于CDIO模式的综合训练项目探索[J].现代企业教育,2009(4).
[3]张军科.项目教学法的特征及其对教师的要求[J].陕西国防工业职业技术学院学报,2009,(3):46-48.
[4]查建中.论“做中学”战略下的CDIO模式[J].高等工程教育研究,2008(3):1-9.
[5]和薇.CDIO模式在“数据结构”课程中的运用[J].计算机教育,2009(20):122-123.
推荐访问: 探析 算法 面向 改革 分析