课程简介:
培养实验班学生掌握数据结构和算法的设计分析技术,提高程序设计的质量,根据所求解问题的性质选择合理的数据结构并对时间空间复杂性进行必要的控制。使得学生在将来的学习、研究和工作中,具备设计和实现高效的数据结构和算法的能力,以及卓越的问题求解能力和创新能力。
本课程方案的基本设计原则可以概括为以下三个方面:
(1)强调基础数据结构与算法的训练,从问题求解的角度,培养学生运用数据结构和算法基本理论来分析和解决问题的能力。
(2)结合计算机科学技术的现代前沿研究课题,设计研究启发式教学案例,扩展学生知识体系,培养主动学习、研究和创新意识。
(3)注重实践能力和工程能力的培养,使得学生遵从软件开发的规范性,并建立起数据结构与算法设计和问题求解的知识体系。
主要的关注点,是数据知识与算法知识体系以及问题求解的计算思维能力。课程的重点:从广度和深度上把握数据结构与算法的知识体系,了解基本数据结构和经典算法,掌握理论、抽象和设计方法。课程的难点:问题抽象、算法抽象、数据结构抽象等数学抽象能力的培养;树和图结构中搜索和回溯思想;排序等算法的时空效率分析和权衡;检索和索引的效率;AVL、伸展树、红黑树等平衡树、B/B+树等数据结构中的平衡问题;根据实际问题,选择合适的数据模型,设计合适的算法,运用所学理论知识来求解;各种数据结构和算法在学科前沿中的应用和发展。
针对上述重点和难点,本课程从理论、抽象和设计的三个层次展开数据结构与算法教学,注重数据结构基本概念和抽象数据类型表述,使得学生可以在不同的设计阶段采用不同的抽象数据类型作为设计的基础,在适当的抽象层次上考虑程序的结构和算法。对每种数据结构都从其数学特性入手,先介绍其抽象数据类型;再讨论其不同的存储方法,与学生一起讨论研究不同存储实现下的可能算法;然后结合算法分析来讨论各种存储方法和算法的利弊,摒弃那些不适宜的方法。这样,充分调动学生主动学习的积极性,使得学生学到数据结构与算法所涉及的计算思维方法。
Understand principles and theories of Data Structures and Algorithms; complexity analysis and tradeoff, able to design and implement efficient and effective data structures and algorithms to solve problems.
Covers programming, data structures, and algorithm analysis, especially advance data structures.
Topics include the organization and implementation of fundamental data structures such as list, binary tree, tree and forest, graph; the efficient sorting and searching algorithms; complexity analysis and tradeoff; data abstraction and problem solving; advance linear structures, and advance tree strucutres.