对和算法设计密切关联的"计算机导论"、"离散数学"、"程序设计"、"数据结构"和"计算机算法设计与分析"5门课程的内容进行了重构,变传统的"按内容性质横向划分"为"围绕问题的纵向组织",例如不再将离散数学知识单独组织为一门课程,而是依据问题相关性打散分布到整个课程中去。整个课程全面涵盖了:计算机为什么能帮助我们解题?要让计算机帮我们解题需要什么样的数学基础?如何构建算法与组织数据以适合解题的需要?用什么方案可以设计出合适的算法?如何分析解题的结果和可能的期望等计算机专业能力培养的核心问题。
为了便于教学实施,算法线课程体系由四个"论域"构成,它们是:
| 论域1 | 计算入门与数学证明:该论域主要引导学生理解计算思维最核心的概念,了解计算的基本方法与与局限,接受基本的形式化训练,掌握抽象数学证明的基本方法。
|
| 论域2 | 经典数据结构与算法:该论域主要引导学生理解数据抽象,理解并能够应用常用的数据结构;掌握重要的算法设计策略,以及算法设计与分析的基本理论与方法;理解并能够应用支持上述内容的离散数学工具与方法。 |
| 论域3 | 典型应用问题及其求解方法:该论域主要引导学生掌握典型应用中抽象出来的重要算法问题的求解方法;理解并能够应用支持上述内容的离散数学工具与方法。 |
| 论域4 | 复杂性理论与“难”问题的算法:该论域涵盖问题求解中的复杂性理论的基本内容与问题规约方法;解决“难”问题的主要方法、技术以及相关的重要理论结果。 |
以上每个论域的教学在一个学期中完成。每个论域由16-18个论题组成,每个论题由若干个具有较高内聚性的计算机问题及其相关知识和实践能力训练内容构成,每个论题的学习内容大致需要一周时间完成:2-3个小时的深度引导讲授,2-3个小时的小组讨论,8-10个小时的课外阅读和编程训练。
|