王彦群,刘付勇
(塔里木大学信息工程学院,阿拉尔 843300)
《算法设计与分析》课程教学方法改革探究
王彦群,刘付勇
(塔里木大学信息工程学院,阿拉尔 843300)
针对传统教学方法不能取得较好教学效果的问题,提出阶段式的多元化教学法。该方法在《算法设计与分析》课程教学中的实施,极大提高学生的兴趣和实践能力,是值得借鉴和推广的教学方法。
算法设计;基于问题的教学法;任务驱动教学法;案例教学法;分组讨论法
《算法设计与分析》是计算机、信息与计算科学、信息安全和系统工程等专业的一门重要专业课。该课程旨在通过对计算机算法的学习,使学生掌握算法设计及复杂性分析方法,培养学生分析问题、解决问题的能力[1]。
该课程是一门实践性、技能性很强的课程,主要依靠理解与实践,并加以灵活应用。但在教学过程中较多的学生对该门课程掌握的情况并不理想,一方面源于学生知识学习深度不够,另一方面源于教师缺乏有效的教学方法和手段。为取得较好的教学效果,任课教师必须具有较强的理论基础和实践技能,同时又要不断探索改进教学方法。
常用的教学方法有讲授法、基于问题的教学法、任务驱动教学法、案例教学法、项目教学法、分组讨论法等。
讲授法是以语言传递为主的教学方法;基于问题的教学法是把教学内容设计成问题,教师引导学生带着问题学习,探讨问题解决的教学方法;任务驱动教学法是把教学内容设计成任务,由教师指导、学生主导来完成任务的教学方法[2];案例教学法是通过对具体实例的演示、讲解,让学生对案例进行分析、讨论、交流,达到认知学习目标的一种启发式教学方法[3];项目驱动教学法是案例教学法的基础上采用“案例导向、项目驱动”的教学方法[4],通过项目的形式进行教学,由教师指导、学生独立完成相对独立的项目。分组讨论法将学生分成若干小组,教师提出一个具体问题或方案,由学生以组为单位,进行讨论、分析和解决[5]。以上教学方法各有优点,但在教学中需要综合实施多种教学方法才能达到好的效果。
根据以上教学方法分析,笔者提出阶段式多元教学法。阶段式多元教学法是将教学任务划分为多个阶段,有步骤地进行,每个阶段的目标明确,并且根据各阶段内容特点融合多种教学法的一种方法。
2.1 算法设计与分析课程教学内容分析
根据《算法设计与分析》课程教学大纲的要求,本课程具体教学内容包括算法基本概念与分析方法、蛮力法、分治法、减治法、动态规划法、贪心法、回溯法、分
支限界法、概率算法、近似算法、计算复杂性理论等[6]。我们根据《算法设计与分析》课程教学内容,融合以上几种教学方法,同时把课程理论知识部分辅以教学网站实施,并注重学生主体性,提出阶段式多元化教学法。
2.2 基于阶段式多元化教学法的算法设计与分析课程教学安排
在实际教学过程中,我们根据教学内容把整个教学环节划分为基础学习阶段、进阶学习阶段、拓展学习阶段3个部分。基础学习阶段侧重基本知识点的掌握,只有通过了基础学习阶段才能进入进阶学习阶段,拓展学习阶段的内容大多属于选修内容,在课时充裕的情况下可以教授。
其中基础学习阶段的内容包括算法基本概念与分析方法、蛮力法、分治法、减治法;进阶学习阶段的内容包括动态规划法、贪心法、回溯法、分支限界法;拓展学习阶段包括概率算法、近似算法、计算复杂性理论。我们在各阶段灵活运用多元化教学法,其中基础学习阶段主要采用讲授法、案例教学法、任务驱动教学法,并把教学网站发布出去,供学生学习和复习;进阶学习阶段主要采用案例教学法、分组讨论法、任务驱动教学法;拓展学习阶段则主要采用基于问题的教学法、分组讨论法、案例教学法。这几个阶段是连续的,预示着学习环节由初级到高级的过程。每个阶段用到的教学方法也并会根据教学内容灵活使用。具体的教学环节安排详见表1。
表1 算法设计与分析课程教学环节安排
《算法设计与分析》主要是讲授计算机应用中经常遇到的实际问题的各种解法,讲授各种算法的基本思想、方法与技术,旨在培养学生分析问题和解决问题的能力。为此,笔者精心设计了阶段式多元化教学法,以期获得良好教学效果。
3.1 基础学习阶段
基础学习阶段的教学内容相对基础、容易理解,内容包括动态规划法、贪心法、回溯法、分支限界法。采用讲授法,能让学生短时间内获得本课程的性质、地位、作用、学习方法,算法基本概念与分析方法等知识,为以后的学习指明方向。在讲解蛮力法、分治法、减治法时,采用案例教学法和任务驱动教学法结合的方法。例如,讲解蛮力法时,抛出案例:旅行商问题,即TSP问题(Travelling Salesman Problem)又译为旅行推销员问题、货郎担问题,是数学领域中著名问题之一。假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得的路径路程为所有路径之中的最小值。
教师通过对TSP问题讲解和实验演示,让学生对蛮力法的特点进行分析、讨论、交流。然后把查找问题中的顺序查找、串匹配以及排序问题中的选择排序、冒泡排序等,设计成任务,由教师指导、学生主导用蛮力法来完成。
3.2 进阶学习阶段
进阶学习阶段的教学内容相对难理解,内容包括动态规划法、贪心法、回溯法、分支限界法。采用案例教学法、分组讨论法、任务驱动教学法。
例如,讲解动态规划法时,抛出案例:0/1背包问题,即给定n种物品和一背包,物品i的重量是wi,其价值是pi,背包的容量是M,问如何选择装入背包中的物品总价值最大?
教师通过对0/1背包问题讲解和实验演示,让学生对动态规划法的特点有所了解,然后3人或4人一组对动态规划法的解题思路和步骤进行讨论、交流。由各小组代表发言,回答同学们的各种提问,教师进行总结。最后把查找问题中的最优二叉查找树、近似串匹配以及图问题中的TSP问题、多段图的最短路径等,设计成任务,由教师指导、学生主导用动态规划法来实现。
3.3 拓展学习阶段
拓展学习阶段的教学内容属于选修内容,包括概
率算法、近似算法、计算复杂性理论。采用基于问题的教学法、分组讨论法、案例教学法。例如,讲解近似算法时,抛出问题:TSP问题的时间复杂度是多少,有没有其它降低时间度的解决办法?然后小组讨论,由各小组代表发言,学生代表觉得指数时间内求解的问题,转化成多项式时间内求解决最好。教师给予赞许,接着介绍近似算法,它是处理难解的组合优化问题的一个非常重要和有效的方法。它可以在多项式时间内求得问题的一个解,并使其目标函数值与最优解的目标函数值之比不超过一个常数。
教师举出TSP问题、顶点覆盖问题用近似算法求解的案例,学生对近似算法有了一定的认识。最后,教师让学生再讨论,以前我们遇到的问题,哪些可以用近似算法实现,并给出解题步骤。
通过这些方法的综合应用,拓展学习阶段也达到教好的教学效果。
阶段式多元化教学法在2015级软件工程班实施后,教学效果显著。学生学习的积极性、学习能力和动手实践能力有了很大提高。蓝桥杯程序设计大赛的获奖率比上届提高了10%以上。可见,阶段式多元化教学法教学效果良好,值得推广使用。作为高校教师,要不断探索、创新有益教学方法,使学生满意、受益。
[1]李建忠.《算法设计与分析》课程教学模式探索[J].现代计算机,2014(7):24-26.
[2]李华,张俊星,谢辉.一种计算机网络课的教学方法设计[J].计算机教育,2012(1):72-74.
[3]吴刚.数据库原理课程教学改革探讨与实践[J].科技信息,2013(12):10.
[4]司春景,李向阳.基于多元教学模式的“软件工程”课程改革研究[J].中国电力教育,2013(7):98-100.
[5]贾虹.浅谈英语专业教学中商务知识的导入方法[J].佳木斯大学社会科学学报,2007,25(2):162-163.
[6]王红梅.算法设计与分析[M].第2版.北京:清华大学出版社,2013.
Exploration of the Reformation on Algorithm Design and Analysis Course Teaching Method
WANG Yan-qun,LIU Fu-rong
(College of Information Engineering,Tarim University,Alaer 843300)
Aiming at the problem that traditional teaching method can't get better teaching effect,puts forward the diversified method of stage based. This method has greatly improved the students'interest and practical ability in Algorithm Design and Analysis course,it is a teaching method which is worth learning and promotion.
Algorithm Design;Problem Based Teaching Method;Task Driven Teaching Method;Case Teaching Method;Group Discussion Method
1007-1423(2016)30-0015-03
10.3969/j.issn.1007-1423.2016.30.004
塔里木大学校长基金项目(No.TDZKQN201616)、新疆南疆农业信息化研究中心项目(No.TSAI201402)
王彦群(1982-),男,湖北襄阳人,讲师,硕士,研究方向为软件工程、农业信息化
刘付勇(1985-),男,讲师,硕士,研究方向为计算机网络、农业信息化,E-mail:417416506@qq.com
2016-09-08修稿日:2016-10-16