一、教学内容
教学内容是教学过程的基本要素之一,是教师与学生双向交流的中介和纽带。作为专业基础课的教师,要不断提高自己的专业素质,随时跟踪学科发展动态。改革教学内容不仅要选用新版、内容较丰富的教材,更要对教学内容进行精选,注意把经典问题算法的最新研究进展、多学科知识交叉与渗透的动向反映到教学内容中来。由于算法设计与分析课程涉及较多数学和理论的知识,在教学内容的组织上要做到内容难度适中,选择适合学生的内容来授课。结合实际问题和相关专业知识来讲解算法设计技巧及算法分析方法,使学生既能理解,又能拓展创新。在内容组织上应该体现理论与实际应用并重的原则。
算法设计与分析所涉及的领域非常广泛,通常包括下面几方面的内容:(1)各种基本和经典的算法,如排序、搜索、图的算法、组合算法和大量的数值计算算法;(2)关于算法分析和算法设计策略、可计算性理论和问题复杂性等方面的理论研究,如计算模型、NP完全问题和问题复杂度等理论;(3)近年来在并行算法、随机算法、近似算法、加密算法、智能优化算法、模式识别算法、神经网络算法、遗传算法以及其他算法领域方面的最新研究成果。
经过多年的教学实践,笔者认为教学内容应由四部分构成:算法基础知识、算法设计策略、算法分析技术、并行算法设计技术及本学科领域的最新进展。算法基础知识包括算法的概念、基本要素、问题求解步骤等。算法设计策略主要包括迭代法、蛮力法、分治法、贪婪法和动态规划。算法分析技术主要包括算法分析的评价体系、算法的时间复杂性和空间复杂性。在讲授这门课时,切忌讲授太深奥的纯理论知识,教师要讲清楚算法的基本概念与思想方法,理论联系实际,用实际项目激发学生学习算法的兴趣。另一方面,教材选择、学时安排要合理,基础理论以必需、够用为度,适当突出实践教学。坚持“实践、实际、实用”的原则,坚持实战教学,培养学生的实践能力和创新能力。
二、教学方法
在教学过程中,教师应该始终贯穿“以问题为中心,以求解为目标”的指导思想来阐述算法设计过程。一般来说,问题求解是从问题分析到算法设计,再到算法分析的逻辑思维过程。第一步是“问题分析”。针对问题的现实领域,认真分析并确认问题的逻辑结构和基本功能,进而建立数学模型,这是从具体到抽象的过程。第二步是“算法设计”。根据求解问题域的特点和数学模型,选择合适的数据结构,进行算法设计和实现,这是从抽象到具体的过程。第三步“算法分析”是对算法的时空复杂度等性质的评价与总结。在讲授算法实例时,可以分五个步骤,即问题分析、数学建模、算法设计、算法说明与算法分析。这样有助于学生理解算法的基本方法,掌握算法的思想精髓,从而提高学生分析和解决问题的能力。本课程可以采用多种教学方法,充分发挥各种教学方法的优势,使学生能够更好地理解和掌握算法设计。
1启发式教学
传统的教学过程中,教师采用以授课为主的教学方式,教师与学生之间缺少必要的交流和互动。教师应该以算法应用场景为驱动,采用启发式教学,实现教与学的互动,引导学生学习的积极性和主动性,教师通过精心设计的启发式教学,诱导学生深入理解算法设计方法的基本思想、适用条件和基本解题步骤。从而引导学生在遇到类似问题时如何选择算法设计方法,如何设计解题步骤。如贪婪法的思想很简单,可以用于处理最优化问题,但是由于用此方法解决问题时优化测度要根据具体的问题自己选取,故用此方法设计算法时对于解决不同问题其具体实现方式也是不同的。为了让学生对此设计技术有完整的认识,引导学生思考对于不同问题应如何选取优化测度,如数钱问题,背包问题,单源最小路径问题等解决时到达最优化时其优化测度各不相同。这种教学方式让学生带着问题学习,可以提高他们学习的兴趣,更重要的是可以培养他们发现问题、分析问题及解决问题的意识和能力。
2研究式教学
研究式教学以解决科学问题为中心,关注学生的独立活动,着眼于培养学生的创新思维能力。将学生分成若干小组,每组选择教师给定的题目,让学生进行研究、探讨,提出解决问题的思路和方法,这样有利于培养学生的创造性思维,增强编程能力和技巧,充分展示自己的能力。
3理论分析和实际应用相结合
计算机科学强调理论联系实际,算法本身相对来说比较枯燥,如果能拓展教材中的内容,在加强理论说明的同时,与实际应用联系起来,可以使学生学起来更有兴趣。
4强化习题讨论教学环节
针对理论课教学中一些尚未理解透彻,容易出错的问题,在习题课中进行分析讨论。选题要有代表性,不选难题繁题,但是要有讨论引申之内容。通过一题多解和分析,加深学生对基本理论知识的理解而起到举一反三,触类旁通的作用,有助于学生结合实际进行具体应用。讨论问题的同时,学生又会提出新问题。在讨论问题、解决问题过程中,使学生独立思考能力得到培养和锻炼。在讲授递归方程解法时,以汉诺塔问题的递归方程为例,可以采用三种解法中任一个求解,同时可以联系时间复杂性分析其时间耗费,从而引导学生思考三种求解方法各自的适用范围及其优缺点。
三、教学手段
现代教学和传统教学手段各有利弊,应根据教学内容,扬长避短,将传统教学方法与现代化教学手段相结合,这也是教学改革的举措之一。传统教学具有受限小、灵活性高、既能较好地发挥学生的课堂能动性,又能充分发挥教师基本功的优势。对于算法复杂性分析和算法解决问题的推导过程,适合采用传统的黑板板书教学方式。因为学生经历了板书从无到有,思路从疑惑到逐渐清晰的过程。为了在有限的教学时间内,增加单位时间的信息含量,把抽象难以理解的内容直观形象地展现,在课程教学中,可引入多媒体教学手段,制作课件,开展计算机辅助教学。计算机辅助教学的特点是将算法设计中较抽象的设计思想以动画形式演示出来,既可以节省教师在课堂上的板书时间,也可以将算法设计的一系列步骤直观展示在学生面前。如利用贪婪法解决单源的最短路径问题时,利用课件可以让学生更清楚了解求解指定顶
点到其他顶点最短路径的过程以及最终求解结果,更好掌握贪婪法的设计思想。这种教学方式可以更好地发挥学生能动性,提高学生学习兴趣。此外,可以把课件在相应网站发布,学生可以上网察看,方便课后复习。必要时,也可以制作一些论坛,方便学生与教师的交流,学生不明白的问题可以在论坛中提出,教师也可以利用论坛针对学生有代表性的问题及时做出回答。这样增加了师生间的互动,使学生在良好环境下,轻松学习新知识。
四、考核方式
考试的主要作用是对学生所学的知识进行评价反馈、检测教学效果并督促学生认真学习、巩固所学知识,同时也有利于教师发现教学中的问题。不断地改进教学工作。传统的考核方式比较单一,仅根据期末考试的成绩来对学生好坏进行衡量,不利于反映学生真实的学习效果。与外国学生相比,中国学生理论基础扎实,从教师和教材吸取的知识较多,对讲授的内容掌握牢靠。但创新能力较差,不善于发现问题、提出问题,缺乏实际解决问题的能力。这种现象的根源在于考试制度,包括考核形式与评分标准。目前,算法设计与分析这门课程的成绩大多按两部分计算:一部分是平时作业等情况的考核,占总成绩的30%~40%;另一部分是闭卷考试,占总成绩的60%~70%。这样,大部分学生只重视闭卷考试部分,不重视平时学习,更不会挖掘潜力进行创新研究。因此,考试形式和评分标准的改革是中国教育体制改革的重中之重。就“算法设计与分析”这门课程而言,笔者认为在平时考核中应突出动手能力和团队合作能力。[JP2]这样更注重学生学习过程中的表现情况,有利于促进学生积极。因此,本课程考核方式主要从以下两个方面做出改革和新尝试。[JP]
一是学生成绩由平时成绩、期末成绩两部分组成其中平时成绩占30%,期末成绩占70%。学生的平时成绩包括:课堂出勤率,30%;作业完成情况,40%;团队项目中所发挥的作用,40%。
二是期末成绩采用多种方式的考核。期末考试的形式包括:理论试卷、上机测试。这种考核模式有效提高了学生学习的积极性,并实现了与企业需求接轨的教学目标。
五、结束语
算法设计与分析课程是一门非常重要的计算机科学与技术专业的课程.具有理论与实践并重、设计与分析并重的特点,是保证学生校内所学知识与企业需求相互匹配的关键课程。如何根据企业需求调整该课程的教学目标、教学内容、教学方法及考核方式,是新一轮课程改革的目标。本文就前面四个方面的教改提出了见解和策略,并将在以后的教学过程中将这些理论应用于实践,以帮助学生尽快适应社会发展的需要,提高他们在社会上的竞争能力。
参考文献:
[1]王晓东.算法设计与分析[M].北京:高等教育出版社,2009.
[2]孙红丽.浅谈算法设计与分析课程的教学改革[J].太原教育学院学报,2005,(4).
[3]刘波.算法分析与设计教学探讨[J].高等理科教育,2007,(4).