算法设计与分析课程教学改革探索*

2022-07-29 14:12许丽娟文晓棠
计算机时代 2022年7期
关键词:课外知识点算法

陈 艳,许丽娟,文晓棠

(广州华商学院数据科学学院,广东 广州 510520)

0 引言

算法设计与分析课程是普通高校计算机相关类专业的核心基础课程。由于该课程需要较多数学知识,课程内容多且难,因此有相当一部分学生对该课程有恐惧感。为了提高课程的教学质量,改变学生现有的不佳学习状态,课程教学必须改革。

1 现状分析

对于算法设计与分析课程,学生学得吃力,老师教得辛苦,究其原因主要如下。

该课程的前导课程为高等数学、离散数学、数据结构和程序设计类课程,这些课程对于学生来说本身难度就较大,尤其数学类课程,掌握的程度有些学生并不理想,当在算法分析与设计课上需要应用的时候,就感觉前导课程的储备不够,用得吃力。

算法课要讲解较多的理论知识,如问题的原理、数学模型和复杂性的分析等,这些内容是算法分析的基础,虽然学生听得枯燥,却是需要重点讲授的内容。课程本身有难度,逻辑性非常强,每个算法中的知识点一环套一环,学生在学习时只要其中一个环节没搞明白,就可能不能理解整个算法。算法和算法之间可能还存在关联,前一个算法不理解,会直接影响到后面算法的学习。

课程除了难度大之外,知识点也非常多,如要学习的算法有递归技术与分治法、贪婪法、动态规划法、回溯法、分支限界法等,还包括计算机应用领域的一些算法,而课时数不多。所以,要求学生理解算法思想,举一反三灵活运用,难度就非常大。

通过有限理论课的学习,要求学生能对理论课的知识快速接受并通过编程实现,且能解决实际生活中的问题,对动手能力不强,或者算法基本知识掌握不够好的学生来说非常困难。

针对上述问题,对教师来说,如何上好算法设计与分析课程,也是一个很大的挑战。根据笔者多年该课程教学过程中的探索,发现基于应用能力的培养对于算法设计与分析课程的教学效果更好。

2 教学改革

2.1 教学内容

传统的算法设计与分析类教材,虽然有经典的论述,但对学生来说阅读和理解有困难,容易让学生产生畏惧疲劳感。因此我们要在现有教材基础上,研究将逻辑性极强、难度大的教学内容与实际生活中的应用联系起来,将生活中的案例与书上的算法理论结合起来。用算法解决生活当中的实际问题,提高学生对算法理论的接受度,消除学生的畏惧心理,激发其学习兴趣。比如讲授动态规划策略中的最长公共子序列问题时,以基因比对为例,应用到失联儿童的寻亲,或者当前疫情下通过新冠病毒序列的比对,来分析病毒的来源等,学生对此十分有兴趣,对此算法学习的兴趣也大大提升。

提炼经典算法,并增加最新的应用广泛的比如人工智能、大数据方面的算法。算法的应用十分广泛,在现今人工智能、大数据时代更是如此。在算法设计与分析授课过程中,结合最新的技术领域的应用,更能让学生理解到该课程学习的重要性和必要性。

教学内容上的改革研究,关键是重组教学内容,丰富与书本算法理论匹配的生活中实际应用的案例,将枯燥的理论知识赋予生机,让学生体会到学习的不仅仅是算法,而是用所学的知识去解决实际生活中的问题,是提升自己对社会作贡献的能力。

2.2 教学手段、方法和模式

课堂上难度大的知识点,借助动画或者动态图的方式来辅助复杂逻辑的理解,将枯燥的理论变得生动有趣,笔者已经在课堂上将部分知识点予以实施,收效不错。在课堂上尝试翻转课堂的模式,对于较简单的知识点把讲台交给学生来分享。可以有分组讨论的环节分布在各个理论或者实践教学中。

除了课堂授课之外,对于难度大的知识点用微视频的方式课前预习或者课后复习,甚至可以借助微信或者QQ 开设微课堂,对于重要的教学内容设置微信小程序实行学习打卡制度,学生对于课外的这种学习要求,既有学习压力又有学习兴趣和动力,对其学习积极性的调动十分有益。

因此,教学手段和方法上的改革研究的关键是研究如何把现代化的IT 产物合理的应用到教学中来,让学生从刻板的传统教学方式中解脱出来,积极参与教学,把课外的时间主动利用起来学习。

2.3 实践教学

