选课类别:计划内与自由选修 | 教学类型:理论实验课 |
课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
课程层次:专业基础 | 学分:4.0 |
数据结构是计算机学科一门重要的专业基础课,该课程系统地讨论各种常用的数据结构及其应用,各种查找和排序的方法,及其综合分析比较,能够培养学生数据抽象和程序设计的能力,算法时、空复杂性的分析能力。
万寿红老师的教学生动、有趣,常被形容为像给小学生讲课,课堂节奏较慢而清晰,PPT内容丰富,且常加入图示与例子以帮助理解。尽管有同学提到适应困难,部分学生仍然表示课内容较适合自学。此外,课堂经常点名,较适合有良好出勤习惯的学生。
课程内容基于清华大学的数据结构教材(C语言版),涵盖广泛但不全列入考试范围;特别是带星号的内容一般不考,但可能在研究生阶段使用。PPT某些地方比教材更详细,包括额外代码和例子。
课程有五个实验,涉及线性表、栈与队列、哈夫曼树、图、哈希表等,难度适中,但需提交实验报告,广泛认为报告较麻烦。实验课后可提交补交。作业较为宽松,助教评分不严,两次习题课只需基本掌握即可。
期末考试由万老师出题,题目难度适中、范围不偏不怪,考前建议复习PPT。考试成绩几乎决定总评成绩,但整体给分较高,即使课程难度未完全掌握的同学也常获得不错的绩点。
若你对课程内容感兴趣且有良好的自学和出勤习惯,万老师的《数据结构》课程是个不错的选择。对于GPA追求者也颇有吸引力,但需注意实验报告的工作量。总之,选择是否修这门课还应视个人学习风格而定。
旧事重提: 非常后悔当时听课不够认真,这倒与考试无关,主要是现在回想起老师上课带你一步步分析算法,而我在后排不时刷着手机,总有种怅然的悲伤。 虽然我上课状态一言难尽,但确实得承认这门课,或者说妮可很多课的确可以通过自学掌握大部分知识。这门课在这学期置给了ai和ds,所以到课的人也不是很多,老师经常点名。 还是那句话,选择大于努力,建议别选ds和ai的课。 这本教材是大概20年以前的,我不晓得ppt的情况,但内容非常详细。同时,也并非所有内容都有考察,带星号的几乎不会考试,但老师还是会带你过一遍算法。这些内容,应该会在读研的时候发挥作用。 实验一共五个,好像不是最多的,但也不少。每个实验满分十分但有附加两分。整体难度还好,有难有易。但话又说回来,这班几乎都是ds和ai,都在卷,不做附加会有点吃亏。此外,实验允许补交,但会扣除一定分数。 但是,这门课考试难度完全出乎我意料。我估计平均分能有八十几,在如此高的分数下,总评占比几乎都给了考试,实验和作业加起来估计也就10%-20%,可以说,考试决定你的成绩。 我的实验并没有做满全部的分,作业又不是满分,但是在出勤率慢的情况下,考试91分,最终总评93。 一些建议: 好好听课,好好听课,好好听课 你的水平取决于你自己,你的成绩取决于你的同行 选择大于努力,别来ds或者ai
非常好老师,使我的电脑旋转
突然就想写个点评,这还是第一次写点评哈哈哈哈哈,期末考试刚考完不久,成绩也还没出了,而且关于给分高低我也说不准,毕竟本人成绩并不是特别好,所以该电评主要讲一讲上这门课的感受。 首先是老师,感觉万老师上课非常有活力,很有趣啊,就想前面点评说的,像在给小孩子讲课一样,就是有种看周星驰电影的那种感觉,(可能这种形容不太准确,但我突然就想到了这个所以就提一嘴),老师刚开始讲得很清楚也很慢,感觉讲得很好,而且ppt也非常好,并且对于每个算法老师都会举例子,感觉举一些例子对于理解算法的过程还是很有帮助的,并且ppt上也配有有很多图片。总之,感觉老师在讲课和ppt上做得都很好,哦对了,点名还是会点的,印象中好像点过四五次。所以对于万老师,我给满分! 关于实验,实验总共有五个,分别是线性表,栈和队列,哈夫曼树,图,哈希表,难度感觉还可以,只要认真做基本都可以完成的。然后需要写实验报告(明天就要交实验报告了而我才刚开始写啊啊啊啊啊!) 关于教材,教材使用的是清华大学的数据结构(c语言版),教材写得也很好,但有些老师的ppt在有些地方会更详细一点,比如会补充一些书上没有的代码或者例子。 关于助教,感觉助教长得还蛮帅的哈哈哈哈(做实验时他边上的朋友也很帅),感觉助教人也很好,作业的打分也听宽松的,应该不是很严然后本学期是上了两次习题课,第一次听了一点,助教会讲一下作业和和一些拓展,比如当时提到了一个双指针的拓展,(因为之前没学过)所以当时听了之后就觉得很有趣。第二次习题课没认真听。 大概就是这些,总之感觉还是蛮不错的。
作为一名高中竞赛生+ACM队员,记忆中只去上了屈指可数的几次课。。。。自从万老师说“觉得自学期末能考好的可以不来听课”我就没怎么来过(除了一个讲B-树的清晨,记得那天整个教室只有不到40人OTZ)(此处映射一波疯狂点名的马老师)
我是大一被马老师“图形化”+眼花缭乱的讲课方式吓到了隔壁数据结构班的。
总体感受上,万老师讲课的ppt和清晰程度实在是好(此处映射一波马老师),而且对实验报告啊内容啊各方面的细节要求也十分清楚(再次映射一波马老师),助教们也很用心的在判作业和验收实验(顺道映射一波马老师的助教们)
今年的期末卷子是万老师出的(因为我期中反馈的时候说马老师老喜欢出只有自己班留过的作业原题然后他就帅锅了OTZ)。不偏不怪,难易也很适合(前一晚上熬夜看B树和各种哈希各种排序结果考的都很基本OTZ),基本是选择填空+程序填空+简单的算法结果模拟+程序设计题(最后觉得试卷体量较大还延长了15分钟QAQ)
我是卡上了4.3,估计给分也都比较好。
真的,觉得马老师比较那啥的可以换过来,真的,我觉得很赚
老师非常好,助教只能说还OK。
哥们要更新一下,实验报告要写吐血了,话说为什么数据结构还要写实验报告,吐血了吐血了。
挺重要的课,怪我太摆烂了总评84,劝学弟学妹好好学。
前面的同学说的都很详细了,我就来说说实验吧。
实验的基本原则:做的越多分越高(助教会有具体的评分标准)
1. 稀疏一元多项式的运算和表示
输入一元多项式的每项系数和幂次以录入多项式,同时支持多项式的加减乘除、微分积分求值等功能。
2. 简单的栈与队列的实现
我做的是「行编辑器」,「括号配对检验」,「银行业务模拟」三个题目,一共(应该)有五个。
3. 二叉树的应用
利用 Huffman 树压缩 & 解压文件。
值得注意的是,这里可以用范式 Huffman 编码,降低存储 Huffman 树的开销;分割文件为一个一个的 Trunk,可以更好的利用局域的相似性。
更能肝的同学可以研究一下 deflate,实现一波(我本来想这样做的,但是发现时间确实不是很够...)
4. 图的应用
输入一个无向图,输出图的深度优先搜索遍历顺序与广度优先搜索遍历顺序。显然的,最后的答案会有多种可能,这里统一要求:当有多个节点可以搜索时,优先去节点编号最小的那个。
输入一个无向铁通讯网图,用Prim和Kruskal算法计算最小生成树并输出。
输入一个无向铁路交通图、始发站和终点站,用Dijkstra算法计算从始发站到终点站的最短路径。
5. 哈希表
(1). 输入关键字序列;
(2). 用除留余数法构建哈希函数,用线性探测法解决冲突,构建哈希表HT1;
(3). 用除留余数法构建哈希函数,用拉链法解决冲突,构建哈希表HT2;
(4). 分别对HT1和HT2计算在等概率情况下查找成功和查找失败的ASL;
(5). 分别在HT1和HT2中查找给定的关键字,给出比较次数
还有,万老师给分太好啦~4.3 路过(溜
讲课清晰,会帮我们回顾c语言知识,会带我们层层分析算法
老师讲课超好,可以说是很少我能听下去的课之一,而且助教很帅(
给分也超好,作业和实验都可以补交,唯一美中不足的是实验报告要写吐了
大数据置课,人很少,所以有些卷。老师讲的很详细,像在给中学生上课。PPT做的挺好的。因为期末很简单,所以给分基本就是期末考的分数,我卷面89,总评91。实验有五个,难度还好,作业随便写写基本都十分。唯一槽点就是助教习题课讲的太烂了(虽然人很帅)。
老师讲的很清楚,和教小学生差不多,考试也不难,主要是我考前熬夜,考试差点睡着结果翻车-_-
老师讲课抑扬顿挫,很认真,很仔细,像是引导小学生一样。但说实话,从高中以来已经很久没有听过这样的课了,所以很不适应,经常是听着听着就不想听,宁愿自学了。课堂风格感觉和隔壁马老师(天花乱坠)是各有千秋,看哪个是你的菜了。
试卷出的挺好的,平时作业和实验涉及的多的基本就是重点了,没有考一些很偏很难的点。像B+树、旋转、KMP之类到了考前还觉得很偏很难不太会的都是没有考的。感觉考前把PPT完整过一遍就差不多了。