一、文献综述
- 国内研究现状
算法设计与分析是一门综合性、理论性、实践性都较强的专业课程,是计算机专业和相关非计算机专业本科高年级与研究生的一门重要专业课,主要针对一些经过提炼的具体应用问题(如矩阵连乘、路径规划、0-1背包等),向学生介绍运用分治算法、动态规划算法、贪心算法、回溯法等解决问题的设计思路及分析过程。在我国对算法课程的教学研究较多,尤其是处于新课程改革背景下,因为算法课程是一个理论结合实际的课程,课程性质具有综合性,特别适合在我国教学方式由单一化向多元化转变过程中进行教学设计研究。
在国内的算法教学研究中,分治算法作为算法课程的经典算法之一,在课程中占有重要地位,其算法教学研究和应用也是比较多的。分而治之是一种较为容易让人理解的解决一系列类似问题的方法,分治算法所能解决的问题具有一些特征:(1)该问题的规模缩小到一定的程度就可以容易地解决;(2)该问题可以分解为若干个规模较小的相同问题, 即该问题具有最优子结构性质;(3)利用该问题分解出的子问题的解可以合并为该问题的解;(4)该问题所分解出的各个子问题是相互独立的, 即子问题之间不包含公共的子子问题。在对分治算法的教学中,一般是从规模小的问题到大规模的问题,引导学生将一个问题分解多个子问题,例如用分治算法求解棋盘覆盖问题,首先是一个比较小的棋盘,在学生对棋盘覆盖问题有了初步的理解之后,在让学生处理规模较大的棋盘,从而启发学生运用算法策略将问题进行分解计算,然后用程序语言实现。
分治算法在实际的应用非常广泛,比如在排课系统中的应用,将课表编排应考虑的因素一一考虑,并将这些因素作为课表编排的子问题,然后将各子问题在有效利用教学资源的基础上, 较优地得到解决, 且各子问题的解合起来要能较好地解决整个课表编排问题。分治算法可处理海量数据,例如数据有10G,而内存只有2G或3G,对于这种数据量大到内存装不下的问题,可以利用分治思想,将海量数据集合依据某种方法,划分成为几个小的数据集合,每个小的数据集合单独加载到内存来解决,然后再将小数据集合合并成大数据集合。分治算法可应用数学中,解决数学中的矩阵问题,比如矩阵求逆的迭代分治算法;可应用到比赛中,解决循环比赛的赛程分配问题。
(三)发展趋势
算法课程旨在培养学生分析问题和解决问题的能力,掌握算法设计及复杂性分析方法。本课程理论与实践并重,内容具有综合性、广泛性和系统性,是一门集应用性、创造性及实践性融为一体的综合性课程。在算课程的特性以及新课程改革的背景下,教师改变了传统的教学方式,实施启发式教育,在课堂教学中,教师偏向充分调动学生的主观能动性,注重培养学生的创新精神、探究能力和实践动手能力。在教学方式上,开设多样化的教学方式,比如基于翻转课堂的教学方式、问题驱动递进启发式教学、任务驱动式教学、比较式教学等教学方式。采用多种形式的教学方式,使枯燥的课堂变得更加有趣,让学生对课堂的注意力更加集中和课堂内容感兴趣。
课程的教学方法的研究和讨论一直是我国较为重视,算法课程具有其鲜明的课程特点,适用多种教学方式。文献[3]和文献[5]介绍了《计算机算法设计与分析》的教学方法,要转变教师的角色和思想,让学生站在主导地位,要确立教学目标:培养学生的观察能力、综合考虑问题的能力、创新力和想象力等,提高学生的综合能力;在教学内容的选择上要注意难易适中,符合学生的已有知识,在教学过程中理论实际并重,甚至可以加强实验环节,让学生充分理解算法的代码实现。分治算法的教学通过一些经典例题让学生理解分治算法的核心思想,同过实验课让学生自主完成分治算代码语言的实现,帮助学生消化知识。分治算法在课堂中的教学中采用比较教学法,与动态规划、贪心算法三者一同进行比较,区别三者的不同,比较教学法中常用的比较思维在人的思维过程的各个阶段都能起作用,能让学生更好地接受。
分治算法的教学研究是为了更好的将知识传递给学生,培养他们的算法思维,能够解决实际生活中的问题。
- 存在的问题
1.在内容上
