APP下载

《算法设计与分析》教学研究*

2016-03-18尚军亮李圣君孙燕

高教学刊 2016年21期
关键词:算法分析课程

尚军亮 李圣君 孙燕

(曲阜师范大学 信息科学与工程学院,山东日照276826)

《算法设计与分析》教学研究*

尚军亮 李圣君 孙燕

(曲阜师范大学 信息科学与工程学院,山东日照276826)

针对《算法设计与分析》的课程特点,结合教学实践经验,研究探讨了本门课的教学方法和教学手段。结合经典教学模式,引入blending learning和研究性学习等先进有效的教学模式,对提高教学效果、完善教学模式、促进学生综合素质的提高有积极的作用。

算法设计与分析;教学方法;主体地位;blending learning;研究性学习

一、概述

《算法设计与分析》是一门理论性与实践性兼顾的课程,处于计算机科学与技术学科的核心地位。《算法设计与分析》课程的设立,是为了适应新世纪我国计算机科学技术及软件工程人才培养的需要。在本科教学中,无论是对于应用类的学生还是理论类的学生来说,理解、掌握算法设计的基本方法以及正确进行算法复杂性的分析都是十分必要的[1,2]。

然而,该课程知识点多而复杂,不易理解,学生往往因此丧失学习的兴趣和热情,或者能“深入”而不能“浅出”。因此,教师在教授这门课时,应该以学生为主体,在传授基本算法的同时,注意培养他们独立思考解决问题的能力。文章结合教学实践经验,将就《算法设计与分析》在本科教学中的教学方法和教学手段进行探讨研究。

二、《算法设计与分析》教学方法研究

(一)明确目标,培养兴趣

教学伊始,首先让学生明确《算法设计与分析》课程的教学目标,这样才能有的放矢。《算法设计与分析》的教学目标是:通过学习本课程,学生应该掌握计算机软件设计中常用的算法,并可以对算法的复杂性进行分析,能够帮助我们在实际工作中,根据具体问题设计和优化算法,以最少的成本、最快的速度、最好的质量开发出适合各种应用需求的软件。

“兴趣是最好的老师”,因此在学生刚刚接触这门课的时候就要激发起学生学习的热情。比如计算机界的大师Donald E.Knuth曾经说过“Computer science is the study of algorithms”。以此例让学生体会到算法在整个计算机科学中的地位。李开复先生曾著文《算法的力量》,从多个角度探讨了算法在当今生活中的应用,并强调在计算机应用和数据飞速增长的大环境下,算法的重要性在日益加强。通过这些实例,让学生领会到,算法与我们的生活息息相关,从而产生学习的兴趣和动力。

(二)循循善诱,深入浅出

教授每章内容时,一般首先介绍算法设计策略的思想,然后从解决计算机科学与应用中出现的实际问题入手,由简到繁的描述几个经典的精巧算法,同时对每个算法所需要的时间和空间进行分析。而在具体讲述经典算法时,则一般按照提出问题、分析问题、解决问题的基本思路,并且注意引导学生思考。

比如在讲解分治算法处理大整数乘法问题时,首先提出问题:两个n位二进制大整数如何相乘。学生会很容易的想到用小学所学的方法来解决。分析这种方法需要进行O(n2)步运算才能算出乘积,时间复杂度较高。有没有更好的方法呢?若将两个n位大整数各分成规模相等的两部分,再来计算一下时间复杂度,用板书与学生一起计算得到仍然是O(n2)。因此进一步提问:这里我们采用了分治策略,但是算法的时间复杂性并没有得到改进,为什么?当学生明白是因为此处的子问题不是互相独立的。那么如何转化呢?提示学生进行恒等变形,引导学生自己尝试转化方法。接着与学生一起进行转化操作,从而使算法的时间复杂性降低。问题解决了,这不是最终目的,我们在深入之后仍需浅出。因此,这时要强调分治策略在大整数乘法问题处理中的应用,让学生从层层的问题中解脱出来。最后,为了引导学生进一步思考,可以留下问题:若将大整数各分成规模相等的三段、四段甚至更多段会不会再次改进其时间复杂度呢?学生通过课后的进一步思考,可以对分治策略和大整数乘法问题有更深的认识。

(三)精心提炼,深刻理解

有的内容教材上讲解比较简练,学生自己读教材往往理解比较肤浅。因此,教师要善于从中提炼出关键性的有价值的问题,让学生展开多维度思考,从而有助于学生对该问题的理解。

比如,教材在讲述回溯算法解决圆排列问题时,在简单分析后直接给出了实现算法。而算法实现中有几处实现比较巧妙,学生往往似懂非懂。比如center函数中圆心横坐标计算时为什么不用最后一个圆计算,而用for循环,有必要么?compute函数中计算当前圆排列长度为什么也用for循环?学生在深入思考这两个问题后,对圆排列问题有了全面的认识。

(四)强化主体,培养主动

教学中,一定要保证学生的主体地位,充分调动学生的主观能动性。只有学生积极主动的参与到教学中来,才能更好地完成教学任务。

比如在讲解回溯法解决装载问题时,学生在掌握了算法的思想和算法实现后,举一个实例,稍作说明后留给学生课下解决。下次上课时,随机点一名学生上来讲解,反响特别好。其他学生在之前也自己思考准备过,因此听讲的目的性更强,而且注意力特别集中。学生讲解完,教师首先对他的认真准备和条理讲解给予高度评价,然后指出其存在的不足和问题,并启发全班同学一起继续思考解决。这样,通过学生自己的头脑加工,教师的知识或者书本的知识才能转化为学生的知识。

