同步操作将从 forthespada/Awsome-Courses 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
“ MIT是所有理工科学子的圣殿,素以顶尖的工程学和计算机科学而著名。“
最初打算总结一份MIT的计算课程列表,没想到后来越看越多,MIT、CMU、PKU、THU....让你看到头秃...
👉 推荐:如果小伙伴访问Github仓库速度较慢,可以访问码云,我在码云上也放了一份,同步更新
仓库贡献指南
fork
按钮,将项目fork
到自己的Github账户里。git clone
将项目克隆到本地。git clone https://github.com/forthespada/Awsome-Courses.git
fork
的仓库。code .
git add .
git commit -m "What did you do?"
git push origin master
Pull request
学习计算机这么多年以来,慢慢的也收集到一些不错的学习资源,现在免费分享一下。
如果你挑花眼了,不知道该学哪个?
过来人推荐你去看看本页面的Crash Course Computer Science(计算机科学速成课)、哈佛大学的CS-50、MIT的 6.828 、MIT 的6.824以及清华大学的OS课程。
这5门课程对于大多数人都绝对受用!
其实国内也有很多优秀编程视频,以前阿秀就曾经总结过三期,今天一起分享出来吧!
第一期:点击直达
第二期:点击直达
第三期:点击直达
这门课有很多地方都适合小白,比如视频内容精炼但不冗余,该介绍到的都介绍到了,如果你担心这门课程过于简单,那你就大错特错了。
如果说唯一美中不足的点,那就是其中部分环节语速过快,对于大多数国人来说看起来比较吃力,建议英语不太好的同学看的时候调成0.75倍速去观看。
这门课并不会教你如何从0开始学会编程,而是通过不断的抽象从底层到上层进行讲解,从高层次上纵览一系列的计算机话题。
在这期间也会穿插着很多有意思的历史故事,比如在存储器的时候就会以算盘为楔子引入,告诉你算法大约出现在公元前2500年。
适当穿插历史故事,确保小白不会枯燥&中途放弃,当讲到计算机网络的时候,则是以动图的形式告诉你交换机上是如何工作的;
交换机是如何工作的
只能说看起来不是一般的爽,而是特别的很爽。
地址:https://www.bilibili.com/video/BV1EW411u7th?p=28&vd_source=3fc05c3b7f095e12a12ea9850e2e0a35
哈佛大学公开课:计算机科学cs50是经典的计算机入门课程,他还有一个广为人知的外号:计算机速成课。
只要是正常高中毕业的同学应该都能听懂,应该算是面向零基础的课程。
这门课一共20集,一天看一集也就只需要20天,这门课的内容包括基本的计算机知识以及基础算法,常见的编程语言等等,还会探讨最新的计算机科学领域的成果,课程发散性思维强。
多说一句,CS50课程的讲课形式让人耳目一新,真正做到了“快乐学习”。。
地址:https://open.163.com/newview/movie/courseintro?newurl=%2Fspecial%2Fopencourse%2Fcs50.html
该课程适合很少或根本没有编程经验的学生。它旨在让学生了解计算在解决问题方面可以发挥的作用,并帮助所有专业的学生都有理由相信他们有能力编写小程序并使他们能够完成有用的目标。
值得注意的是该课程使用 Python 3.5 编程语言。
课程地址:Structure and Interpretation of Computer Programs、 6.821 Programming Languages (Fall 2002)
SICP这门课以前在很长一段时间都是MIT入门的第一课,配套的教材SICP《计算机程序的构造和解释》也一直被认为是程序设计的经典著作,其中研究生课程MIT 6.821 的参考书也是这本书。
本课程提供面向计算机科学和工程的离散数学的交互式介绍。主题覆盖范围大致分为三部分:
基础课程大多是位本科生开设的。
本课程介绍了数字系统和计算机架构的设计。强调以高级硬件语言表达所有硬件设计并综合设计,主题包括组合电路和顺序电路、可编程硬件指令集抽象、单周期和管道处理器实现、多级内存层次结构、虚拟内存、异常和 I/O 以及并行系统。
地址:https://6004.mit.edu/web/spring20
本课程介绍了计算问题的数学建模。它涵盖了用于解决这些问题的常见算法,算法范例和数据结构。该课程强调算法与编程之间的关系,并介绍针对这些问题的基本性能指标和分析技术。
本课程介绍编程的基本概念。旨在培养将基本方法从编程语言应用于抽象问题的技能。主题包括编程和 Python 基础知识、计算概念、软件工程、算法技术、数据类型和递归。实验组件包括软件设计、施工和设计实施。
地址:https://py.mit.edu/spring20
课程地址:Computation Structures (Spring 2017)
课程地址:Software Construction (Spring 2016)
Java的基础课程,可以和6.031一起学习。
课程地址:Introduction to Algorithms (Fall 2011)
课程地址:Introduction to Inference(2014)
课程地址:Fundamentals of Programming
课程地址:Computer System Engineering (Spring 2018)
课程地址:Artificial Intelligence (Fall 2010)、Artificial Intelligence (Spring 2005)
课程地址:Probabilistic Systems Analysis and Applied Probability (Fall 2010)、Probabilistic Systems Analysis and Applied Probability (Fall 2013)
课程地址:Mathematics for Computer Science (Spring 2015)
进阶科目则是为了大三大四以及研一同学设立。
以下课程只需要选择两三门课来学习就可以了。
这门课主要学的是Java,没有参考书,课程链接有比较详细的线上教程;可以和6.005一起学习。
课程地址:6.033 Computer Systems Engineering (12)
课程地址:Computer Language Engineering (Spring 2010)、Computer Language Engineering (SMA 5502) (Fall 2005)
课程地址:Introduction to Machine Learning (Fall 2020)
课程地址:Automata, Computability, and Complexity (Spring 2011)
课程地址:Design and Analysis of Algorithms (Spring 2015)
课程地址:Creating Video Games (Fall 2014)
课程地址:Great Ideas in Theoretical Computer Science (Spring 2008)
课程地址:Software Studio
这门课以前是使用Ruby的Rails和JavaScript来搭建一个全栈开发项目。而现在则完全是使用JavaScript来做全栈开发,内容包含Node、MySQL、React等。
课程地址:Software Engineering for Web Applications (Fall 2003)
这门课可以和6.170一起学,主要如何构建高并发、安全、可靠等的Web应用
课程地址:Performance Engineering of Software Systems (Fall 2018)
这门课主要教你如何构建大型高性能的软件系统,包含性能分析、高性能、缓存优化、并行程序等,使用的是C语言。这门课没有参考教材,倒是有一堆文章需要你阅读,具体可以去官网的Readings了解。
课程地址:Constructive Computer Architecture
学这门课需要你掌握一门面向对象的编程语言(Java或C++)或函数式编程语言(ML或Haskell),以及6.004、6.005
课程地址:Parallel Computing (Fall 2011)
课程地址:Machine Vision (Fall 2020)
课程地址:The Human Intelligence Enterprise (Spring 2019)
课程地址:Computational Cognitive Science (Fall 2004)
课程地址:Principles and Practice of Assistive Technology (Fall 2014)
课程地址:User Interface Design and Implementation (Spring 2011)
课程地址:Digital and Computational Photography
课程地址:Multicore Programming Primer (January IAP 2007)
这门课没有对外公开,只了解到它使用的参考教材是《多处理器编程的艺术》
课程地址:Advances in Computer Vision (12)
课程地址:Fundamentals of Program Analysis (Fall 2015)
课程地址:Computer Graphics (Fall 2012)
课程地址:Theory of Computation (12)
本课程向学生介绍人工智能的基本知识表现、问题解决和学习方法。完成 6.034 后,学生应该能够通过组装解决方案来开发智能系统,从而解决具体的计算问题;了解知识表现、问题解决和学习在智能系统工程中的作用;并理解解决问题、视觉和语言在从计算角度理解人类智力方面的作用。
https://ai6034.mit.edu/wiki/index.php?title=Main_Page
本课程包括有关计算机软件和硬件系统工程的主题。主题包括控制复杂性的技术;使用客户端 - 服务器设计、操作系统的强大模块化;性能,网络;命名;安全和隐私;容错系统、并发活动的原子性和协调性以及恢复;计算机系统对社会的影响。
地址:https://web.mit.edu/6.033/www/
介绍软件开发的基本原则和技术:如何编写安全无错误、易于理解且易于更改的软件。主题包括规范和不变;测试、测试用例生成和覆盖范围;抽象数据类型和表示独立性;面向对象编程的设计模式;并发编程,包括消息传递和共享内存并发,死锁;函数编程,具有不可变的数据和高阶函数。
地址:https://web.mit.edu/6.031/www/sp20/
从建模和预测的角度介绍机器学习的原则、算法和应用;制定学习问题;代表性、过度拟合、概括性;聚类、分类、概率建模;和诸如支持向量机、隐式马尔科夫模型和神经网络等方法。
地址:https://openlearninglibrary.mit.edu/courses/course-v1:MITx+6.036+1T2019/about
关于计算定义问题的数学介绍,以及计算机可以解决的问题。考虑通过有限的自动机,电路,图灵机和通信复杂性可以有效解决哪些问题。在某些情况下,为问题提供完整,严格的答案。建立根据难度对计算问题进行分类的技能。讨论其他基本问题,包括 Church-Turing 论文,P 与 NP 问题以及随机性。
地址:https://people.csail.mit.edu/rrw/6.045-2020/
高效算法的设计与分析技术,强调在实践中有用的方法。主题包括排序;搜索树、堆和哈希;分而治之;动态编程;贪婪算法;摊销分析;图形算法;和最短的路径。高级主题可能包括网络流;计算几何;数字理论算法;多项式和矩阵计算;缓存;和并行计算。
高级科目很多,这里只推荐一些比较知名&个人感兴趣的:
本课程介绍分布式系统设计的抽象和实现技术。主题包括:服务器设计、网络编程、命名、存储系统、安全性和容错能力。
地址:https://pdos.csail.mit.edu/6.824/
本课程研究操作系统工程的基本设计和实现理念。讲座以 UNIX 和研究论文的研究为基础。主题包括虚拟内存、线程、上下文切换、内核、中断、系统调用、进程间通信、协调和软件和硬件之间的交互。单个实验室任务涉及在 C 中实施小型操作系统,并带有一些 x86 组件。
地址:https://pdos.csail.mit.edu/6.828/2019/schedule.html
全球网络基础设施如何工作,其基础是什么设计原则?在实践中,这些设计原则在哪些方面受到了损害?我们如何使它在当今世界更好地工作?面对快速增长的规模和异质性,我们如何确保它在未来运作良好?应该如何编写 Internet 应用程序,以便它们能够为自己和使用基础结构的其他人获得最佳性能?这些是本课程中正在处理的一些问题。本课程将侧重于大型联网系统的设计、实施、分析和评估。
地址:https://web.mit.edu/6.829/www/currentsemester/
本课程依托数据库社区的主要阅读资料,向研究生介绍数据库系统的基础,重点介绍关系代数和数据模型、架构规范化、查询优化和事务。
地址:http://db.csail.mit.edu/6.830/index.phpdb.csail.mit.edu/6.830/index.php
Amazon 李沐大神出的《动手学深度学习》
台湾大学《Applied Deep Learning/Machine Learning and Having It Deep and Structured》
NJU ICS PA Bilibili链接
上海交通大学 操作系统 (陈海波、夏虞斌) BiliBili链接
普林斯顿在 Coursera 上也公开了两门对应课程:Algorithms, Part I 和 Algorightmsm, Part2
斯坦福 CS106b (broken link)
课程地址: Game Theory with Engineering Applications (Spring 2010)
课程地址:Computer System Architecture (Fall 2005)
课程地址:Distributed Computer Systems Engineering (Spring 2006)
这门课的老师之一是Robert Morris,他是蠕虫的制造者,曾被评为5大黑客之一。
课程地址:Techniques in Artificial Intelligence (SMA 5504) (Fall 2002)
课程地址:Principles of Computer Systems (Spring 2002)
课程地址:Multithreaded Parallelism: Languages and Compilers (Fall 2002)
课程地址:Operating System Engineering(2018)、Operating System Engineering (Fall 2012)
前置课程是 6.033 Computer System Engineering、6.170 Software Studio、6.004 Computation Structures
这门课研究的是操作系统的基础设计和实现,包括虚拟内存、线程、上下文切换、内核、中断、系统调用、进程间通信、协调和软件和硬件之间的交互。
课程地址:Computer Networks, Fall 2020、Computer Networks (Fall 2002)
课程地址:Database Systems (Spring 2021)、Database Systems (Fall 2010)
课程地址:User Interface Design and Implementation (Spring 2011)
课程地址:Algorithms for Computer Animation (Fall 2002)
课程地址:Theory of Computation (Fall 2006)
课程地址:Advanced Complexity Theory (Spring 2016)
课程地址:Computability Theory of and with Scheme (Spring 2003)
课程地址:Advanced Data Structures (Spring 2012)
课程地址:Distributed Algorithms (Fall 2009)
课程地址:Advanced Algorithms (Fall 2008)、Advanced Algorithms (Fall 2005)
课程地址:Network Optimization (Fall 2010)
课程地址:Randomized Algorithms (Fall 2002)
课程地址:Network and Computer Security (Spring 2014)
课程地址:Computer Systems Security (Fall 2014)
课程地址:Integer Programming and Combinatorial Optimization (Fall 2009)
课程地址:Natural Language and the Computer Representation of Knowledge (Spring 2003)
课程地址:Advanced Natural Language Processing (Fall 2005)
课程地址:Machine Vision (Fall 2020)
课程地址:Machine Learning (Fall 2006)
课程地址:Knowledge-Based Applications Systems (Spring 2005)
课程地址:Cryptography and Cryptanalysis (Spring 2005)
课程地址:Advanced Topics in Cryptography (Spring 2003)
课程地址:Representation and Modeling for Image Analysis (Spring 2005)
课程地址:Pervasive Human Centric Computing (SMA 5508) (Spring 2006)
课程地址:Program Analysis (Fall 2005)
课程地址:Algorithmic Lower Bounds: Fun with Hardness Proofs (Fall 2014)
课程地址:Computational Models of Discourse (Spring 2004)
课程地址:Essential Coding Theory (Fall 2004)
课程地址 Theory of Parallel Systems (SMA 5509) (Fall 2003)
课程地址:Theory of Parallel Hardware (SMA 5511) (Spring 2004)
课程地址:Selected Topics in Cryptography (Spring 2004)
MIT针对不同的编程语言都有配套的实验课Lab,如C语言、Java、C++等
课程地址:Practical Programming in C (January IAP 2010)
课程地址:Introduction to C Memory Management and C++ Object-Oriented Programming (January IAP 2010)
课程地址:Building Programming Experience: A Lead-In to 6.001 (January IAP 2005)
课程地址:Introduction to Programming in Java (January IAP 2010) 、Java Preparation for 6.170 (January IAP 2006)
课程地址:Introduction to C++ (January IAP 2011)
课程地址:The Battlecode Programming Competition (January IAP 2013)
https://zhuanlan.zhihu.com/p/112763953
https://www.zhihu.com/question/57532048
https://www.zhihu.com/question/29597104
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。