| 选课类别:专业任务 | 教学语言:英文 |
| 课程类别:专业基础课 | 开课单位:计算机科学与工程系 |
| 课程层次:本科 | 获得学分:3.0 |
我趣,我本来想给这门课2~3分的,因为我的点评一贯相当宽容,就连高玉林的习概我都给了4分,毕竟人家给分确实不错。
但现在来看,我不给1分真是不礼貌了,我不能破坏这整齐的阵型。老规矩,好的坏的有的没的都提一嘴。不过既然同学们已经详细讲了很多坏的方面了,我这边就着重讲讲这门课程中,一些比较抽象的传世经典吧。
+这是我能想到的唯一的加分项了,就是这门课的PPT好歹涵盖了所有有效与无效的内容,纯自学下来,期末考的东西你确实能意识到基本都是PPT上有过的。
-不过啊,有印象PPT上涉及了这个内容是一回事,你当时看PPT能不能意识到这是个考点,进而有没有特意复习过就是另一回事了。本课程有着数千页的PPT,中间包含了大量的垃圾内容,意义不明的内容,以及无法想象会怎么出题的内容。真正的考点混于其中,难以分辨。
-那么问题来了,不自学行不行呢?答案是基本不行。因为王中秋老师是真的不会讲课啊。全程念PPT,念完一张念下一张。本学期因为有国际生所以王老师全程英文授课,他在英语口语捉急的同时又语速偏快,基本上根本听不明白在说什么。顺带一提,老师在讲课时是真的很紧张,你可以看到老师的下半身在上课时拧作一团金鸡独立,一独立就跟石化了一样能僵住五十分钟纹丝不动。
-作业部分,一共有三次oj作业和两个project,说真的,oj作业难度偏低,project作业本身也不难,但是架不住题目描述中,存在不清晰,不明所以,乃至错误的描述,这就让我们写作业的进程寸步难行。以下是经典样例:
我们期中project,要做一个论文网站的数据库,题目描述中经常有这么一句话,“XX数据项可能不存在”,于是我询问老师,“没有说‘可能不存在’的数据项是不是就一定存在?”,老师给了我肯定的回复,于是我开始稳步推进project进程,然后这时候,我发现了一篇论文没有“作者”的数据,而“作者”这个数据项应该是铁存在的,因为没说“作者可能不存在”。于是我又去问老师:“到底是题目描述出了问题还是题目数据出了问题?”老师:“题目数据出了问题,我们马上改。”我:“那还有没有别的地方也可能存在这样的问题啊?”老师:“不知道呢~”
就是这么难绷,数据库project的题目描述就是,每一句话都可能是屁话,教学组自己都不知道还有没有没测出来的bug。然后只能靠学生测bug,发现了bug就去问老师,老师就改题目文件,那么问题来了,题目文件都改了,你这边需不需要部分推倒重来?你推倒重来了,ddl却还是那个时间,这就让本来就紧张的时间安排雪上加霜。
-好吧,既然作业和课上内容这么难绷,那我课后多问问老师,这总行了吧?答案还是不行。双王组合(王中秋+王维语)都是课外几乎找不到人的那种,office hour找王维语,结果她办公室门是锁的,发QQ消息他们也是延迟超久才会回复,那么联系手段就只剩下发邮件了。好消息:发邮件倒是会及时回。坏消息:回复邮件跟个入机一样。这又是一个经典案例:我有次发邮件问王维语老师一些有关第一次project的问题,我一封邮件问了三个问题,她很快回复了,但是只回答了第一个问题;我又回复她的回复,把剩下两个问题又问了一遍,她还是挺快就回复了,然后又只回答了这两个问题中的第一个问题…纯入机,一次只能处理一行指令的那种,令人抓狂。
-考前复习环节,又是令人忍俊不禁。正如前文所述,PPT内容多如牛毛,考点极不明确,于是大家就在群里问期末题型,然后一群人刷“同问”,结果老师半天都不回,最后同学们着急了@老师,王维语老师终于回复了,原文如下:“啊?不知道啊…问,就是全看呗,聪明的亲们你们已经知道我们的套路了”
知道个锤子啊!于是同学们又开始刷:“啊?不知道啊”然后王维语老师又出面了,但是她这时候说啥呢,她不回答我们关于题型的问题,她给我们讲了个笑话,原文如下:“讲个段子给你们解解闷儿…你和虾和蚌一起因为考试答案雷同被抓了,老师严肃地问你们到底怎么回事儿?虾说:‘我…我抄蚌(棒)的’…老师听后望向你,说‘那你怎么回事儿?’你:‘数据库考试可以带一页A4,正反面,手写cheating paper啊’”
纯入机,完全不知道为什么这个时候要讲一个笑话,哪怕就从讲笑话的角度,这一段除了谐音梗以外的地方也是不知所云,每一句话都万泉部诗人。
最后,王中秋老师都绷不住了,他来下场回答同学们关于题型的问题,原文如下:“题型是有 单选题 多选题 大题 可能也会有填空题”说白了这不就是废话吗…后面又有同学问:“考试需要用英文回答吗?实在写不出英文可以用中文吗?”这一回王中秋老师倒是给出了明确的回复,但是这回复同样令人抓狂:“请用英文作答,中文作答我们不会评分”规则是死的,然后,双王组合于是就死死地盯着“英文授课”这一条了。
参考一下隔壁DSAA唐博老师的类似回复吧。问:“期末考试可以用中文作答吗?”答:“我就这么说吧,你别为难你自己,也别为难改卷老师,ok?”(意思就是想用中文随便用)
-考试环节,所有难绷的集大成之时。我只能说,我很少会用“浩如烟海”来形容一场考试的题量。数据库期末考一共有8个part,除了part1 part2是单选,多选题,一共21题以外,其它的part每个part都是一道大题起步,每道大题又是三个小问起步,每个小问都要写过程,写代码,甚至可能会需要你画图。然后一道这样的小问的分值基本都在2~4分左右,这样的小问有几十道…做不完,根本做不完。
-最后,一定注意!这门课程虽然看着不会想到它会涉及java,但是本课程对java的要求不低,两次project都有很大一部分要求只能用java来写。不会java的人千万不要选!或许你会问,计算机系哪来的不会java的人?计算机系的人倒是都会java,但是据我所知,这门课也是某些其它非计系的专业的选修课,我是真的碰到了不会java的选了这门课的人。不会java的人千万不要选!选了害人害己!
总结:双王组合的数据库不一定代表了妮可所有课程组中的最差水平,但一定体现出了妮可所有课程组中最令人抓狂的水平。
沟槽的数据库。
二编:总评出来了,给分意外的相当不错,我估计是调了分的,但是具体调分手段未知。
啊但是,给分再好,都不影响大小王组合的这门课学起来是真的沟沟又槽槽。
前辈们用血泪打下 1.5 分的江山,我辈当义不容辞地接过前辈的接力棒,为缔造我们nike自己的三国杀添砖java。
----
开篇劝退:不是必修课的不建议选,没学过 Java 千万别选。外系的不要看到 数 据 库 三个大字就无脑选,学数据库不一定要选这门课,数据库从上手到做业务都是可以自学的,而且 Python 也能连数据库也有相对成熟的数据库生态,不要强迫自己赤石。
总评:上课体验极差,收获几乎没有,考试根本写不完
下面开始细数这门课的问题,从轻到重依次排列:
没错,我认为这是最轻的问题,课程之间没有任何逻辑上的接续。梦到什么上什么,上到什么讲什么,讲课混乱且毫无吸引力。坚持不了 10 分钟就会睡着。
一门课程,三套体系,互不干扰,这放在哪一门课上都是致命缺陷,但在数据库这里只是相对较轻的问题。
我先讲解一下这三套体系,究竟互不干扰在哪里:
首先是教学,以中秋哥上课的催眠英文为主,主要从数据库的设计理论角度谈数据库到底该“做什么”的问题,但是对具体怎么实现只是轻描淡写地带过。这一部分是纯粹的“老学究”,会教你一堆杂乱而臃肿的理论,其实说白了就是教你怎么写“回”的四种写法。对指导实践有用吗?有用,有那么一点点,不多。
然后是实践,走的是和理论课完全不同的一条路子,project 1 会让你从零开始手搓一个完整的项目。布什各门你知道你带的学生只上过 Java A,管理组织项目的能力都不成熟吗?然后你也不教数据库该怎么连接,项目怎么组织逻辑更清晰,怎么才能优化,把问题丢给我们,就能期待着我们能手搓一个火箭出来?project 2 更是烟斗不带烟了,Spring Boot 都干出来了,那么我请问了,我们什么时候学的这一套工具生态呢?课下自学的,而且2,3周之内掌握并熟练,期间还要与一个数字逻辑的 project 夹击形成四面楚歌之势,那种绝望只有经历过的人懂。
考核?直到发到卷子的那一刻我才明白他们想考什么,他们想让我掌握什么。啊,原来是 SQL 该怎么读啊……
前面两个忍忍就过去了,从这里开始我就真的忍不了了。
project 2 的高级任务需要答辩,但别以为这个答辩有多正式,wwy 一直在催着你赶紧展示下一个,然后你说一个功能点她就在文档上面写几下,你做了什么?做得如何?怎么实现的?统统不关心!我只要你告诉我做了啥,然后我把你分加上,就够了。
她尊重我的劳动成果了吗?她对得起我的努力吗?这一周中不断调试代码,再到上线到服务器需要解决的一系列问题,换来的是你这样的态度吗?
她的态度,让我有一种强烈的戏谑感:“逗你玩的,其实做个壳子也能拿分的。”
如果说前面的问题都是靠自己的努力能解决的,那么问题就直接杀死比赛了,因为你努力越多,失望越大。
我不知道这门课的教学团队有没有亲手写过他们自己布置的 project,我觉得大概率是没有的。
最勾式的一集。前面的问题还停留再课程本身的层面,而这个问题让我开始怀疑这门课有没有开的必要了。
众所周知作业是计入总评的,所以我们都希望作业能拿高一点的分,考试的压力会小一点。
前两次作业,题面中英文说法不一致,没错,同一道题,两个表述,最后的评价是:都对?还有那种,题目输出的示意图,居然还能给错。啊?不是,作业答案都不明白的?那你让我做作业我怎么知道你给我改的对还是不对?一处两处,我认为是 typo 改过来就好,几乎每题都有,那这压根就不是教书育人的态度。
第四次作业经过同学提醒还中途改答案了,只是早就习惯了所以懒得喷了。
真实性明明是一个课程的权威象征,是我相信“这门课是一个公立大学里面正式开设的课程,而不是北大青鸟开的培训班”的根基,但是如果你连这样的权威都树立不起来,我只能说这门课和小孩子过家家也没什么区别,那成绩也跟小孩子不懂事瞎填的也没什么区别。
我认为这是最底线的问题,但是数据库原理还是让我大开眼界。
虽然我狂喷这门课,但终究还是不会动摇这门课作为计算机必修课的地位(而且据说 myx 不教数据库了,以后就只有这一个班了),作为已经一门沉淀了两年的勾式课,我来谈一谈后来者该如何应对。
首先就是摆正心态,把这门课当成水课,上课该干啥干啥,不要强迫自己听课,临考前突击就行,考差了也别责怪自己,要怪只能怪运气不好没抄到。project 点到为止,这门课对不起你的努力。
然后就是做好 cheating paper,考试喜欢考偏难怪的知识点,所以 cp 要仔细做,多抄一点绝对是有用的,虽然作用不大。
利用好网络资源和 AI 工具也能事半功倍,现在的大模型已经相当成熟了,强大的总结能力能代替很多无效的阅读。PostgreSQL的开发者文档、CSDN、知乎等网络社群都是非常好的自学渠道,能解决很多疑难杂症。
最后就是,学到真本事比什么都重要,趁早放下学校那套臃肿的体系,从实践和需求的角度思考才是更符合现实的数据库学习方式。
趁着我刚考完讲一下这门课(理论课)的逻辑脉络,课件实在讲得太混乱了,所以复习前可以看一看避免自己被课件绕进去:
首先我们搞明白几个核心问题:为什么要发明数据库?为什么要发明 SQL 语言?数据库该怎么设计更好?数据库怎么把性能压榨到极致?怎么实现并发?
20世纪以来人类经历了一波数据爆炸式增长,人们对怎么高效存储、组织和查询数据产生了新的疑惑,数据库应运而生。我们希望数据库能高效管理和查询数据,首先,我们需要建模现实世界的数据,比如一个人就职于哪家公司,他的身高体重是多少……有一些是自身属性,有一些需要和别的实体产生交互,那么如何建模呢?经过了历史的大浪淘沙,我们现在主要使用关系-实体的方法建模,实体和关系都拥有自己的属性,然后将这些关于属性的具体数据存储到关系型数据库中。但是,这种建模,一定非关系不可吗?(也就是说数据库必须是这种表状的吗?)不一定,详情可以看NoSQL。所以我们要知道,关系型数据库是时代的产物,未来有可能会随着需求增加和技术迭代诞生新的范式,这其实也是我们为什么要在现在学习它的原因。
然后有了数据库,问题来了,怎么用?这就引入了 SQL,它是和数据库交互的语言,让人人都能操作数据库。SQL语言是一种声明式的语言,声明式的意思就是像萨满巫师那样说出秘密咒语然后 DBMS (数据库管理系统) 就会“神奇”地回应你的需求,而不像 Java 和 C++ 等过程式语言,我需要精准告诉机器下一步应该做什么。声明式虽然不自由,但好学,我们可以像说英语一样写 SQL,这就让没有编程基础的人也能轻松上手数据库。所以写 SQL 的思维不要像写 Java 那样去思考怎么一步步实现,而是应该思考:我的需求是什么,我要怎么把需求分解并翻译成 SQL 让数据库听懂我的需求。当然 SQL 不止查询这么简单,还有基于逻辑封装需求和兼顾过程式的扩展性而引入了函数、触发器、视图等概念。
数据库有了,我也会操作了,但是用着用着发现我存了很多多余的数据,比如考虑一个表,存了学号,选课和任课教师,这时我发现如果很多人选了同一门课,就会有大量的记录重复出现:
| 学号 | 选课 | 任课教师 |
| 1241aaaa | CS307 | 王中秋 |
| 1241bbbb | CS307 | 王中秋 |
| 1241cccc | CS307 | 王中秋 |
| 1241dddd | CS203 | 唐博 |
这时,我灵光一闪,诶🤓👆要不我再存一个表吧,只存课程和任课教师,这样中秋哥不就只用出场一次了吗。下次万一要查学号对应的任课教师,再 JOIN 回来不就好了?
| 选课 | 任课教师 |
| CS307 | 王中秋 |
| CS203 | 唐博 |
所以这就是为什么要引入数据库规范化减少数据的冗余存储,1NF,2NF,3NF,BCNF那些乱七八糟的理论都是为了解决这个问题。
我减少了冗余存储,但是我还是嫌不够,我一个业务要处理上百万条数据,数据库要是不够快客户都等不及要投诉我了。于是我们渴望继续压榨性能,可是哪里能压榨呢?前面我们说到了 SQL 只是说出咒语,怎么实现还是有优化空间的。比如好几个大表 JOIN 完再 SELECT,我就想:能不能先 SELECT,把要处理的数据量先压下去,再去执行昂贵的 JOIN 操作减少操作数的规模,诸如此类,就是关系代数优化解决的问题。软的做完了那就上硬的,我们直接深入硬盘,看看数据都是怎么存的,怎么给硬盘省点劲别让它花那么大力气去找数据读数据(不要觉得这省的少,硬盘读取速度在毫秒级别,和内存的纳秒级相差好几个数量级,这么做对大规模数据一定是划算的),聚簇索引,B+树那些乱七八糟的理论解决的是这样的问题。
最后就是,我的数据库要实现并发,支持很多人同时操作,但是同时我希望我的操作满足原子性、一致性、隔离性、持久性四个特性,毕竟数据库还掌管着很多极其重要的数据,比如你的微信余额,要是两个人同时转账发现两人总余额变少了,那找谁说理去?这就是事务以及事务隔离级别要解决的问题了。
当然,理论说了一大堆,实际上围绕数据库诞生的生态更是百花齐放,但这部分很遗憾课程不涉及,只能靠做 project 的时候自学。
我不是数据库高手,我只是千千万万个被双汇王中王祸害的苦命学生之一,希望这些拙见能给后人提供一些微不足道的帮助。
如果不选择2024秋王中秋老师的数据库原理,那么你只能在南科大度过一个相对失败的人生。
(叠甲:上文属反串,请勿当真)
作业我认为并无可喷之处,量不多的但其实还是比较能提高对于SQL的语法熟悉程度的。
那么接下来就是这门课的逆天之处了。
1.王中秋老师的lab课基本有 1/3 是一句话不说的,可能唯一说的话是“今天lab课的内容请大家看一下文档,自己实现一下。”所以如果有下次王中秋老师的lab,我希望大家关注王维语老师的lab谢谢喵。
2.Project1暂时不谈,其实还是能让你学到一些JDBC的内容的,给分我只能说说的过去,但是有卡满分的嫌疑(我身边有个人我个人认为所有Task都完成的很好,但最终因为E-R Diagram中漏说明了一些扣了15/110分的分,我个人觉得是比较说不过去的,因为E-R Diagram整个也才15分)
而Project2,在半个学期的学习过去后,依旧是几乎与 Project1 中相同的知识点需求。感觉仅仅只是Project1的一些很小的延申,或者说并没有让我学到什么东西。但并不是很想喷 Project2 本身的设置以及想法,而是想喷在Project2途中发生的事情。
(1)Project2中 Benchmark的部分描述比较不清晰,事实上许多问题都需要再度问助教才能确认。(这个其实其他课的 Project 也有这个问题,但是这里出现的问题数量有些多,并且能回答问题的助教疑似只有1位,等待回复是需要较长时间的)
(2)Bonus Task不给测试样例(第一是模块描述并不清晰,二是这个模块本身就会有一些令人疑惑的细节调试,这么一个模块不给样例我认为确实是毒瘤的)。
(3)数据导入模板文件有错误,在提前答辩程序上交DDL前6天才发布修改后的导入文件。懒得喷了,留点力气喷期末考试。
3.期末,个人认为十分毒瘤。首先列出本人的一些考试数据。工概期末 1h15min完成,分数94/100,数字逻辑期末1h20min完成,分数84/100,至少证明我是个做题不慢的人。而这张数据库卷子我做了1h55min,虽然我在期末周长期熬夜考试那天极度虚弱,但是我觉得正常状态的我写完也至少需要1h40min。整张卷子的构成为单选+填空共10题,多选10题,6道大题。其中选择填空多选均是2分一道,大题分值分布较为杂乱。6道大题中大概有3道是略属于正常,剩下题中1题 Normalization,写的字较多,但是似乎6道小问疑似一共10分?(记不太清,反正一个1~2分的题写一堆字)另外1题是给定一个数据库的Relation Schema,然后手写一些给定操作的关系代数以及SQL代码,印象中代码手写量大概是20行上下,只能说比较耗时。然后是最后一道答题,似乎是每届必吃的Databse Design,大概是给了4个Entity 4个Relation,第一题画出E-R图(8分),第二题写出每一个的Relation Schema(3分),第三题写出创建每一个表的SQL代码(4分),其中第三题我个人应该是手写了30行代码左右,但是这道题只值4分喵,你说分低我能理解,因为确实是无难度的复读,但是你写的也太多了吧喂。
4.Lecture:老师口音较为奇怪,并且由于国际生的存在,确确实实成为了全英,我只能说听的下去的都是神人了。不听?那我只能说你期末对着16个平均120页的PPT一张一张找考点吧,因为那6道大题中有2道一共大概22分的题,知识点一共在PPT中出现了可能6页。
我觉得没啥好说的,不选立避100%。
我草反转了,给分竟然意外的还行诶。但是我确实不推荐wzq老师的数据库!
我从来没觉得学习数据库原理开心过。
这门数据库原理,是折磨我整个学期的罪魁祸首。我想写这个评教很久了。考试结束当天,我熬夜写了非常长的评论,基本在痛斥这个课程的各个方面,以此来发泄期末周的疲惫和对课程的不满。但是,我感觉来这里看评教的同学应该不会想看到展现攻击性的文字,而是想获取一些上课的经验(i.e. 在数据库原理如何自救) 因此,我把之前写的内容全部删掉了,接下来也会(尽量)克制一点情绪化内容。
首先,不推荐其他专业的同学选!这门课是非常多带电工科的选修课,千万不要选这门课折磨自己。如果你铁了心想要选,请查看课程大纲,会发现大概只有前半学期1-7节的内容是在讲SQL相关,或许是你想听的;后半学期8-16节基本是在讲解“原理”的部分,在实际应用中重要程度不大,为什么不利用丰富网络资源自行摄取需要的知识呢?如果还是对这门低分课程非常好奇,坚持想要选下去,要确保自己对java有比较深的理解。两次project均需要使用java写比较多的代码,还会调jdbctemplate的库,使用gradle进行构建等,如果没写过java需要现学,只会为自己和队友带来不幸。
对于计算机系的同学,这门课作为专业基础课是不得不赤的。而且看现在的趋势,未来一段时间可能只有王中秋一位老师。
01/21update:没事翻看了一下25级计算机系培养方案,惊奇的发现数据库原理从必修课变成了选修课。这个改动让我有一种偏我来时不逢春的感觉。25级的同学你在那一个类别里学个数据挖掘,学个啥啥啥的不都比硬赤这数据库原理要香?要是为了不错的给分能够忍辱负重也可以选吧,其他情况就快跑!!!
(你系每年培养方案变动都还挺大的。而且我感觉25级的会更显合理一点,似乎压力也大一点。有理由相信你系正在一点点变好,还是要心存希望~)
关于课堂和期末考试。我在第一周开始就感觉不对劲:听不清的英语,令人犯困的腔调,不知所云的内容……坚持了一下下后,从第三周开始,我没有听一分钟理论课。而且基本也没有自己在课下看slides再学习一遍(这是一件不好的事情)。不听课完全不会产生任何负罪感,我曾经在某一节课观察了全班同学,发现全班约140人中在听课状态的不到10位,大家都听不下去那还说啥了。但是,啥都没学期末考试怎么办呢?16周的课上最后20分钟,王中秋老师快速过了一遍所有讲过的内容,我发现我完全不知道那些东西是什么:视图、函数依赖、闭包、索引……这些概念我仍然一无所知。因此,在期末考前的几天,每天需要看大量的ppt和查阅相关概念来应对考试。期末考试的难度大,题量非常多,速通起来很累。我的建议是:平时上课可以不听,但是每周都要把对应的slides好好看一遍,有一个初步的印象。否则期末复习起来压力巨大。期末考试就从头到尾猛猛写就好了,难度大但是会调分,把会的部分尽可能答上去分数不会差。而且,前半学期我觉得中秋哥的ppt做的逻辑没有那么顺,老是东说一点西说一点乱乱的,很多内容也是冗余的。最后期末复习的时候发现后面几章其实还做的挺好的,可以看下去喵。
关于作业和project。数据库的作业与其他专业课相比可以说几乎没有了。总共有5次作业,前2次是写10个SQL语句的题,对于初学者难度还是比较大的,同时很多语义并不明确,耗时较多。后三次作业水中水,在bb的test上做几个选择题。可能10分钟就可以完成吧!相较其他课程机械重复刷题,我甚至更愿意多做一点数据库的作业……因为作业太少导致学期中什么都没有学。或许可以自己让AI对于每节课的内容出一些题目巩固一下?两次project也是很坏啊,第一次是写报告,在期中周附近,涉及ER图绘制+relation schema设计+数据清洗与导入+与文件I/O还有MySQL等性能对比,想要完整实现难度比较大,并且开始做project的时候ER图和数据库设计都还没开始学,整个project做起来都乱乱的。最后由于进度问题整个project的ddl延期了两周,熬了个大夜写完报告,分数是99/110. 第二次project更是神秘,大概内容是ER图设计+实现接口+advance部分,其中接口的实现包括正确性和性能两个部分,占整个分数的大头。接口的描述由学助写在注释里面,但是存在许多细节问题和不清晰的地方,需要同学自行发现→在群里或github提issue→助教进行解释或者勘误,这个过程经历了许多次,使得整个开发周期延长,过程不顺畅。同时,在syllabus里写的project2的时间是10-14周,但是由于课程进度整体后移,最终12周后才发project,而ddl更是到了17周!神秘的进度导致考DSAA附近的晚上还在熬夜debug,对后续考试的影响还是有点大的。advance部分会有各种各样的探索性要求,我的建议是每个要求都可以尝试做一点,体现探索的工作量,比如我们做了网页GUI、高并发压力测试、索引优化算法优化等等,加上正确性和性能都不错,最后得了110+的分数。而且advance这一部分可以早点做,答辩的时间会比整个项目的ddl早几天,答辩主要就是展示advance部分,当场就给出分数了。(合理怀疑wwy老师的答辩不用做什么东西,只需要简单做一下,然后套个壳就可以……展示的时候故事讲清楚非常好混,好好实现了反而浪费期末复习时间有点吃力不讨好……太神秘了。课程项目一定要对能力提升有帮助 ✋😭✋ )
总结一下,大部分同学上课是完全听不进去的,不必因此焦虑。如果想要拿到一个好的分数,只需要每周花一些时间看一遍ppt,并AI出题目进行巩固,花一些时间精力做好project,并且在期末周好好复习就可以安然度过数据库原理了。在心态上,对于一些让你不爽的现象不要太放在心上,敷衍一点没有坏处!!!虽然这门课在上课体验和莫名其妙的课程结构依旧让人难受,且project和期末复习占用了大量精力,但是之前的同学描述的一些问题,如回复不及时、在课程群说莫名其妙的话这些已经有所改善。我们也有理由相信,以后的数据库原理会越来越好的(哽咽)。毕竟这是王中秋老师教数据库原理的第二年,还需要一些时间(?)
最后,在这里感谢project的队友!实在是太好了,做了非常多高质量的工作,我们分工很合理 沟通也很及时,虽然因为课程的原因不可避免熬夜了,但最终也做出了两个不错的project。在期末考试阶段还分享课件的笔记,以帮助我补天大业,感激不尽……有些不好的课你可能需要一个好的队友才可以坚持下去。
01/14 出分update
我大概一辈子都忘不了在25年秋天学习了数据库原理吧。
期末考普遍比较低,总评经过非常大的调整,最后大部分同学的分数都挺令人满意的,A和A+发的也挺多。但是这点雕虫小技就像获得原谅吗。我永远无法忘记听课的别扭、意义不明的项目、熬过的夜和期末预习的心理创伤。2分献给数据库原理。不行疑似有点中二了
欢迎想要深入交流的同学/没有被开头劝退还想学的同学联系我~
项目仓库
yunli2024/CS307_DATABASE_Project_1_25FALL
yunli2024/CS307_DATABASE_Project_2_25FALL
咱就是说中秋哥你要不赔我点钱吧,我真的无语了,我从来没有见过这么阴间的讲课和这么阴间的学习引导加上这么阴间的学习安排,就在没有足够前置知识准备的情况下,我都不知道这些作业和project怎么做,就对着屏幕瞠目结舌,然后心里就开骂了,我讲真的,我不知道这门课我学到了啥,我感觉如果学到了和他也没什么关系,首先我就不认为ppt上那些内容和他的讲课内容加起来足够支持你独立完成project,人家王琦老师课程有难度好歹提醒你课下要多花时间,拿到project才知道你教的知识不够用,最阴的是,把个project丢到期中周干扰复习?这个就不说了,那个作业的描述也是语焉不详,就是说有没有一种可能,我不可能通过表的名字就知道你的表里面装了什么,也不可能知道哪些数据有哪些意义,在语境里同时有火车站公交站地铁站的情况下给一个表命名为stations,嗯对我大概是有读心术的能知道表里面装了什么,谁说的2+2进系一定好了,1+3完全可以把这门课往后丢,但是2+2不行
等了两周多,终于出分了。给分调过了,在期末比较难的情况下给分还算可以,毕竟期末考完已经无限降低预期了(
但无论如何这门课似乎也算不上一门好课,抛开讲课的巨大问题不谈,这门课仍然有一些很离谱的问题,包括但不限于:
感觉问题就在于老师刚刚入职教学经验不足,某些研究生助教也是摆子哥,没有很好地发挥好作用,导致Project的质量太差,甚至完全是不知所云。
最后浪费一学期,学生学到的也不多,老师评教也不好看,这下全都输了
好就好在wwy老师虽然比较佛系,但是人还是比较好的,应该是尽力调分了,如果不调分真全完蛋了
(不想破坏阵型,还是打1分吧)
一节课没听,整个学期的课浓缩到考前,两个看完897张slides,只能说,给分好归好,讲得史中史。
学完之后,我只想说,作为一个大二的本科生,你不应该打开这门课程的任何信息,更不要搜索王中王组合的任何内容。
你可能会很疑惑,这评分怎么这么低啊,会不会是恶意刷评?
我很负责的告诉你,不是的,就是这么低,甚至还高了点,没有0.5分是评课的下限,不是这门课程的下限。
在这门课程里,你将会看到:
1、对着ppt念一节课的老师
2、模糊不清口音极重语速极快的英语,可能没有你高中的英语听力清晰
3、极为简单的作业,让你误以为自己学的很好
4、描述混乱,不给格式的pj和指1为2的评分标准
5、期末周的1000张ppt和不知考什么乱写一通结果一个也没考到的cheatingpaper
6、让你知道这是专业“核心”课的巨难期末考试
如果看到上述内容,你仍然可以接受的话,我建议你同学期多选点思政美育英语吧,不然绩点会出现山谷的。
趁着出分后,来写个评论,居然出乎意料地拿了个A+,问了问身边同学给分也都还可以。
但除了给分,这门课基本上就是地狱难度。首先,我没有一节课听懂中秋哥到底在讲什么,在第一节课,我尝试听了十分钟,发现什么也没有听懂,从此之后,我就放弃听课了,前半学期,讲基础SQL语法,可以看课件,到了后半学期,进入理论部分,课件也变得很难懂。没有办法,我就买了一本课本,课本写的确实不错,清晰易懂(课件全是抄的课本),靠着课本,我在理论课上自学了所有内容。
其次,这门课的重点有点太不突出了,甚至不如国内某些大学的数据库课程。比如后边的那些三范式的检查,转换之类的其实是比较重点的地方,但是讲课就一笔带过了。在考试前的时候,也没画重点,中秋哥说:“如果大家对所有的课件掌握地差不多了,考试应该就没有问题”(原话忘了,意思类似)。我考前一天在B站刷了很多速通数据库的视频,大家也可以去参考一下,有很多方法比书里的伪代码要简单,讲的也更清晰明了。
此外,这门课的规划与设计也有很大问题,project要的很多东西(例如proj1的ER图)在proj发布后好久才讲,只能自学。并且也缺少练习,前半学期还好,有oj(也有各种各样的问题,顺序不对不给过),后半学期基本上就没什么练习了,导致复习也没什么方向。至于proj,proj的重点应该落在proj1上,至少proj1的出题还比较完整。proj2的出题简直就是混乱,有一个pdf文档,居然还有一个readme.md,要实现的接口定义不清,问中秋哥,他也不知道,让去问wwy,wwy说他也不知道助教怎么设计的,给助教发消息,助教不回。运行benchmark,每道题就一个测试样例,bonus还没有测试样例,让人心里很慌。此外proj需要使用很多高级东西,proj1的jdbc还算有点关系,proj2要魔改用gradle管理的祖传代码,还要搞前端/后端设计,没有相关经验的同学可能需要非常痛苦地现学。
考试,考试确实难度不算太大,题型确实是选择填空和大题,问题是知识点很散且碎,几乎每一节课的PPT都被考了(注意,那个查找时间复杂度分析的计算也被考了,记得抄公式),前面一道题一问1-2分。这样个人感觉有利有弊,好处是一块不会不会被扣太多分数,但是坏处就是题量实在是太大了,并且手写语句(关系代数,SQL)需要写很长时间。我一直手没停快速写,还有15分钟的时候翻到最后一道题,居然是15分的ER图和数据库设计!一下给我整不会了。只能随缘画一画了事。
这门课实在是有一种草台班子的既视感,让人难以忘怀。下学期好像中秋哥也不教了,换成朱老师教了,没准能好一点。
中秋哥出卷疑似太极端了,一分一分的给,还有偏的离谱的考点。上课等于没上,复习全靠啃ppt,考完一拍脑袋发现一学期学的好像只有sql。
逆天,真逆天,快跑!
上课真的没法听,全英语念ppt口音奇怪,课件结构混乱,很多重叠很冗长,期末自学复习崩溃。上的是他本人的lab课,讲课时间不超过5分钟,来真的浪费生命。
期末考有很多毫无意义的很费时间的,上面已经说了,题量超级大,很多困难的小问只给1-2分。把送分题放在最后一题…..而且特别烦,毫无意义的要写好多。最后时间不够+答题卡也写不下了….
说实话除了proj里面学到了一些spring boot和jdbc,真心没有什么收获……真的是…..必修课看到他就跑吧
出分了。意外拿到A+,只能说感谢挑粪的大手。
作业是祖传的,中英不对译的,不如就别翻译了。
project1是完全无法依靠课上知识解决的。数据清洗的量是无穷大的。并且ddl就放在期中后面一点,想整死我们!?。
project2是学助整的,错漏百出,一直在修改接口定义和测试集,让我们自适应。
期末考就是让你将一千余页的ppt提炼在一张A4 CP上,听天由命,再次感谢挑粪的大手。
这期末试卷……实在难以评价
上课也听不下去,体验实在不好。
本来想给1分的,结果调分了!
这门课说实在是我上过的让我最无语的课,感觉主任务几乎没人听,lab我上的几乎不讲……
两个project, 第一project给分很无语,基本只看报告给分,估计都没有仔细看具体的成果,分数细则也不公开,报告被莫名奇妙的扣了不少分……结果告诉我们熬夜做的bonus只有1分。第二个project说的很迷糊,最后给分一般,也不知道具体的评分细则……
最后期末考有几道大题让我挺无语的,根本没有想到要考这些,以为绩点要B-往下走。不过最后调分了,两天突击的期末让我拿了个A
作为电子系老登大三选修上的,我的评价是,上课体验还蛮新奇的
首先这门课大课确实讲得十分难绷,老师全程英文,然而由于发音一直不清楚,所以基本上是看PPT。PPT条理还算清楚,但是不知为何每堂课的PPT前面会有大量的重复内容,而且老师讲课的时候也会重复,期末复习的时候需要把PPT前面全都裁剪一次。
wwy感觉人还行,虽然QQ找的时候回复速度常常不太快
两项project,感觉对于一个电子系老登来说压力蛮大的,都是写论文检索的系统,但是第一个是做简单的导入和CURD分析,第二个是优化且构建完整的用户管理系统(包括演示性质的能运行的前后端)。之前我学的C,这门课java的压力还是挺大的,简直写到脑子冒烟……尤其我自告奋勇要写project2的前后端代码,我的评价是写完感觉大脑得到了完整的升级。只能说,no pain no gain,而且如果很想学东西的话,可以尝试两门project负责稍微不同一些的部分。
感谢我靠谱的partner🙏两个人都不是计系的,写得很痛苦,但是得分还不错
顺便,要到了之前这门课的project报告,大体框架是祖传的,但是感觉这一届的完成度和工作量要比之前的大很多,真是卷出来的啊……
期末题量特别大,但是允许带cp。我的评价是,快使用微雕技术
总评最后调分到A,算是对得起之前proj和复习的时候在一丹熬的大夜
wzq老师的讲课水平我就不过多评价了,大家评价的也不少了,我就简单评价一下课程本身。
这门课程的教材是“数据库系统概念”(我看的中文版的),老师的PPT全程按着教材来的,包括例子也一模一样。总的来说,教材的逻辑非常清晰,主要介绍了关系语音、数据库设计与应用程序开发、数据管理实现技术三个部分,如果自己能把教材仔细看一遍,还是大有裨益的
这门课的assignment和project感觉主要集中在应用数据库上,做完之后,基本入门了如何应用数据库,写一个包含数据库的项目问题也不大了
期末考试有很大一部分有关数据库原理的,需要对函数依赖、关系数据库设计、磁盘Access time、索引、查询的代价与优化、事务的可串行化等等有一个基本的理解,要不期末考试一部分题会让你直接傻眼
第一次评教献给数据库。上课全程念PPT让人无聊想睡觉;project漏洞百出发布时间也晚,期末真不用说了,10几分没写一堆偏难考点,本来奔着计系课程质量高选的,真没想到会这样。。。