欢迎来到学术参考网

《算法设计与分析》课程教学问题的路径建设

发布时间:2015-08-29 13:43

 《算法设计与分析》是计算机相关专业的一门重要专业基础课,通过对该课程中一些基本理论和方法的学习,能够理解主要的算法思想,掌握基本的算法设计方法,培养一定的算法分析能力,并学会用这些算法解决相应的实际问题。
  通过我们多年的教学实践以及与其它任课教师的交流,普遍认为《算法设计与分析》这门课程内容比较抽象,知识涉及范围比较广,存在“教师难教,学生难学”的现象,教学效果不理想。《算法设计与分析》是一门科学性与工程性、理论性与实践性并重的课程。主要介绍常用的算法思想、典型算法问题的解决方法及算法复杂性分析,要求学生具有较好的数理基础、较强的逻辑思维能力和扎实的数据结构知识,并具有较强的编程能力。因此该课程对我们普通院校的师生而言,无疑是一个不小的挑战。教师必须充分理解该门课程的特点,针对学生的实际情况,合理设置教学目标,在教学内容、教学方法、实践教学和课程考核多方面加以研究改进,才能达到该课程的教学目标。
  1 合理组织教学内容
  1.1 重视算法理解和应用,弱化算法逻辑推理和复杂度分析
  《算法设计与分析》课程目标主要是使学生掌握常用的算法思想和算法设计方法,具备基本算法分析能力,进而培养分析和解决实际问题的能力,为学生从事软件系统开发和应用打下良好的基础。
  当前《算法设计与分析》课程教学往往过于强调算法的逻辑推理过程和算法的时间复杂度分析,教学内容中涉及较多的公式推导和数学证明。随着高等教育的大众化,普通本科院校计算机相关专业学生的数学基础和数学分析能力普遍不高,对复杂的算法公式推导和数学证明等理解困难,这极大地挫伤了学生的自信心和学习积极性。因此在我们的教学中,尽量避免大量复杂的公式推导和数学证明,降低理论难度,深入浅出的讲解算法思想。简化复杂的时间复杂性分析过程,甚至直接给出时间复杂度公式。重视算法理解和应用,重点讲授算法的基本思想、采用的数据结构及程序实现,通过更多算法应用实例,培养学生的算法设计及实际应用能力,从而提高学生的学习兴趣,提高教学效果。
  1.2 合理组织教学内容
  《算法设计与分析》课程教学重点是分治法、贪心法、动态规划法、回溯法和分枝限界法,这些内容对于本科生而言知识容量和难度都比较适中。在教学过程中必须详细介绍算法的基本思想、采用的数据结构及代码实现,在不影响理解和应用的基础上,避免繁琐的公式推导和数学证明。
  算法教材中研究和讨论的算法实例,以理论性研究居多,与实际应用有一定距离。因此在教学中尽量选用教材上学生能够理解和感兴趣的应用实例。为了更好的辨别理解不同的算法思想,同样的算法问题,例如教材中的0-1背包问题可以采用多种算法思想实现。通过讲解同一问题的不同算法实现,让学生更好的理解算法思想的异同,节省问题本身介绍,提高课堂教学效率。
  对于学习能力比较强的学生,教师在讲解这些基本算法内容的基础上,可以提供一些采用这些算法解决不同领域问题的最新科研论文,让学生了解这些经典算法在不同领域的广泛应用,同时引导他们适当地参与科研,从而提高优秀学生的学习兴趣,培养学生的自主学习能力,提高其算法理论水平。
  2 改进教学方式
  2.1 合理使用多媒体教学课件
  多媒体教学技术在课堂教学中起到了非常重要的作用,比传统板书节省时间,能在同样的时间内将更多的内容展示给学生,提高了课堂效率。但是在《算法设计与分析》的教学过程中,并不是所有内容都适合使用多媒体课件。板书仍然是必不可少的方法,对有些需要思考的内容通过板书的方式放缓节奏,留给学生思考的时间,使学生尽量跟上教师的授课思路。在教学过程中我们应该根据具体教授内容扬长避短,充分利用传统粉笔黑板与多媒体演示相结合的启发式教学方式。
  2.2 使用动画技术展示算法思想
  《算法设计与分析》课程中的算法思想比较抽象,算法实现往往涉及到复杂的数据结构,这使得一些逻辑思维能力不强,数据结构及程序设计基础不好的学生很难透彻地理解算法思想和程序代码。可以通过BALSA、TANGO、ZEUS等算法演示系统软件制作相应的算法演示动画,将算法的运行过程及行为通过图形、动画、声音等方式表现出来,生动形象地展示教材中的理论和案例,使得学生更有视觉感官效果,印象深刻,辅助学生理解算法,达到良好的教学效果。
  3 加强实验教学
  3.1 合理设计实验内容
  上机实验是算法课程必不可少的环节。通过实验帮助学生更好地掌握算法理论知识,深入理解并灵活应用算法思想来解决实际问题,培养学生的实践能力和创新精神。按照教学大纲的要求,《算法设计与分析》安排五个实验,分别涉及分治法、贪心算法、动态规划法、回溯法和分枝限界法。考虑到学生学习情况和实际编程能力的差异,按照难度分梯度设置实验项目。针对每个算法实验,我们都设计了必做题和选做题。必做题包括1-2个基础性的实验题目,以验证性的实验为主;选做题包括2-3个提高类题目,以设计类和综合类的题目为主。一般学习能力的学生通过课堂理论知识的学习和老师的上机指导,有能力完成必做题目,达到教学大纲的要求;而对于那些学习能力较强,并且对算法设计有较大兴趣的同学,则可以在教师的指导下,进行选作题目的实验,培养其软件设计和综合应用能力。
  3.2 引入ACM-ICPC实验模式
 由美国计算机协会组织的国际大学生程序设计竞赛(ACM-ICPC))以其题目的趣味性、对抗的激烈性和团队精神吸引了众多高校师生的参与。选手编写程序的正确性和效率通过竞赛评判系统自动评判。ACM-ICPC竞赛题目多,趣味性强,很多题目具有很强的算法思想,非常适合作为算法课程实验的补充和提高。ACM-ICPC 在线判别系统OJ可以分析程序是否编译通过,运行是否成功,是否在规定的时间内完成,输出是否符合要求,运行所占用的时间和内存等,并给出各项评测结果。因此将ACM-ICPC模式引入到算法设计与分析的实验教学中,一方面可以极大的激发学生的学习兴趣,增强学习氛围,同时减轻了实验教师在实验验收和评判方面的工作量 ,提高了实验管理的效率和实验成绩评判的公平性。
  4 丰富考核方式
  目前《算法设计与分析》课程的考核方式主要是由平时考核和期末考核两部分组成,平时成绩占总成绩的20%-30%,期末考核基本上采取单一的理论考试形式,占总成绩的 70%-80%。这种考核方式重理论轻实践,不利于培养学生的实际应用能力。我们考虑将该课程的考核分为二部分,一是平时实验成绩占总成绩的30%,其中20%考核学生的上机操作完成情况,上机操作采用ACM-ICPC 在线判别系统自动判分。10%考察学生的实验准备和实验报告情况。期末考试分成两部分来考核,理论考试占总成绩的50%,上机考试占总成绩的20%。理论考试侧重于对算法理论和算法思想的考核,而上机考试则侧重于对编程能力的考核。上机考试可采用北大的在线提交系统进行评分。这样的考核方式符合本课程理论与实践相结合的教学思想,实践考核方式公平客观,便于操作,同时引导学生在深刻理解算法思想的基础上重视上机实践,提高编程和分析解决实际问题的能力。
  5 结束语
  在《算法设计与分析》的教学实践中,我们强调算法理论与实际应用相结合,合理组织教学内容,重视实践教学,改进教学和考核方法,大大激发了学生学习兴趣,提高了教学效果,达到了课程教学目标。
  参考文献:
  [1] 陈慧南.算法设计与分析—C++语言描述[M].北京:电子工业出版社,2006:1-10.
  [2] 秦董洪,陈智勇.算法设计与分析课程教学研究[J].计算机教育,2013(11):98-101.
  [3] 王晓东.算法设计与分析[M].北京:清华大学出版社,2003:1-10.
  [4]伍宏珏.由ACM看《算法设计与分析》教学改革[J].九江学院学报,2009(6):120-123.

上一篇:浅议初中物理课堂小组合作学习的方式创新

下一篇:交互式电子白板激活小学信息技术的策略分析