本门课由大一下开设的 3.5 学分的《数据结构》和大二上开设的 2.5 学分的《算法设计与分析》合并而来,对原有的课程内容进行了大幅的压缩删减,请注意使用资料时选择对应内容使用。
以下部分资料来自原《数据结构》和《算法设计与分析》的内容,请注意区分。
- 黄虎杰
- 老师授课采用电子版教材 + PPT + 录播视频 + 线上授课(疫情期间)+ 课堂讨论的形式,PPT 按照课程进度提前一星期下发至 QQ 群,还会下发已录制好的幕课视频,课前发讨论题,供同学们提前预习。
- 课程认真听总是好的,但很大概率会睡着,部分知识点听不懂可以上 CSDN 看看大佬们的理解。
- 助教基本负责作业批改相关工作,有问题可以直接在 QQ 群中提出。老师会回答。
- 张海军
- 没上过老师的课,但是大一上就对这位老师有所耳闻,听说非常「规格严格」,大一立项开题答辩这位老师就在场,很有气场,莫名感到害怕。
- 何震宇
- 上课认真负责,讲课比较生动,算是我上过课的老师里较为接地气的一位,几乎每节课都会对上节课有简单的回顾,如果有认真听课会更容易理解掌握学习内容。但是语速较快(加上疫情返校戴了口罩),刚开始会不习惯,很难跟上,但是经过反映和熟悉后好了很多。会给上课积极发言的同学较高平时分,所以课上有发言机会要积极把握。
- ppt 做的很详细,相应例题的解题方法与代码都非常清楚,可以作为考前主要复习资料之一,每节课都会把 ppt 发在群里,若是有修改也会及时更新。但是 ppt 的颜色和字体搭配有点瞎眼,滥用红蓝色和粗体。(推荐看户保田老师的 ppt)
- 作业题量不大,但是基本覆盖所有考点,都属于很典型的题目,认真写了的话会有较大帮助。
- 李穆
- 一位比较年轻的老师,上课很有活力,讲解课程思路清晰。课前会把 ppt 给大家,可以用来提前预习。期末也会把考试要求总结好发给大家,供复习参考。
- 老师提供的资料比较多,比如一些电子课本、章节拓展练习。课件里也会补充比较多的算法题供大家思考。
- 非常认真负责,每节实验课都会赶到现场,和实验老师共同检查大家的实验。
- 数据结构(C 语言版)(严蔚敏 / 清华大学出版社 / textbook)
- 算法导论 Introduction to Algorithms(Thomas H. Cormen / Charles E. Leiserson / Ronald L. Rivest / Clifford Stein / 殷建平 等译 / 机械工业出版社 / 第 3 版 / textbook)
- 数据结构与智能算法(张海军 / 马江虹 / 张正 / 清华大学出版社 / textbook)
- 数据结构与算法(廖明宏 / 郭福顺 / 张岩 / 李秀坤 / 高等教育出版社 / 第 4 版 / textbook)
- Fundamentals of Data Structures in C(Ellis Horawitz / Sartaj Sahni / Susan Anderson-Freed / 李建中 等译 / 清华大学出版社 / 第 2 版 / textbook)
- Data Structures, Algorithms, and Applications in C++(Sartaj Sahni / 汪诗林 / 孙晓东 译 / 机械工业出版社 / textbook)
原数据结构考试
19 级考试难度不大,都是基础知识的选择题、填空题,大题和实验相对简直是非常友好,两三道基础编程题,其余的分析题基本是作业里见过的。实验都熬过了,相信大部分知识也掌握得差不多了,知识点细节考前可以梳理一遍。但是时间不太够,需要做快一点。
打分应该还算友好的,得分情况不太清楚。但个人一直觉得计算机学院的课程一般平时听不太懂很煎熬但考试反而没有想象中那么难,考前复习一遍知识点,应该没多大问题了。
20 级的考试难度较大,和往年差很多,应该不具有太大参考价值,改的也蛮紧的,捞人,但捞的不太厉害。
原算法设计与分析考试
考试的内容及考点基本上全部包含在了上课的 ppt 和作业里,基础题占百分之七十以上甚至还有可能会有原题,所以对于认真复习了的同学来说还是非常友好的,挂科率也较低,最高分可达到满分。
考试很简单,而且老师之前吓我们说有的证明都没有,有些失望(白看了许多证明),都是简单的作业题,细心一点就可以全部做对。考试中考到了 ppt 中的一个错误,但是这个错误ppt并没有改正,不知道之后是否得到纠正。
数据结构与算法考试
26 春的试卷具体题型如下:
- 单项选择题:共 10 题,每题 2 分,共 20 分。
- 填空题:每空 1~2 分,共 10 分。
- 简答题:每题 10 分,共 20 分,包括哈希表和二叉排序树的有关分析。
- 分析题:每题 10 分,共 30 分。包括网络流算法、关键路径、摊还算法分析。
- 算法题:每题 10 分,共 20 分,考查贪心、动态规划等算法,要求分析时间复杂度、递归方程、写伪代码等。
相比 25 春的试卷,少了一道算法题,但是试卷却没有变容易,无论是计算量还是思维量都比 25 春的高不少,导致大家普遍做题时间不够用,很容易写不完。这也使得总评如果能达到 90 分,就已经是很靠前的分数了,卷面分达到 90 分的更是极少。
数据结构实验应该是整个大一最头疼的实验课了。实验按照学习内容进行展开,每年各实验大致方向应该都不变,基本是考察链表、栈、队列、树、图、排序等相关操作及应用,难度总体呈递增状态。
实验题目在每次实验课开始时公布,包括实验题目,一个有代码框架的 .c 文件(需要自己补全,也可以自己写),下课前一个小时会发布助教的输入,要求输出正确。
同学们需要在下课前将源代码及运行结果截图发送至指定邮箱,课后撰写实验报告并在截止时间前发送至指定邮箱。课上的代码程序部分占 50 分,实验报告 50 分。对于源程序和实验报告的分数评定,老师有一套很详细的评分标准。
课上写程序时遇到问题可以自行上网查询或及时求助助教或老师,千万不要一直被卡在那里,否则很有可能在下课前交不上源程序和运行截图。有两次免课上提交的机会,尽量留到后面比较难的实验。
2020 级课程实验取消课上验收环节
课上课后投入时间一言难尽,有时候感觉自己写的不是代码,是一堆 bug。有时候一两小时写出的代码, debug 要花一整天(永远有发现之后特别想抽自己的那种 bug,叹息),实验报告有格式内容要求,特别耗时其实。一般实验报告都得写好几个小时。
实验报告占分很高,需要熟练使用流程图绘制,内容排版,尽量写多点。
数据结构与算法实验
在课程改为《数据结构与算法》后,实验形式也发生较大变化。如今的实验比较像大一的 C 语言的实验,只需要在 OJ 上按时完成算法题即可,也不需要提交任何实验报告,算是最简单的一批实验了。同时,每次实验课实验老师都会随机抽人检查,要求现场讲解某一题的代码思路,若回答不上来或缺勤可能扣实验分。
- 本门课程的作业较少,也只占到 10 分。作业形式为在 OJ 上完成算法题,且 23 级和 24 级的 OJ 上均只有一次作业,注意及时提交即可。
- 部分班级课上还可能有课堂小测,不知道会不会算作作业分的一部分。
- 关于作业还是要以各班老师的具体要求为准,上面只是多数班级采取的形式,仅供参考。
原数据结构建议
作业题很有可能会出现在期末试卷上,一定要认真对待。不懂的地方百度或者求助大佬,搞懂为止。做了就有蛮高的分。
这门课程最硬核的点当属实验了,做出实验的前提是课堂知识的掌握,非常有必要课前预习,不然上课很容易听不懂而且听着听着就睡着了。
课后及时复习并尝试着上机写一写各类数据结构的相关操作,重在实操,光看代码是学不进去的,一定要多动手多写代码。
考试前复习一遍 PPT,善用搜索引擎,对于各种比较重要的算法和不太懂的地方,上网看看大家的理解。