lj2687480 发表于 2023-10-4 06:58:35

为什么大学不教 JavaScript ?

为什么大学都不怎么教 js 啊,只教一点点,发了本 JavaScript + jQuery 却不教,要我们自学

zhuixun11 发表于 2023-10-4 06:59:13

教学理念和教学内容的落后是国内计算机专业的通病

国内大学计算机专业普遍比较轻视编程,所以不会教,很多人误以为计算机专业就应该教科学而不是技术,只教技术这是技校和培训班要做的事情,其实并非如此。
编程语言的范式、面向对象、设计模式等都是需要建立在编程语言和编程语言生态之上的,而数据库、计算机网络、数据结构、操作系统这些计算机科学知识的教学如果脱离编程语言,只会让教学变得枯燥,会让知识停留在PPT的讲解上。因此非常推荐计算机专业用Python来入门(Python全栈开发也会学会JavaScript),Python作为入门编程语言,有太多优势是C语言不具备的。
那有人说了,教C、C++、Java不就可以了么?现在大部分的应用都已经是前后端分离,如果不学习了解JavaScript或其他前端解决方案(JavaScript是最优推荐),是很难让学生了解到一个完整项目的。
但是你们学校发的教材居然还有jQuery,教也是应该去教React和Vue这种贴合企业实际发展需求的技术啊,说明学校教学内容很落后了。
国内不少计算机院校的老师都没有企业生产实践的开发经验,更何况前端更新十分频繁,也让学校师资十分贫乏,如果让这些老师去教JavaScript,可能教的都是几年前的老古董。
JavaScript是非常适合入门的教学语言,国外很多知名院校都有开设相关课程

尽管如此说,相信仍然会有不少资深程序员对JavaScript教学嗤之以鼻,我们来看一下国外其他顶级名校是怎么做的,以及他们的教学内容。
比如斯坦福大学在2022年春季学期的CS142这门课里就专门教Web全栈开发,教学内容如下:

http://pic1.zhimg.com/v2-2e21c65549614873f2768b676444da63_r.jpg?source=1940ef5c
教学内容包括JavaScript的前后端,比如时下比较流行的前端框架React、后端Nodejs以及Express,非关系型数据库MongoDB。
类似的还有MIT的6.148,当然这些课程并非必修课程,是诸多全栈开发方向的选秀方向之一,在国外计算机名校都有一个共同的特点,那就是:
学生在大一阶段,就应该掌握全栈开发

因此,你会发现国外那些顶级的计算机名校,不仅会教JavaScript,还会教Python、Java、教Swift、安卓等开发,其教学内容就是让学生开发出一个完整的应用项目。比如以下是MIT关于全栈开发的一些课程:

http://pic1.zhimg.com/v2-1f1712a977416e2be19a354f15b9aea0_r.jpg?source=1940ef5c
应用类的开发通常来说是比较容易的,先从编程实践来教学,让学生能够切身了解计算机科学知识,再来学习枯燥的理论,这种循序渐进的方式更加可取,而不应该是“先难后易”。

123sdf123sd 发表于 2023-10-4 06:59:32

http://picx.zhimg.com/v2-50302c85ac150d206370b6d5a6a2f43a_r.jpg?source=1940ef5c

又没电了 发表于 2023-10-4 07:00:07

不教,你应该庆幸,它给你了一些自由,让你主动去学习掌握JavaScript的知识,然后自己去写一些有用的东西。
否则,按照中国大部分高校的尿性,它们很可能用下图所示的东西出题,那才会让你欲哭无泪。

http://pic1.zhimg.com/v2-ee086f2d2cb358e3367b32af839849b0_r.jpg?source=1940ef5c

ggm 发表于 2023-10-4 07:00:31

我们学校是加拿大本科一个一般的学校
这学期上了门叫智能信息系统的课,编程语言是JavaScript,学完这门课我对前端后端开发都有了全新的认识。我来讲讲这学期都学了什么。
第0周:老师给了很多的链接,基本上是自学nodejs,express还有前端。

第1周: 这学期学的是RESTFUL API,
做了一个很小的电影票系统,实现了基本的get 和 post request 。get 用来前端发送查询电影数据,并且返回内容到前端。post就是添加一个新的电影票。后端是用express.js 写的,前端就是用了一点ajax。前端随便糊弄了一下。
第二周:讲了nosql,用了mongodb,使用了mongoose库。我学会了如何使用nosql数据库。学了async函数的意义(ppt 就六页)老师基本上就是介绍下概念,跑了点sample就结束了,基本上还是自学。
async function - JavaScript | MDN (mozilla.org)

这星期实验是把前端的数据送到后端,然后Data consistency(数据持久化)
第三周:这星期讲了爬虫,讲了pagerank就是搜索引擎对于每个页面的排序,讲了内链和外链的区别。还需要看好几封论文(我嫌多没怎么仔细看,然后找了个清华大学的公开课看的哈哈),讲了Cheerio.js 和 Crawler.js。
pagerank基本上就是比如你在这个网页上停留或者你跳到某一个网页的可能性~
这个pagerank有个弊端就是,当你作为内链的数量越来愈高时,你的权重也就越高。比如某些大网站收录了你的网站,那么这个算法就认为你的比较厉害,然后你的pagerank数值就会变得更高。
据说谷歌已经不再使用pagerank 这个算法了

