选课类别:计划内与自由选修 | 教学类型:理论实验课 |
课程类别:本科计划内课程 | 开课单位:信息科学技术学院 |
课程层次:专业基础 | 学分:3.5 |
许小东老师的《数据结构及其算法》课程内容适中,适合没有 OI 基础的学生。教学细致,以 PPT 为主,内容详实,图文并茂且适合复习与自学。课堂教学逻辑清晰,注重算法的理解和实现过程,时常结合画图解释复杂概念,帮助学生理解数据结构性质、实现方法和应用举例。然而,课堂气氛因语调较为平稳,可能略显单调。
考试难度被普遍认为友好,偏向考察算法的理解和数据结构的性质,较少涉及手写代码。部分学生反映考试复习能够通过往年题型提升,因考题内容重复度较高。而作业和考试原题重复度高有助于获取好成绩。尽管优秀率普遍达到较高水平,高分段较为严格,个别学生反映遭遇绩点被压。许老师可能会将卡绩点学生总评调低一分以避免尴尬局面。
许老师的作业题质量高,但难度和题目理解有时超出考试。评分严格,平时分的重要性较大。实验包括 6 个常规项目,难度适中,主要考察编程细节和 C 语言基础。有学生建议把老师的代码改成个人习惯的样式以便理解。作业和实验被视为复习的重要资料,但禁用 STL,强调基础代码练习。
学生对该课程的教学质量持正面评价,认为内容充实且递进,能有效帮助构建算法知识框架。但对于追求高绩点的学生而言,可能需要付出更多努力以避免因评分严格而卡绩点。学习成果上,大多数学生对数据结构和算法的理解有所提升,并建议复习往年题以有效减少考试压力。
期末竟然考了六七年前的原题,可以说是十分生草。
许老师上课,一个字:稳;两个字:平稳。基本上听不出老师的语调起伏,某种程度上可能比较催眠?但对于一个毫无OI基础且新转来网安的小白来说,这样的基础课是不敢不听的。细听之下居然还找到一些感觉,虽然平稳,但老师上课的逻辑清楚,极有耐心,但凡碰到稍显复杂的过程都会画图讲解(而且他的手和他的语速一样慢),有时候确实让人着急。
还值得一提的是许老师的PPT做的很好,图片与代码都很详实,适合提前预习,也适合考试前复习。
课程总体内容不难,甚至可以说偏简单。一个章节可以大致分为:数据结构的性质、具体实现方法(一般是顺序和链式)、应用举例。没有涉及到很高深且难以理解的算法。性质(比如栈的先进后出)和实现方法(循环队列的判空判满条件)对应考试的选填,应用举例一般是算法,对应考试的简答和代码题。
实验仅需完成那千年不变的6个,24年没有选做题,不知道之后会不会有。课程快结束的时候许老师问过同学,实验的时间主要花在C的语法bug上还是数据结构的实现上,大部分同学似乎都是前者,所以C的基础还是有参考意义的。实验可以补交,而且每次实验的时间总体还是宽松的。我自己习惯在宿舍敲好代码,线下去机房直接提交,但最后一次哈希表的实验公布题目太晚了,以至于只能在机房写,最后也在一节课内完成了(没想到文档给的参考输出居然有错,害我找了好久的bug……本来可以当堂课提交的)。
来一个马后炮,实验推荐自己“造轮子”,就是自己实现一遍各种数据结构的代码,或者把老师的参考代码改成自己喜欢的形状狠狠塞进u盘,方便随时include。比如我个人喜欢用 & 引用传参,但老师的代码很多是用 ** 实现的,直接套老师的代码会很别扭,也容易和自己的写法冲突导致语法bug,所以后期我都是临时手动改他的参考代码,挺费事但又懒的自己写一遍(别学我)。我25春学期会监督我室友按照这套办法做,看看效果如何 \doge。
作业偏难,真的,所以如果你平时要借助AI那放心,这不是你的问题。不夸张的说作业不论是选填还是大题,都有许多是超过了期末考试难度不少的。关于作业的给分,我感觉是很好的,虽然助教会写上80、90这样的分数,但从总评来看平时分应该是给满了的(大概吧)。
考试不重代码实现、不重代码实现、不重代码实现!!!期末考试不需要你把各种算法的代码装满脑袋,它考察的多是数据结构的性质(比如利用栈的先进后出性质判断可能的输出序列)和算法的具体实现过程(比如Dijkstra算法实现中各顶点的状态变化,要求画图描述或者填一个数组),不会要你手写算法的代码。当然代码题需要手写伪代码,但根据往年题和24年期末,考树结构相关的可能性很大,毕竟递归写起来方便,逻辑也清楚。
最后卷面未知,但我Dijkstra有一个数组的含义忘记是什么了,导致有一小题是空着的,总评居然97,应该是把八九十分的作业给满了,而且卷面捞的力度不小。但毕竟是个人感受,所以给分好坏的评价选的一般。
老师很贴心,这学期为了避免被喷卡绩点,把卡绩的同学直接总评-1
对数据结构这门课的总体感觉就是:上课难度和考试难度完全是天差地别。考前很努力地啃了很久代码,结果发现考试考的绝大多数都只涉及对算法的理解,而不涉及算法如何实现,可以说是相当友好的考试了。复习时可以把重心放在每个算法的实现过程,而不用狂背各种代码。(不过话又说回来,对考验敲代码水平而言,手写程序的确是最次的考核方式,点名批评大一程设考试)
xxd老师的作业出得很神奇,选择题跟考试题型十分接近,有效锻炼考试熟练度。助教在改作业时也会按照百分制认真批改,哪里出错一目了然,复习时对着作业过一遍,差不多就能把概念搞清楚了。同时,老师的ppt内容也很详细。除了期末不给划重点,得去偷看其他班给的重点之外,老师的课还是值得一上的。
不过老师的实验课要求每一次都要去签到,就算已经没有需要验收的大作业也得签到,考核有点过于严格了()
没有 OI 基础。
实验难度总体尚可,问题多出在编程细节。(我不扎实呜呜呜)
作业题质量挺好,但部分题意不清;作业评分好严苛,平时分-- 的我心在滴血。
ppt 质量很好,老师讲的也很细致,每节课前一般都有小练习,好评。
考试难度不高,题目应该都能写,不过还是被爆了,寄点狂掉qwq。
总体感受,个人对学习成果还是满意的。至少现在,面对自己以前不知所云,只会膜拜的 DFS、BFS 等一堆算法和名词,也能说出自己的看法和理解了。
还是在进步的嘛。给自己点个赞了。
老师上课认真,ppt的内容也比较充实,会适当补充部分内容,平时作业是通过bb系统提交,内容和题型和考试相关,期末也遇到不少原题,6个实验感觉大部分偏简单,基本是涉及到的章节算法设计的复现,套了个应用的外壳。给分优秀率基本给满了,平时作业和实验认真做问题不大,95飘过。
量信人的第一门信院课,中规中矩的课程。
考试的时候大部分题目是类似于应用题,就是让你人脑推演算法的运算步骤,比如让你画一下Dijstra算法每一步的运算。所以对于书上指针乱飞的实际代码并不会太考察,有一种奥数的美。课程挺好的,不太喜欢这种考试形式。
给分一般,基本没捞。
感觉班里大佬很多,所以只在大一学过c的话,想拿高绩点确实吃力。东哥讲课真的很清晰,ppt做的也超详细,我c学的不算很好,所以上机实验课确实有点难,但是还是跟着老师把数据结构这门课掌握了,学期末也开放了课堂回放便于大家复习。另外我感觉东哥还是很奶的,给我东哥满分,推荐大家选东哥的课(东哥的线电讲的也不错)
这学期置课置了这个班,就没换了。
老师的课上的还是不错的,认真听的话,ppt上的算法都是能听懂的。
考试比想象中简单。考前还在想一些复杂算法的代码可能手写不出来,然后发现后面的20分编程题貌似只考链表和树,可能还会穿插排序、查找算法(貌似这课每年都这么考?)。
给分方面的话,老师会把优秀率拉满,但是高分段会比较杀。本人卷面91,总评92)))没卡绩,但我的评价是如卡。(叹气)
想了半天原因,觉得可能是,就算作业实验都认真写认真交了,大家平时分也都不是满的,然后总评会因此扣个两分?(但我作业分也不低啊。。)
所以大家如果只是想拿优秀的话,这个班挺好的。但如果有更高的追求,建议换个平时分能拉满的老师(哎,叹气)
《数据结构及其算法》这门课程基本学不到什么东西,如果在大一的《C语言程序设计课》上拿到了3.7以上的绩点的话,这门课应该对你来说会学的比较轻松。
本课程大概讲述了一些数据结构,算法内容其实不算很多,实际上也就了解一下就能够应付期末考试,但你深入学习这个课程也不会教你更多的东西。数据结构平常稍微听一下也就会了,不需要什么思考。而本学期学的数据结构基本可以在C++STL内实现,所以做实验的时候禁用STL(要是给用那还用做实验?)。所以经过这个学期最大的收获可能是链表运用的十分熟练(bushi
老师讲课讲的不错,会在课堂上演示数据结构、算法是如何实现的,对于理解有很大帮助。
鉴于助教作业分给的过分低了(作业按照考试来改)导致卡绩点,故给这门课送上助教给过我最低的作业分。
复习的时候一定要看一下往年题,熟悉一下题型,还有就是最后最好用教材复习,其他书有时候术语不统一,本人就吃了大亏🤕
养生班,有一次点名没到,考前看作业题速成,不过最后还能有3.7,优秀率38%