一、引言
马云和李彦宏曾经爆发过算法和数据的争论。2008年全球市值最高的十家企业中绝大多数是资源、金融等传统企业,而十年后则是以互联网高科技企业为主,排名第二的Alphabet是谷歌搜索的母公司。
二、课程的定位
《算法与数据结构》是一门理论与实践相结合的课程,是程序设计(特别是非数值计算的程序设计)的基础。由于该门课程的重要性,该课程已经是绝大部分计算机相关专业研究生考试必考专业课之一;课程的成绩是反映学生数据抽象能力、编程能力的重要体现。
图1:数据结构课程的作用
三、课程的内容
算法与数据结构主要讨论在应用计算机解决问题时,如何有效地组织数据、表示数据和处理数据,以及如何设计正确的算法和评价算法的效率。该课程介绍常见的数据结构及其应用,常用的数据处理技术和算法,以及算法效率估算的基本技术。本课程的知识体系主要涉及以下内容:
(1) 常用数据结构的抽象数据类型定义及其实现, 包括线性表,栈,队列,数组和串,树和二叉树,图等。
(2) 常用检索和排序方法,检索包括线性表、二叉排序树、散列表等常见的检索技术,排序包括直接插入排序、Shell 排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序等常用的各种排序算法及其时间和空间开销。
四、课程的目标
通过本课程的学习,要求学生:
(1)掌握数据结构的基本概念,理解算法与算法分析的基本方法;
(2)掌握线性结构、树结构和图结构的实现方法;
(3)理解栈、队列等数据结构的应用场合并能正确应用;
(4)熟练掌握递归、检索和排序算法思想并能应用该解法进行问题求解。
通过对上述内容的学习,在对学生进行基本数据结构的技术、理论、设计等各种技能培养的同时,从问题抽象、数据抽象和算法抽象的角度来组织数据结构与算法的设计并学会对算法的评价方法,培养学生的数据抽象和程序设计能力。也为学习后续专业课程,设计系统程序打下坚实的理论基础和实践基础。
五、课程的特色
教学中采用案例式、实证式、研究型和启发式等新型教学范式来提升激发学生的学习兴趣,培养学生的问题求解与计算思维能力。