算法设计与分析课程教学改革
2020-01-13李其申黄华张永
李其申 黄华 张永
【摘 要】 针对目前算法设计与分析课程教学中存在的不足,文章从教学内容、教学方法、考核方式等方面进行改革。优化教学内容、采用阶段式多元化教学方法、加强过程考核、建立课外创新团队“以赛促教”,目的是提高教学效果、提升学生运用知识能力和综合素质能力。
【关键词】 算法设计与分析 教学改革 以赛促教
引言
近年来,随着计算机技术的迅猛发展,在当今大数据与“互联网+”时代,大学生更需要坚实的专业知识才能跟上科技的脚步。而算法设计作为计算机专业课程更加凸显其重要性。从事与算法相关的软件开发、维护和运营是当前高校计算机毕业生的一个就业热点,如何使算法设计与分析课程建设更适合于计算机应用型人才的培养需求是一个重要的问题。基于此,针对算法设计与分析课程存在的问题及现状,就算法设计与分析课程教学方法、网络辅助教学、考核机制以及实践教学环节问题,提出了相应的教学改革措施和策略,并按照“分级递进、逐步提高、综合应用”原则设计实践教学,使学生能够达到新工科背景下计算机专业人才培养目标的要求及就业需求。
计算机编写程序解决问题,先要设计出解决问题的算法,因此算法是程序设计的基础。《算法设计与分析》是计算机、网络工程、软件工程、信息安全等专业的一门重要专业课。通过课程的学习,使学生能够理解并掌握常用的算法设计技术和实现方法,培养学生分析算法复杂度的能力,并引导学生根据问题建立数学模型、进行算法设计和复杂度分析,增强其解决工程和生活中实际问题的能力。为顺利对口就业奠定基础。
1. 存在的问题
算法设计与分析课程是一门理论与实践并重的课程,主要依靠理解与实践,并加以灵活应用。但在教学过程中学生对课程掌握的情况不理想,一方面源于学生知识学习深度不够,另一方面源于教师缺乏有效的教学方法和手段。
大多高校对该课程仍以理论讲授为主,一般是给出一些典型的问题,采用经典的算法求解。这些典型问题大部分偏理论,过少甚至缺失算法编程实践,与实际生产中的问题有距离,且难度较大,学生会有畏难情绪,影响学生学习积极性,被动接受知识,缺乏独立思考,一定程度上影响了教学效果。在该课程的教学过程中,如何使学生具备更强的独立探求新技术和新方法的能力、创新能力和适应能力是当前该课程教学所面临的重要问题。针对课程特点和教学中存在的问题,采取了以下的方式和方法改进教学。
2. 改进措施
2.1 优化教学内容
本课程主要讲授算法的设计技术和分析方法,包括基础知识、有代表性的算法设计技术、算法分析与问题的计算复杂度、NP完全性理论等。内容可分三部分:第一部分算法分析基础;第二部分是算法设计策略;第三部分算法能力的极限,主要是求解困难问题。内容组织上本着“设计与分析并重、理论与实践应用结合、经典与现代互补”的原则,同时扩展介绍本学科领域的前沿知识,增加有关大数据挖掘的算法、神经网络的知识、并行编程技术等,内容体现“经典性”、“前沿性”、“创新性”特点。
结合竞赛和教师科研内容去融入教学中,尤其是在讲解蛮力算法问题时,通过科研项目案例帮助学生理解后续算法的完备性;讲解线性规划、近似算法和随机算法,这些是实用性较强的算法,教学重点如何运用这些实用算法去解决实际生活中的问题,增强学生的学习兴趣,让学生感到学有所用,即培養学生对所学算法的实际应用能力。最终达到使学生可以用基本理论去解决实际问题的目标。
2.2. 阶段式多元化教学法
以学生为中心,在教学任务的不同阶段灵活运用多元化教学法。该教学法是将教学任务划分为多个阶段,有步骤有计划有明确目标地进行,根据各阶段教学内容特点融合多种教学法实施教学。
第一部分算法分析基础阶段主要采用案例教学法、任务驱动教学法、翻转课堂教学法。建立网络教学平台,将章节视频、案例视频、教学课件、作业任务、练习库等相关教学资料内容放置到教学平台,辅助课程教学,将课堂教学延伸到课外,供学生自主学习和复习。
第二部分是算法设计策略学习阶段,主要采用启发教学法、案例教学法、分组讨论法、任务驱动教学法。例如在讲解线性规划模型时,可以通过银行理财的案例启发教学,同时采用分组讨论如何利用不同的算法在理财时达到收益最大化,以现实生活热点案例学习讨论激发学生的学习兴趣;例如背包问题、资源分配问题等,采用不同的策略求解,分析比较各种策略的优缺点,使学生理解各种算法策略的特点、学生通过编写程序实现,理论联系实际,学习在求解实际问题中,如何合理地选择所需要的策略,帮助学生加深对算法的理解。
第三部分算法能力的极限学习阶段,主要是求解困难问题。该阶段属于拓展学习阶段,主要采用基于问题的教学法、案例教学法、项目教学法。这个学习阶段可先通过经典、有趣的实例来说明,使学生了解的大致解决思想,然后再通过阅读相关科技文献的方法加深对算法的理解。这样不仅可以让学生较容易地掌握相关算法,还可以让其了解相关领域的研究状况。
2.3 考核方式改革
算法设计与分析课程除了期末考试以外,应该考核方式多样化,增加平时考核和过程考核。注重评判学生平时课堂上的积极性,作业的完成效果,学生的创新能力,即注重对学生的过程性考核。为了激发学生参加学习的兴趣,教师对学生参加校“三小”项目、老师的科研项目、蓝桥杯等类似的程序设计竞赛的积极表现和获奖应该给予“加分”激励。利用过程性考核和最终的理论测试考核相结合的方式来综合评价学生。课程总成绩分三方面考核(1)理论知识考核,包括算法知识点理解记忆,同时也包括代码的编写能力与风格以及设计模式的应用,此部分采用笔试,占50% ;(2)平时的课堂参与度与课堂习题完成情况认定,占20% ;(3)实践考核,上机实践及实践能力考核(其中包括由学生参赛、参与科研情况及已获得的成果)占30%。
2.4 创建课外创新团队加强实践改革
依靠课内学时培养学生的算法设计、分析和创新能力是远远不够,还要将实验环节与各种程序设计大赛相结合,鼓励学有余力的学生积极参与相关比赛的训练或实践团队[1]。这些竞赛以程序设计语言为依托,以算法设计为重点,考察学生综合实践应用能力。
创建学生课外创新团队,在本科生导师制的基础上,成立由各年级学生自愿参加的学生创新团队,并为团队命名,以凝聚吸引力和合作精神。团队包括大一、二、三年级学生,主要以大二、三年级学生为主的“以老带新”的梯队建设原则,由专业的专任教师进行计划性、系统性地课外教学和实践指导。教师鼓励学生参加科研项目、蓝桥杯、ACM-ICPC等各项竞赛,侧重考查学生解决实际问题的能力,能较好地培养学生自主学习、分析解决实际问题及团队合作的能力。作者指导学生的作品在第十四届“挑战杯”全国大学生课外学术科技作品竞赛江西赛区决赛获科技发明B类一等奖(本科组)。指导学生参加中国高校计算机大赛-团体程序设计天梯赛获总决赛团一等奖。指导学生参加国家大学生创新训练计划项目“基于STM32的校园快递自助收发终端”、“面向发电装备的工况数据模拟试验台性能测试”等项目均获奖。
结束语
综上所述,如何培养学生善于学习新知识和运用知识解决实际问题的能力, 对教师的教学活动是很大的挑战。要培养高素质、具有创新能力的学生,还必须建设高水平的教师队伍。在以后的教学工作中,将进一步加强课程建设,培养学生对算法学习的兴趣,提高学生独立分析问题及解决问题的实际动手能力。
参考文献
[1] 陈英,江智康,章文贵,裴威凤.算法设计与分析课程以赛励教的教学模式及效果分析[J]. 高教学刊,2020(6):77-79.
[2] 孙廷凯 , 於东军 , 孔慧 , 张宏 , 陆建峰 .“算法设计与分析”课程探究式教学改革实践 [J]. 工业和信息化教育, 2017(10).
[3] 张银柯,陈瑞芳.算法设计与分析教学改革[J].内江科技, 2017(11).
[4] 吴川,孙锦程.基于ACM的《算法设计与分析》教学改革研究[J].中国科教创新导刊, 2010(32).
[5] 孙廷凯,於东军,孔慧,张宏,陆建峰.“算法设计与分析”课程探究式教学改革实践[J].工业和信息化教育, 2017(10).
[6] 王智峰,张学东,王莉,丁宁.算法设计与分析课程教学改革[J].中国冶金教育, 2018(06).
*基金项目:南昌航空大学第四批校级创新創业教育课程培育项目“算法设计与分析”
作者简介:李其申(1975-) 博士学位,副教授,主要研究方向:计算机应用技术、算法设计与分析