2026年06月19日

声明:本人对授课老师的教学态度和教学水平没有任何意见,仅对课程本身的内容设置做一定思考和点评。

复习了前四章,还有八章没有复习,但已经没什么动力继续了……为什么这么说?因为这门课的内容,实在是太多了!

如你所见,这是一门数据库相关的课程,总共有十二章,几乎每一章的 PPT 页数都超过 100 页,最多的应该能有 200 多页。老师在课上不止一次说过,希望能给同学们带来数据库的全面了解,并且这些 PPT 也是用心做的,老师自己配了很多图,帮助大家理解;甚至,听到有同学在座谈会上反馈 PPT 内容太多之后,老师似乎还有点委屈。

课件内容丰富,老师上课态度认真,这本应该是好事,但从大家的学习体验来说,这确实不是一件好事,为什么?这个问题的答案是另一个问题:这门课,到底想教会我们什么?

我个人会笼统地将这门课的内容分成四个部分:

  1. 数学知识,比如关系代数,以及相关的集合论知识
  2. SQL 语言与数据库编程的各种语法细节
  3. 数据库系统设计的相关内容
  4. 在每个主线内容之外,其他一些偏“背诵”性质的内容

所以,老师大概试图教会我们下面这些内容:

  1. 数据库的底层数学原理是什么?怎么从数学的角度去理解数据库?怎么证明数据库的正确性?
  2. SQL 编程里面的增删改查的各种细节语法。
  3. 如何从零开始设计一个数据库系统?数据库系统是怎么做存储管理、查询优化、并发控制的?

老话说,样样通,样样松。但老师不愿意我们这样,所以确实在每一个部分都讲解了大量的内容。可这样做,无疑加大了学生的学习负担。而且,老师所讲解的大量内容,并不一定就是学生需要的,更多的是在主线之外,所增加的需要“背诵”的内容。比如,我们真的有必要像了解 SQL 编程的那么多语法细节吗?真的需要花这么多页 PPT,一个语法一个语法讲解过去吗?就算为了考试,一时能记下来,过后必然也会忘记,那么学习这些的意义是什么?

就我个人经验而言,这样“大水漫灌”的授课方式,让我很难听进去课,我尝试听过几节课,但很快就放弃。而且,就我个人观察,每节课真的在认真听课的同学,通常不超过三个。我想,主要是我不知道这门课到底想要教会我们什么:好像什么都想教会,但最后却什么都教不会,最后留下的,只有考前一页页过 PPT 时,那种无奈和暗暗的愤懑。

我学习过 CMU 的数据库课程,同样是量大管饱,但那门课确实能做到有一条明确的主线,就是如何动手实践,编程设计一个数据库内核,学以致用。相比之下,IEEE-CS 的这门《数据库技术》,还是差了点意思。

诚然,老师授课态度确实很认真,但老师更像是一位高中老师,其所反复强调的,无非“上课是否认真听”以及“考试会不会做题”。而事实上,对于一个大三下的学生,这两件事情早就已经无足轻重了。有想学的内容,如果学校不教,那么大家会自己去学。而如果一门课并不是自己所希望学习的,也并不能学到太多深刻的东西,同时负担还很大,只是为了“通过考试,拿一个还不错的分数”的话,那么我想不到同学们会有什么学习的热情,也无怪乎大家不喜欢这门课程了。