算法与数据结构
分享
课程详情
课程评价
spContent=
—— 课程团队
课程概述

一、引言

马云和李彦宏曾经爆发过算法和数据的争论。2008年全球市值最高的十家企业中绝大多数是资源、金融等传统企业,而十年后则是以互联网高科技企业为主,排名第二的Alphabet是谷歌搜索的母公司。

二、课程的定位

《算法与数据结构》是一门理论与实践相结合的课程,是程序设计(特别是非数值计算的程序设计)的基础。由于该门课程的重要性,该课程已经是绝大部分计算机相关专业研究生考试必考专业课之一;课程的成绩是反映学生数据抽象能力、编程能力的重要体现。

                      图1:数据结构课程的作用

三、课程的内容

算法与数据结构主要讨论在应用计算机解决问题时,如何有效地组织数据、表示数据和处理数据,以及如何设计正确的算法和评价算法的效率。该课程介绍常见的数据结构及其应用,常用的数据处理技术和算法,以及算法效率估算的基本技术。本课程的知识体系主要涉及以下内容:

(1) 常用数据结构的抽象数据类型定义及其实现, 包括线性表,栈,队列,数组和串,树和二叉树,图等。

(2) 常用检索和排序方法,检索包括线性表、二叉排序树、散列表等常见的检索技术,排序包括直接插入排序、Shell 排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序等常用的各种排序算法及其时间和空间开销。

四、课程的目标

通过本课程的学习,要求学生:

  (1)掌握数据结构的基本概念,理解算法与算法分析的基本方法;

  (2)掌握线性结构、树结构和图结构的实现方法;

  (3)理解栈、队列等数据结构的应用场合并能正确应用;

  (4)熟练掌握递归、检索和排序算法思想并能应用该解法进行问题求解。

通过对上述内容的学习,在对学生进行基本数据结构的技术、理论、设计等各种技能培养的同时,从问题抽象、数据抽象和算法抽象的角度来组织数据结构与算法的设计并学会对算法的评价方法,培养学生的数据抽象和程序设计能力。也为学习后续专业课程,设计系统程序打下坚实的理论基础和实践基础。

五、课程的特色

教学中采用案例式、实证式、研究型和启发式等新型教学范式来提升激发学生的学习兴趣,培养学生的问题求解与计算思维能力。

授课目标

知识目标:掌握数据结构的基本概念,掌握各种数据结构的逻辑特性、存储表示和基本算法。 

能力目标:针对复杂工程中的算法问题,能够设计数据结构和算法,进行算法分析,并通过具体的编程语言加以实现,具有计算思维能力和创新思维能力,能够为算法设计提出合理的改进建议。 

素养目标:具有工程素养,能够坚持职业操守和道德规范,具有精益求精的工匠精神和探索未知终身学习的意识,具有科技报国的社会责任感。

课程大纲
预备知识

具备初步的C程序设计知识。

证书要求

为积极响应国家低碳环保政策, 2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。

 

电子版认证证书支持查询验证,可通过扫描证书上的二维码进行有效性查询,或者访问 http://www.icourse163.org/verify,通过证书编号进行查询。学生可在“个人中心-证书-查看证书”页面自行下载、打印电子版认证证书。

 

完成课程教学内容学习和考核,成绩达到课程考核标准的学生(每门课程的考核标准不同,详见课程内的评分标准),具备申请认证证书资格,可在证书申请开放期间(以申请页面显示的时间为准),完成在线付费申请。

 

认证证书申请注意事项:

1. 根据国家相关法律法规要求,认证证书申请时要求进行实名认证,请保证所提交的实名认证信息真实完整有效。

2. 完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。


参考资料

教材:

数据结构(C语言版)第3版.李云清、杨庆红等编著.人民邮电出版社,2014.

主要参考书目:

1. 数据结构——从概念到C实现.王红梅,皮德常编著.清华大学出版社出版, 2017.

2. 数据结构(C语言版).严蔚敏,李冬梅,吴伟民编著,人民邮电出版社.2007.

3. 数据结构与算法分析:C语言描述,原书第2版.(美)维斯 著,冯舜玺.译.机械工业出版社.2019.

4. 数据结构与算法.张铭等编著. 北京:高等教育出版社, 2008.

5. 陈越主编. 数据结构. 北京:高等教育出版社, 2012.

6. Data Structures and Program Design in C++. Robert L. Kruse, Prentice Hall. 

7.算法导论(第2版 影印版). (美)科尔曼.高等教育出版社.2002.

常见问题

问题1:上机使用什么软件?

答:上机软件可以使用CB或者其它C编译器。

问题2:如何学好这门课程?

答:《算法与数据结构》是一门理论与实践并重的课程,除了学习理论知识外,那就是coding、coding and coding。本课程有配套的OJ测试题,如果你觉得还不够的话,推荐同学们可以到拼题A平台上进行编程练习。拼题A全称为“Programming Teaching Assistant”(缩写为PTA),网址:http://pintia.cn/。用Chrome浏览器或火狐浏览器浏览效果最佳。