选课类别:计划 | 教学类型:理论实验课 |
课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
课程层次:专业基础 | 学分:4.0 |
作为一名高中竞赛生+ACM队员,记忆中只去上了屈指可数的几次课。。。。自从万老师说“觉得自学期末能考好的可以不来听课”我就没怎么来过(除了一个讲B-树的清晨,记得那天整个教室只有不到40人OTZ)(此处映射一波疯狂点名的马老师)
我是大一被马老师“图形化”+眼花缭乱的讲课方式吓到了隔壁数据结构班的。
总体感受上,万老师讲课的ppt和清晰程度实在是好(此处映射一波马老师),而且对实验报告啊内容啊各方面的细节要求也十分清楚(再次映射一波马老师),助教们也很用心的在判作业和验收实验(顺道映射一波马老师的助教们)
今年的期末卷子是万老师出的(因为我期中反馈的时候说马老师老喜欢出只有自己班留过的作业原题然后他就帅锅了OTZ)。不偏不怪,难易也很适合(前一晚上熬夜看B树和各种哈希各种排序结果考的都很基本OTZ),基本是选择填空+程序填空+简单的算法结果模拟+程序设计题(最后觉得试卷体量较大还延长了15分钟QAQ)
我是卡上了4.3,估计给分也都比较好。
真的,觉得马老师比较那啥的可以换过来,真的,我觉得很赚
前面的同学说的都很详细了,我就来说说实验吧。
实验的基本原则:做的越多分越高(助教会有具体的评分标准)
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 路过(溜
老师讲的很清楚,和教小学生差不多,考试也不难,主要是我考前熬夜,考试差点睡着结果翻车-_-
老师讲课抑扬顿挫,很认真,很仔细,像是引导小学生一样。但说实话,从高中以来已经很久没有听过这样的课了,所以很不适应,经常是听着听着就不想听,宁愿自学了。课堂风格感觉和隔壁马老师(天花乱坠)是各有千秋,看哪个是你的菜了。
试卷出的挺好的,平时作业和实验涉及的多的基本就是重点了,没有考一些很偏很难的点。像B+树、旋转、KMP之类到了考前还觉得很偏很难不太会的都是没有考的。感觉考前把PPT完整过一遍就差不多了。