Effective page refresh policies for Web crawlers | ACM Transactions on Database Systems
208.dvi (najork.org)
ml-matrix - npm (npmjs.com)
prpaperdraft.dvi (stanford.edu)
这周主要时间是学习了pagerank的公式,反复看老师的例子。最后也写出来了。
Pagerank Explained Correctly with Examples (wmich.edu)
第四周: 讲了倒排索引,讲了搜索问题,然后学了elasticlunr.js 库。
自己利用倒排索引完成了elastic search
这周主要学了如何使用nosql,进行自定义搜索。并且将数据返回到前端正确的显示出来。
PageRank传奇-数据挖掘:理论与算法 清华大学(袁博)-EEWORLD大学堂
虽然没考上清华,但我也从清华大学学到了不少知识~哈哈

大作业就是用前五周的东西合在一起做一个自己的小项目。我选择做了个类似于豆瓣的网站。
爬虫这部分觉得比较坑,因为老师不让直接通过api来获取数据,所以只能通过解析网页的html来一个个爬,但是吧,你如果频率太高了会被refuse,但是我当时吧没意识到这个问题,因为老师说需要1000条数据,所以我当时就一直重复爬,但都没有达到我想要的数据,最后我发现每爬一条歇一分钟,这样可以爬到800条。最后800条我终于受不了就停止了。
这个app可以通过名字检索到电影,也可以搜索相关的搜索电影评分,然后每个网站都有统计出来他们的内链和外部链接,然后运用公式算出他们的pagerank值,然后进行排序。
虽然在国外读书,但我获取消息的第一途径还是中文,只有当中文没有我觉得有用的知识我才会看英文文献,文档啥的。虽然习惯不太好,但是没办法。


学期的第二部分学了推荐算法,主要是看论文,读懂公式,并且把公式翻译成JavaScript语言。其实写代码只是这门课很小的一部分,主要就是理解公式
Resolving Cold Start Problem Using User Demographics and Machine Learning Techniques for Movie Recommender Systems (sjsu.edu)

http://pic1.zhimg.com/v2-be3d443ac1bfa5d969eee03361694dc8_r.jpg?source=1940ef5c

经过一学期的努力我终于学完了这门课,最后拿了a+也还是比较满意的,但是这门课真的让我觉得计算机的天花板根本就不是编程语言,而是你的数学能力。
我拿到的学位也是计算机科学与技术(Bachelor of Computer Science) 。这是一门的必修课,cs专业的选修课。
我感觉本科教学大家每个学校都差不多,重要的还是自学能力吧~
学校也开设了各种不同的课,计算机视觉,神经网络,机器学习,人工智能,分布式计算 这种顾这些课程
我选了神经网络和计算机视觉但发现没有那么喜欢这种比较侧重理论的课程。而且这种课对你的数学能力要求还比较高。

这些课吧都是偏理论知识多一点,(我不喜欢a * search,也不喜欢贪心算法,也不喜欢强化学习也不喜欢动态规划哈哈)而我更享受代码成功运行起来的那种感觉,所以我选了这门课还有多线程编程。
结论:
你是不是发现上面的知识大多数和JavaScript这个语言没有什么特别大的关系,就是你可以能拿JavaScript 写的东西,也能拿python 写出来。除了call-back 方法比较有特点,其他的大部分功能在其他的语言也都有体现。(我最近疯狂痴迷typescript)
我觉得作为一个科班学生,学一门新的语言,应该速度还是蛮快的,大概的语法啥的一两天就能看的差不多了。所以之前课上scheme和prolog觉得还是很受用。


对于我本人来说最有益的一门课是 Programming Paradigm(编程范型)这门课,讲了lisp和prolog。这门课算是改变了我思考编程的方式。哈哈
说了这么多最后还不是StackOverflow(狗头
有人非要说我是大专,水校,啥的我听了真的很不爽啊,我一开始已经说过了我不是麦吉尔,UBC,多伦多大学的本科CS,只是一所中等学校的的CS项目。诚然我的学校不是什么好学校,但我挺喜欢的。


408 的四门考试我们只学了操作系统,数据结构和计算机网络,
计算机网络课程就是和中国科学技术大学 华 蓓 (ustc.edu.cn) 教授讲的一样,只不过我们用英文教课罢了。
操作系统讲了:资源管理,抽象化 ,文件系统, inter-process communication and concurrency, kernel modules, 内存管理, containerization and virtualization(讲了docker啥的)还有一些安全相关的。
感觉和mit的这门操作系统有点相似6.S081 / Fall 2020 (mit.edu)
数据结构是一门大二的课:

http://picx.zhimg.com/50/v2-dc1d4395e12c02755f2d870f0380c76a_720w.jpg?source=1940ef5c
计算机组成原理感觉有点偏向ECE,我们科系比较math-oriented,所以没有学这门课。
在某种程度,你的学习能力可能很能反映你日后的工程能力。

xianwlg 发表于 2023-10-4 07:00:56

计算机专业?专门开这门课的话会不会被当成水课?
页: [1]
查看完整版本: 为什么大学不教 JavaScript ?