在教学方法上,传统的单纯由教师进行讲授的授课方法,不利于学生主动思考,学生在具体实践操作过程中往往具有盲目性和机械性,因此实践课的安排要充分的把课内理论和应用结合起来,甚至把课外的时间充分利用起来。课内实验课意在巩固算法自身理论,是课堂内容对应的最基本的实践要求。除此之外,补充各个知识点在实际生活中的应用实践,每次课后提供多个实践应用项目可选,学生可以选择一个或者多个去完成,也可以自己去挖掘相应知识点的应用场景来完成。此任务需要利用学生的课外时间,有硬性要求的任务,也有可做可不做的任务。对于工作量大的实践任务,采取分组的方式,在任务的完成过程中,要充分体现团队协作过程中每个成员的具体工作,也要体现出团队执行的优势。对于学生课外实践的优秀成果,引导他们在科研上有发展,在公开刊物上发表技术论文。对于有余力的学生,引导他们参加“蓝桥杯”等各类国家级省级竞赛。鼓励学生报考国家级相关的认证资质。借助程序设计竞赛实施“算法设计与分析”课程教学改革,将程序设计竞赛与课程教学有机融合,建立“以赛励教、以赛督学”的教学模式,能够有效地提高“算法设计与分析”课程的教学质量。

课堂/课后实践方式改革的关键是题库、资源库的建立,将大型IT 企业的常考面试题,“蓝桥杯”竞赛题以及各类大型专业技术论坛的题收集整理,按算法类别进行分类并标识难度系数,不同难度系数的题库和资源库建立后,通过大量的练习,对于提升学生动手动脑的能力有较大的帮助,对于促进学生深入研究和参加竞赛都有顺水推舟的作用。

2.4 教学评价和考核方式

改变传统的以分数论英雄的评价模式,将评价标准向实践能力倾斜,将期末考试成绩在综合成绩的占比下调,引入实践能力考核和课堂贡献考核成绩的比重。如图1所示,实践能力是平时实验的完成情况、课外小型项目的完成情况、和综合素质的情况(如团队协作精神)等多方面的综合评价;课堂贡献包括学生制作小视频,实现算法在生活中应用的案例程序和发掘算法对应生活中案例等的贡献。

图1 课程教学评价指标

将学生平时表现、课堂课外的实践能力、课堂贡献和期末卷面考试成绩按照2:2:2:4 的比例制定课程最终的考核标准。平时成绩包括考勤、作业完成情况以及课堂表现;实践能力包括上机实验、项目的完成情况和综合能力的考核;课堂贡献包括在学习平台的回答问题解决问题以及互动的情况,提供学习小视频等能帮助同学进步的情况。通过这种新的评价方法,强化了对学生实践能力的要求,对学生主动学习和实践给予了肯定,消除了平时不学习,考前临时抱佛脚也能考出好成绩的局面。

3 改革初步效果

改革前,算法设计与分析课堂学生参与度一般,改革后,学生的积极性有大幅提升,表现在考勤、作业完成情况、课中课后主动与老师沟通或者问问题的情况和主动参与课程案例建设的情况。现在算法课再也不是压在学生身上的一座大山,而是学生们每周期待的一门课。

传统的“以考代练”的方式,对于经历了高中三年魔鬼式训练的学生来说,应用于大学阶段的学习并不合适,而“以练代考”的方式反而更能激发学生的学习兴趣,让学生摆脱考试的束缚,能专注于把知识学懂学通,花更多的精力在知识的应用上,而不是应付考试的死记硬背。学生有了更自由的发展和发挥空间,反而在专业能力上的提升更明显。表现在毕业设计选题上,早期指导老师设置的算法类命题基本无人问津,近两年逐步出现了学生选择此类课题的现象,尤其2022 届毕业设计的选题,选择此类课题的学生达到了20人以上。

通过在算法课堂开展的实践教学与训练活动,并开展由算法教学课程组主导的赛前培训,学生参加“蓝桥杯”竞赛的人数和获奖情况近两年明显增加。

从表1可知,算法课程改革以来,从第十一届开始,蓝桥杯参赛人数有了突飞猛进的增长,反应了学生参加的积极性大幅提升,获奖人数也有了很大增长,说明学生的专业能力得到了明显提升。

表1 近年“蓝桥杯”参赛情况

4 结束语

算法设计与分析课程,作为计算机类专业的核心课程,老师如何教好、学生如何学好,对于学生专业能力的培养至关重要。以基于学生应用能力培养为目标的算法设计与分析课程的教学,能激发学生的学习兴趣,并以此带动学生在毕业设计选题方面的多样化、专业能力竞赛方面的热情,甚至对学生的就业也提供了更多的可选择领域。经过实践,本文探索的教学内容、教学方法/手段、实践教学和考核方式等方面的改革,取得了良好效果,希望能为计算机类其他课程提供参考。

猜你喜欢
课外知识点算法
一张图知识点
一张图知识点
第四页 知识点 歼轰-7A
小满课外班
我的“课外老师”
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
一种改进的整周模糊度去相关算法
关于G20 的知识点