我在逛知乎的时候看到一个问题:
随手写了个回答,没想到很多读者都表示说出了心声,所以也同步发到公众号。
以下是原回答
我自己是 CS 科班的,读者里也有很多各大高校计算机的同学,覆盖了上交、北邮、南邮、华科、川大、普通一本等等,根据他们反馈,总结了以下几点:
上课耽误学习,不上课考勤扣分,拿不了高绩点,耽误保研出国。不多说,懂的都懂哈哈。
课程设置不合理,实验课多,作业多,并且大多是写 Word 报告,实验报告就像这种(迪杰克斯拉算法):
占了很多时间,但是效果却不如自学,上课基本是放 PPT,考试内容全在 PPT 上,看书的同学没有背 PPT 的分数考得高,没有人愿意去啃那些大厚书,因为“性价比”太低。
都 2021年了,估计没有几个学校提交代码是用 Git、Gitlab 这些工具吧,评分也没有搞自动化测试。做悉大、MIT这些学校的 labs,都是直接去网站提交代码,跑 test case,马上就能知道哪些 case 没有过,再去 debug。
教材大部分使用自己编的,水平如何就不多说了,懂的都懂。很多书上还是用 VC 6.0 来写的 C,为什么不换用更加优秀经典的教材呢?
顺便贴一个匿名回答:
不过值得表扬的是,我们学校教材基本都是使用全英文黑皮书,比如《计算机网络:自顶向下》、《深入理解计算机系统》等,这样的学校我知道有 15 所以上,希望会越来越多~
对于计算机的学生,最好的资料和书籍是美帝那边的,因为计算机就是发源自美帝。
讲课全程 PPT,放 PPT 就算了吧,很多 PPT 还是十几年都没更新那种(C语言 PPT 上用的还是 VC6.0....),什么 C 语言 main 函数返回值 void。
我看过的一门非常经典课程,MIT CS107,讲师全程几乎都是黑板粉笔板书,学生跟着老师思路学习,这才是最高效的,而且各自手写代码、手画栈帧、手写汇编:
CS107
在我大学期间,只有一位数学老师坚持板书,大部分基本就是放 PPT 了事,下面的学生纷纷拿起手机拍照,或者直接下课去拷 PPT,这样能学到多少呢?
代码量太少,很多同学到毕业估计几万行都没写到,但是真正想锻炼出极强的编程能力没有 10w+ 很难,这方面作为学生我们也要多反思,为什么平时没有写到这么多代码。
很多学校就是孤立的学了一堆 操作系统、计组、体系结构、编译原理、C、汇编,但是很少有同学能把这些课程连起来形成 CS 体系,这方面 CMU 的神书神课《CSAPP》又要提下了,幸好我们学校开设了系统编程的课程,教材就是 CSAPP,其它没有开设这门课的学校建议学弟学妹们自学。
课程设置杂乱,学了一堆的数电、模电、大学物理..... 想起大一被大物实验支配的恐惧,时间都费在这些上面了,说实话把这些课程压缩,上一些函数式编程、或者比较前沿的 CS 方向,我觉得对计算机专业更好!
核心课程上的太晚!我们学校大二下、大三才开始计网、操作系统、数据库原理等核心课程,太晚了,这些课程至少要在大三前完成,大三再开设图形学、编译原理等进阶课程,大四直接就是实践课程为主或者让同学们自己出去找实习!
我个人觉得大概这样设置CS课程更为合理:大一上:C/C++程序设计、高数1(初等微积分)、离散数学
大一下:数字逻辑、数据结构、汇编语言、面向对象编程(Java/C++)、高数2 、线性代数
大二上:软件工程、数据库、Java/Python Web开发、组成原理
大二下:操作系统、计算机网络、系统级编程(CSAPP)
大三:软件测试、软件安全、课程设计、密码学、图形学等选修方向
大四:实践、毕设、实习
另外,还有最大的问题就是OS、网络、数据库等 CS 核心课程上成了文科!缺乏一些动手实践 Lab,大部分都是写实验报告,就是不写代码。
为什么美帝在数据库、操作系统、各种工业软件工程能力如此强悍?
我觉得和他们 CS 强校的教育模式有关。
国外,尤其是美国,很多高校 CS 教育极其注重实践,国内也就清北复交浙等少数 TOP 学校有少量的实践教学,其它大部分是念 PPT,课后作业就是做 Word 项目。
因为很多老师自己也不会编程.... 更没法设计那些硬核的实验和辅助教学平台,不会编程的人教你编程......这结果能好么。
就拿我自己来说,学校好歹也是个 985 吧,我上了三周的 Java 课,愣是没听懂在讲啥,最后看了几个尚学堂高琪的视频几天就入门了....
文章来源:《大学教育》 网址: http://www.dxjyzz.cn/zonghexinwen/2021/0611/1845.html