(五)动手实践,提高能力

要想让学生真正掌握本课程的精髓和技能,在课堂讲解和学生思考之外,还需要提供实践的环节。

在教学过程中,教师给学生布置适当的上机任务,以“任务驱动”调动学生的积极性。上机辅导时,及时解决学生出现的问题,并鼓励学生举一反三,活学活用。上机实践使得学生由被动的旁听者变为主动的实践者,有利于加深他们对课程的理解,培养他们的综合能力。

三、《算法设计与分析》教学手段研究

(一)传统板书与多媒体相结合

当今的计算机专业教学,多媒体辅助教学以其直观、形象、信息量大等优势占据了主要地位。算法是一门很抽象的学科,通过演示教学法把理论问题具体化,把静态的教学动态化,一方面可以帮助学生的理解,另一方面可以激发学生的学习兴趣。但是,完全将抽象形象化,又不利于学生抽象思维能力的培养,因此,在利用多媒体教学手段时应该适度。

比如,动态规划算法解决0-1背包问题,证明其具有最优子结构性质时,用板书形式一步一步证明,学生经历了板书从无到有,思路从疑惑到渐渐明白的过程。教师整个的讲解过程与其说是为了证明一个问题,不如说是为了展示一个思维的方法。相对于在大屏幕上演示证明过程,板书形式效果更好。

(二)适时采用blending learning模式

Blending learning是现在大学教学中重要的教学手段。何克抗指出,blending learning就是要把传统学习的优势和E-learning的优势结合起来;教师要启动监督和引导教学,同时学生要积极参加学习[3]。

我们在《算法设计与分析》教学中,也充分利用现在便利的互联网条件,将一些优秀的网络资源和课程提供给学生,让他们以专题的形式在线学习,并且以学习小组的形式共同讨论。鼓励学生选修MOOC,争取拿到MOOC证书,学生的学习积极性得到极大提高。

(三)研究性学习模式引入

结合我们在其他课程的研究性教学经验[4],在《算法设计与分析》中,我们也不失时机的引入研究性教学模式。将教师的科研课题涉及到的算法以专题的形式让学生学习探讨,既让学生对《算法设计与分析》课程的作用更加明晰,而且有些学生参与到教师的科研项目,科研能力和创新能力得到了进一步的提高。数学建模、齐鲁软件大赛、创新创业项目等比赛项目,也成为学生们进一步强化算法理解,提高分析问题和解决问题能力的重要平台。

(四)课程考核评价方式研究

教学评价是对受教育者的多种要素进行价值评估,而考试是教学评价的工具和手段,是测量应试者知识与能力、素质与潜力的量尺。考试为教学评价提供了量化资料,却不能替代教学评价[5]。

《算法设计与分析》课程涉及内容广,应用性强。以传统的考试考核为基础,我们创设了多元评价体系。将实验、期末考试和平时的作业及考勤纳入评价体系,并且将学生对专题和MOOC学习的情况也列入评价体系。这种多元评价方式对学生学习积极性的提高,以及理论与创新实践能力等综合素质的提高起到了很好的促进作用。

四、结束语

《算法设计与分析》是计算机专业的核心课程。教师只有加深自身理论修养和实践能力,并且注意采用适当的教学方法,才能够让学生真正掌握算法的精髓,取得较好的教学效果。在实际教学中,我们综合灵活的运用各种教学方法,并结合多种教学手段,既提高了学生能力,又取得了较好的教学效果。

在今后的算法教学中,我们计划进一步结合优秀的教学模式,设计更有趣更适合学生的专题,让学生在掌握基本理论的基础上,可以在应用项目方面做出更多的创新和有价值的工作。

[1]王晓东.算法设计与分析(第2版)[M].北京:清华大学出版社,2008.

[2]陈蕾,张怡婷,许建.基于创新能力培养的算法设计与分析课程教学改革[J].计算机教育,2010(20):27-29.

[3]何克抗.从Blended Learning看教育技术理论的新发展(上)[J].电化教育研究,2004(3):1-6.

[4]李圣君,尚军亮,雷玉霞,等.人工智能实验研究性教学模式探索[J].高教学刊,2016(3):236-239.

[5]周苏.专业课程教学测评的创新实践[J].计算机教育,2008(7):88-93.

In terms of the characteristics of Algorithm Design and Analysis,this paper explores the teaching methods of the course with consideration of practical teaching experiences.This paper proposes the combination of classic teaching mode,and the introduction of advanced and effective teaching modes,such as blending learning and research-based teaching mode,can improve the teaching effect,perfect the teaching mode,and promote the improvement of the overall quality of the students.

algorithm design and analysis;teaching method;dominant role;blending learning;research-based teaching

G642

A

2096-000X(2016)21-0047-02

曲阜师范大学校级精品实验(实训)项目(jp2015005);曲阜师范大学科技计划项目(xkj201524)。

尚军亮,男,副教授,研究方向为智能信息处理、大数据挖掘和生物信息学。

猜你喜欢

算法分析课程
数字图像处理课程混合式教学改革与探索
隐蔽失效适航要求符合性验证分析
软件设计与开发实践课程探索与实践
为什么要学习HAA课程?
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
电力系统不平衡分析
A—Level统计课程和AP统计课程的比较
电力系统及其自动化发展趋势分析