[UPDATE] Update plan and release info (#750)

* update

* update release

* update english version
This commit is contained in:
Yinmin Zhong 2025-06-08 13:25:46 +08:00 committed by GitHub
parent 69331d55f9
commit b85c6004c9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 56 additions and 43 deletions

View File

@ -243,11 +243,13 @@ In recent years, the most common phrase heard in CS lectures is "Moore's Law is
#### Parallel Computing #### Parallel Computing
[CMU 15-418/Stanford CS149: Parallel Computing](并行与分布式系统/CS149.md) [CMU 15-418 / Stanford CS149: Parallel Computing](并行与分布式系统/CS149.md) takes you deep into the design principles and trade-offs of modern parallel computing architectures. The course teaches you how to fully leverage hardware resources and software programming frameworks—such as CUDA, MPI, and OpenMP—to write high-performance parallel programs.
#### Distributed Systems #### Distributed Systems
[MIT 6.824: Distributed System](并行与分布式系统/MIT6.824.md) [MIT 6.824: Distributed Systems](并行与分布式系统/MIT6.824.md), like MIT 6.S081, is offered by MITs renowned PDOS (Parallel and Distributed Operating Systems) lab. The course is taught by Professor Robert Morris, who was once a legendary hacker—famously known for creating the first computer worm, the Morris Worm.
Each lecture focuses on an in-depth reading of a classic paper in the field of distributed systems, through which the course conveys essential principles and key techniques for designing and implementing distributed systems. The course is also famous for its challenging projects: over the course of four progressively difficult programming assignments, students build a key-value store framework based on the Raft consensus algorithm. These projects offer a firsthand experience of the randomness and complexity brought by concurrency and distribution—often felt most acutely during painful debugging sessions.
### System Security ### System Security
@ -257,10 +259,6 @@ Whether you chose computer science because of a youthful dream of becoming a hac
[UCB CS161: Computer Security](系统安全/CS161.md) at UC Berkeley covers stack attacks, cryptography, website security, network security, and more. [UCB CS161: Computer Security](系统安全/CS161.md) at UC Berkeley covers stack attacks, cryptography, website security, network security, and more.
[ASU CSE365: Introduction to Cybersecurity](系统安全/CSE365.md) at Arizona State University focuses mainly on injections, assembly, and cryptography.
[ASU CSE466: Computer Systems Security](系统安全/CSE466.md) at Arizona State University covers a wide range of topics in system security. It has a high barrier to entry, requiring familiarity with Linux, C, and Python.
[SU SEED Labs](系统安全/SEEDLabs.md) at Syracuse University, supported by a $1.3 million grant from the NSF, has developed hands-on experimental exercises (called SEED Labs) for cybersecurity education. The course emphasizes both theoretical teaching and practical exercises, including detailed open-source lectures, video tutorials, textbooks (printed in multiple languages), and a ready-to-use virtual machine and Docker-based attack-defense environment. This project is currently used by 1,050 institutions worldwide and covers a wide range of topics in computer and information security, including software security, network security, web security, operating system security, and mobile app security. [SU SEED Labs](系统安全/SEEDLabs.md) at Syracuse University, supported by a $1.3 million grant from the NSF, has developed hands-on experimental exercises (called SEED Labs) for cybersecurity education. The course emphasizes both theoretical teaching and practical exercises, including detailed open-source lectures, video tutorials, textbooks (printed in multiple languages), and a ready-to-use virtual machine and Docker-based attack-defense environment. This project is currently used by 1,050 institutions worldwide and covers a wide range of topics in computer and information security, including software security, network security, web security, operating system security, and mobile app security.
#### Practical Courses #### Practical Courses
@ -277,7 +275,8 @@ After mastering this theoretical knowledge, it's essential to cultivate and hone
The renowned [Stanford CS144: Computer Network](计算机网络/CS144.md) includes 8 projects that guide you in implementing the entire TCP/IP protocol stack. The renowned [Stanford CS144: Computer Network](计算机网络/CS144.md) includes 8 projects that guide you in implementing the entire TCP/IP protocol stack.
If you're just looking to understand computer networks theoretically, I recommend the famous networking textbook "A Top-Down Approach" and its accompanying learning resources [Computer Networking: A Top-Down Approach](计算机网络/topdown.md). If you're mainly interested in gaining a theoretical understanding of computer networks, it's recommended to read the [textbook](https://textbook.cs168.io/) that accompanies the course [UCB CS168](计算机网络/CS168.md).
### Database Systems ### Database Systems
@ -295,18 +294,14 @@ Berkeley, as the birthplace of the famous open-source database PostgreSQL, has i
### Web Development ### Web Development
Front-end development is often overlooked in computer science curricula, but mastering these skills has many benefits, such as building your personal website or creating an impressive presentation website for your course projects. Front-end and back-end development are often overlooked in standard computer science curricula, but in reality, having these skills can be extremely beneficial—for example, creating your own personal website or building a polished demo page for a course project.
#### Two-Week Crash Course If you're looking for a quick, two-week crash course, I recommend the [MIT Web Development Course](Web开发/mitweb.md). For a more comprehensive and structured learning experience, check out [Stanford CS142: Web Applications](Web开发/CS142.md).
[MIT web development course](Web开发/mitweb.md)
#### Systematic Study Version
[Stanford CS142: Web Applications](Web开发/CS142.md)
### Computer Graphics ### Computer Graphics
I personally don't have much background in computer graphics, so I've collected a selection of high-quality courses recommended by the community for those interested in exploring the field.
- [Stanford CS148](计算机图形学/CS148.md) - [Stanford CS148](计算机图形学/CS148.md)
- [Games101](计算机图形学/GAMES101.md) - [Games101](计算机图形学/GAMES101.md)
- [Games103](计算机图形学/GAMES103.md) - [Games103](计算机图形学/GAMES103.md)
@ -326,29 +321,44 @@ The most significant recent progress in the field of machine learning is the eme
However, completing this course will only give you a general understanding of the field of machine learning. To truly understand the mathematical principles behind these "magical" algorithms or to engage in related research, you need a more "mathematical" course, such as [Stanford CS229: Machine Learning](机器学习/CS229.md) or [UCB CS189: Introduction to Machine Learning](机器学习/CS189.md). However, completing this course will only give you a general understanding of the field of machine learning. To truly understand the mathematical principles behind these "magical" algorithms or to engage in related research, you need a more "mathematical" course, such as [Stanford CS229: Machine Learning](机器学习/CS229.md) or [UCB CS189: Introduction to Machine Learning](机器学习/CS189.md).
If you plan to pursue scientific research in machine learning theory, you can refer to the [advanced learning roadmap](./机器学习进阶/roadmap.md) shared by [Yao Fu](https://franxyao.github.io/), which includes more in-depth, graduate-level courses.
### Deep Learning ### Deep Learning
The popularity of AlphaGo a few years ago brought deep learning to the public eye, leading many universities to establish related majors. Many other areas of computer science also use deep learning technology for research, so regardless of your field, you will likely encounter some needs related to neural networks and deep learning. For a quick introduction, I again recommend Andrew Ng's (Enda Wu) [Coursera: Deep Learning](深度学习/CS230.md), a top-rated course on Coursera. Additionally, if you find English-language courses challenging, consider Professor Hongyi Li's course [National Taiwan University: Machine Learning](深度学习/LHY.md). Although titled "Machine Learning," this course covers almost all areas of deep learning and is very comprehensive, making it suitable for getting a broad overview of the field. The professor is also very humorous, with frequent witty remarks in class. The popularity of AlphaGo a few years ago brought deep learning to the public eye, leading many universities to establish related majors. Many other areas of computer science also use deep learning technology for research, so regardless of your field, you will likely encounter some needs related to neural networks and deep learning. For a quick introduction, I again recommend Andrew Ng's (Enda Wu) [Coursera: Deep Learning](深度学习/CS230.md), a top-rated course on Coursera. Additionally, if you find English-language courses challenging, consider Professor Hongyi Li's course [National Taiwan University: Machine Learning](深度学习/LHY.md). Although titled "Machine Learning," this course covers almost all areas of deep learning and is very comprehensive, making it suitable for getting a broad overview of the field. The professor is also very humorous, with frequent witty remarks in class.
Due to the rapid development of deep learning, there are now many research branches. For further in-depth study, consider the following representative courses: Due to the rapid development of deep learning, there are now many research branches. For further in-depth study, consider the following representative courses:
### Computer Vision #### Computer Vision
- [UMich EECS 498-007 / 598-005: Deep Learning for Computer Vision](深度学习/EECS498-007.md) - [UMich EECS 498-007 / 598-005: Deep Learning for Computer Vision](深度学习/EECS498-007.md)
- [Stanford CS231n: CNN for Visual Recognition](深度学习/CS231.md) - [Stanford CS231n: CNN for Visual Recognition](深度学习/CS231.md)
### Natural Language Processing #### Natural Language Processing
- [Stanford CS224n: Natural Language Processing](深度学习/CS224n.md) - [Stanford CS224n: Natural Language Processing](深度学习/CS224n.md)
### Graph Neural Networks #### Graph Neural Networks
- [Stanford CS224w: Machine Learning with Graphs](深度学习/CS224w.md) - [Stanford CS224w: Machine Learning with Graphs](深度学习/CS224w.md)
### Reinforcement Learning #### Reinforcement Learning
- [UCB CS285: Deep Reinforcement Learning](深度学习/CS285.md) - [UCB CS285: Deep Reinforcement Learning](深度学习/CS285.md)
### Deep Learning Systems
As deep learning models grow in importance and demand increasing computational resources, optimizing the underlying systems for training and inference has become increasingly critical. For those looking to enter this field, a highly recommended resource is [CMU 10-414/714: Deep Learning Systems](./机器学习系统/CMU10-414.md). This course provides a comprehensive "full-stack" understanding of deep learning systems—from high-level architectural design of modern frameworks, to the principles and implementation of automatic differentiation, down to low-level hardware acceleration and real-world deployment.
To deepen theoretical understanding, students are tasked with building a deep learning library from scratch, called Needle, as part of the coursework. This library supports automatic differentiation on computational graphs, GPU-based acceleration, and includes modules for loss functions, data loaders, and optimizers. On top of this, students will implement several common neural network architectures including CNNs, RNNs, LSTMs, and Transformers.
For those with foundational knowledge, the next step would be to explore [MIT 6.5940: TinyML and Efficient Deep Learning Computing](./机器学习系统/EML.md), taught by [Professor Song Han](https://hanlab.mit.edu/songhan). This course dives into techniques for making neural networks more efficient, such as pruning, quantization, distillation, and neural architecture search. It also covers cutting-edge system optimizations for advanced models, including large language models.
### Deep Generative Models
With the explosive popularity of large language models, understanding the principles behind them is essential to staying at the forefront of the field. You can refer to my recommended [learning roadmap](./深度生成模型/roadmap.md) for a guided approach to studying this area.
## Customize Your Course Map ## Customize Your Course Map
> Better to teach fishing than to give fish. > Better to teach fishing than to give fish.

View File

@ -241,11 +241,11 @@ IDE (Integrated Development Environment):集成开发环境,说白了就是
#### 并行计算 #### 并行计算
[CMU 15-418/Stanford CS149: Parallel Computing](并行与分布式系统/CS149.md) [CMU 15-418/Stanford CS149: Parallel Computing](并行与分布式系统/CS149.md) 会带你深入理解现代并行计算架构的设计原则与必要权衡,并学会如何充分利用硬件资源以及软件编程框架(例如 CUDAMPIOpenMP 等)编写高性能的并行程序。
#### 分布式系统 #### 分布式系统
[MIT 6.824: Distributed System](并行与分布式系统/MIT6.824.md) [MIT 6.824: Distributed System](并行与分布式系统/MIT6.824.md) 和 MIT 6.S081 一样,出品自 MIT 大名鼎鼎的 PDOS 实验室,授课老师 Robert Morris 教授曾是一位顶尖黑客,世界上第一个蠕虫病毒 Morris 病毒就是出自他之手。这门课每节课都会精读一篇分布式系统领域的经典论文,并由此传授分布式系统设计与实现的重要原则和关键技术。同时其课程 Project 也是以难度之大而闻名遐迩4 个编程作业循序渐进带你实现一个基于 Raft 共识算法的 KV-store 框架,让你在痛苦的 debug 中体会并行与分布式带来的随机性和复杂性。
### 系统安全 ### 系统安全
@ -255,15 +255,11 @@ IDE (Integrated Development Environment):集成开发环境,说白了就是
[UCB CS161: Computer Security](系统安全/CS161.md) 是伯克利的系统安全课程,会涵盖栈攻击、密码学、网站安全、网络安全等等内容。 [UCB CS161: Computer Security](系统安全/CS161.md) 是伯克利的系统安全课程,会涵盖栈攻击、密码学、网站安全、网络安全等等内容。
[ASU CSE365: Introduction to Cybersecurity](系统安全/CSE365.md) 亚利桑那州立大学的 Web 安全课程,主要涉及注入、汇编与密码学的内容 [SU SEED Labs](系统安全/SEEDLabs.md) 是雪城大学的网安课程,由 NSF 提供130万美元的资金支持为网安教育开发了动手实践性的实验练习称为 SEED Lab。课程理论教学和动手实践并重包含详细的开源讲义、视频教程、教科书被印刷为多种语言、开箱即用的基于虚拟机和 docker 的攻防环境等。目前全球有1050家研究机构在使用该项目。涵盖计算机和信息安全领域的广泛主题包括软件安全、网络安全、Web 安全、操作系统安全和移动应用安全
[ASU CSE466: Computer Systems Security](系统安全/CSE466.md) 亚利桑那州立大学的系统安全课程,涉及内容全面。门槛较高,需要对 Linux, C 与 Python 充分熟悉。 #### CTF 实践
[SU SEED Labs](系统安全/SEEDLabs.md) 雪城大学的网安课程,由 NSF 提供130万美元的资金支持为网安教育开发了动手实践性的实验练习称为 SEED Lab。课程理论教学和动手实践并重包含详细的开源讲义、视频教程、教科书被印刷为多种语言、开箱即用的基于虚拟机和 docker 的攻防环境等。目前全球有1050家研究机构在使用该项目。涵盖计算机和信息安全领域的广泛主题包括软件安全、网络安全、Web 安全、操作系统安全和移动应用安全。 掌握这些理论知识之后,还需要在实践中培养和锻炼这些“黑客素养”。[CTF 夺旗赛](https://ctf-wiki.org/)是一项比较热门的系统安全比赛,赛题中会融会贯通地考察你对计算机各个领域知识的理解和运用。北大每年会举办[相关赛事](https://geekgame.pku.edu.cn/),鼓励大家踊跃参与,在实践中提高自己。下面列举一些我平时学习(摸鱼)用到的资源:
#### 实践课程
掌握这些理论知识之后,还需要在实践中培养和锻炼这些“黑客素养”。[CTF 夺旗赛](https://ctf-wiki.org/)是一项比较热门的系统安全比赛,赛题中会融会贯通地考察你对计算机各个领域知识的理解和运用。北大今年也成功举办了[第 0 届和第 1 届](https://geekgame.pku.edu.cn/),鼓励大家后期踊跃参与,在实践中提高自己。下面列举一些我平时学习(摸鱼)用到的资源:
- [CTF-wiki](https://ctf-wiki.org/) - [CTF-wiki](https://ctf-wiki.org/)
- [CTF-101](https://ctf101.org/) - [CTF-101](https://ctf101.org/)
@ -275,7 +271,7 @@ IDE (Integrated Development Environment):集成开发环境,说白了就是
大名鼎鼎的 [Stanford CS144: Computer Network](计算机网络/CS144.md)8 个 Project 带你实现整个 TCP/IP 协议栈。 大名鼎鼎的 [Stanford CS144: Computer Network](计算机网络/CS144.md)8 个 Project 带你实现整个 TCP/IP 协议栈。
如果你只是想在理论上对计算机网络有所了解,那么推荐计网著名教材《自顶向下方法》的配套学习资源 [Computer Networking: A Top-Down Approach](计算机网络/topdown.md)。 如果你只是想在理论上对计算机网络有所了解,那么推荐阅读 [UCB CS168](计算机网络/CS168.md) 这门课程配套的[教材](https://textbook.cs168.io/)。
### 数据库系统 ### 数据库系统
@ -289,22 +285,16 @@ Berkeley 作为著名开源数据库 postgres 的发源地也不遑多让,[UCB
> 没有什么能比自己写个编译器更能加深对编译器的理解了。 > 没有什么能比自己写个编译器更能加深对编译器的理解了。
[Stanford CS143: Compilers](编译原理/CS143.md) 带你手写编译器 理论学习推荐阅读大名鼎鼎的《龙书》。当然动手实践才是掌握编译原理最好的方式,推荐[北京大学编译原理实践](./编译原理/PKU-Compilers.md)课程丰富的实验配套和循序渐进的文档带你实现一个类C语言到 RISC-V 汇编的编译器。当然编译原理课程目录下也有众多其他优质实验供你选择
### Web开发 ### Web 开发
前后端开发很少在计算机的培养方案里被重视,但其实掌握这项技能还是好处多多的,例如搭建自己的个人主页,抑或是给自己的课程项目做一个精彩的展示网页。 前后端开发很少在计算机的培养方案里被重视,但其实掌握这项技能还是好处多多的,例如搭建自己的个人主页,抑或是给自己的课程项目做一个精彩的展示网页。如果你只是想两周速成,那么推荐 [MIT web development course](Web开发/mitweb.md)。如果想系统学习,推荐 [Stanford CS142: Web Applications](Web开发/CS142.md)。
#### 两周速成版
[MIT web development course](Web开发/mitweb.md)
#### 系统学习版
[Stanford CS142: Web Applications](Web开发/CS142.md)
### 计算机图形学 ### 计算机图形学
我本人对计算机图形学了解不多,这里收录了一些社区推荐的优质课程供大家选择:
- [Stanford CS148](计算机图形学/CS148.md) - [Stanford CS148](计算机图形学/CS148.md)
- [Games101](计算机图形学/GAMES101.md) - [Games101](计算机图形学/GAMES101.md)
- [Games103](计算机图形学/GAMES103.md) - [Games103](计算机图形学/GAMES103.md)
@ -325,11 +315,13 @@ Berkeley 作为著名开源数据库 postgres 的发源地也不遑多让,[UCB
但上过这门课只能让你从宏观上对机器学习这一领域有一定了解,如果想真正理解那些“神奇”算法背后的数学原理甚至从事相关领域的科研工作,那么还需要一门更“数学”的课程,例如 [Stanford CS229: Machine Learning](机器学习/CS229.md) 或者 [UCB CS189: Introduction to Machine Learning](机器学习/CS189.md)。 但上过这门课只能让你从宏观上对机器学习这一领域有一定了解,如果想真正理解那些“神奇”算法背后的数学原理甚至从事相关领域的科研工作,那么还需要一门更“数学”的课程,例如 [Stanford CS229: Machine Learning](机器学习/CS229.md) 或者 [UCB CS189: Introduction to Machine Learning](机器学习/CS189.md)。
当然,如果你之后致力于从事机器学习理论相关的科学研究,那么可以参考 [Yao Fu](https://franxyao.github.io/) 分享的[进阶学习路线](./机器学习进阶/roadmap.md)学习一些更深入的研究生难度的课程。
### 深度学习 ### 深度学习
前几年 AlphaGo 的大热让深度学习进入了大众的视野,不少大学甚至专门成立了相关专业。很多计算机的其他领域也会借助深度学习的技术来做研究,因此基本不管你干啥多少都会接触到一些神经网络、深度学习相关的技术需求。如果想快速入门,同样推荐 Andrew Ng (吴恩达)的 [Coursera: Deep Learning](深度学习/CS230.md)质量无需多言Coursera 上罕见的满分课程。此外如果你觉得英文课程学习起来有难度,推荐李宏毅老师的 [国立台湾大学:机器学习](深度学习/LHY.md) 课程。这门课打着机器学习的名号,却囊括了深度学习领域的几乎所有方向,非常全面,很适合你从宏观上对这个领域有一个大致的了解。而且老师本人也非常幽默,课堂金句频出。 前几年 AlphaGo 的大热让深度学习进入了大众的视野,不少大学专门成立了相关专业。很多计算机的其他领域也会借助深度学习的技术来做研究,因此基本不管你干啥多少都会接触到一些神经网络、深度学习相关的技术需求。如果想快速入门,同样推荐 Andrew Ng (吴恩达)的 [Coursera: Deep Learning](深度学习/CS230.md)质量无需多言Coursera 上罕见的满分课程。此外如果你觉得英文课程学习起来有难度,推荐李宏毅老师的 [国立台湾大学:机器学习](深度学习/LHY.md) 课程。这门课打着机器学习的名号,却囊括了深度学习领域的几乎所有方向,非常全面,很适合你从宏观上对这个领域有一个大致的了解。而且老师本人也非常幽默,课堂金句频出。
当然因为深度学习领域发展非常迅速,已经拥有了众多研究分支,如果想要进一步深入,可以按需学习下面罗列的代表课程 当然因为深度学习领域发展非常迅速,已经拥有了众多研究分支,如果想要进一步深入,可以按需学习下面罗列的代表课程:
#### 计算机视觉 #### 计算机视觉
@ -349,6 +341,17 @@ Berkeley 作为著名开源数据库 postgres 的发源地也不遑多让,[UCB
[UCB CS285: Deep Reinforcement Learning](深度学习/CS285.md) [UCB CS285: Deep Reinforcement Learning](深度学习/CS285.md)
### 深度学习系统
随着深度学习模型的重要性和资源需求越来越大,针对其训练和推理相关的底层系统优化也越发重要。如果想入门这个领域,推荐 [CMU 10-414/714: Deep Learning Systems](./机器学习系统/CMU10-414.md),内容覆盖了深度学习系统“全栈”的知识体系。从现代深度学习系统框架的顶层设计,到自微分算法的原理和实现,再到底层硬件加速和实际生产部署。为了更好地掌握理论知识,学生将会在课程作业中从头开始设计和实现一个完整的深度学习库 Needle使其能对计算图进行自动微分能在 GPU 上实现硬件加速,并且支持各类损失函数、数据加载器和优化器。在此基础上,学生将实现几类常见的神经网络,包括 CNNRNNLSTMTransformer 等等。有一定基础后,还可以学习 [Song Han](https://hanlab.mit.edu/songhan) 老师开设的 [MIT6.5940: TinyML and Efficient Deep Learning Computing](./机器学习系统/EML.md) 课程,了解让神经网络轻量化的各种关键技术,例如剪枝、量化、蒸馏、网络架构搜索等等。此外,课程中还会涉及很多更前沿的深度学习模型例如大语言模型相关的系统优化。
### 深度生成模型
随着大语言模型的爆火,了解其背后的原理才能紧跟时代潮流。可以参考笔者推荐的[学习路线](./深度生成模型/roadmap.md)进行学习。
## <a id="yourmap">定制属于你的课程地图</a> ## <a id="yourmap">定制属于你的课程地图</a>
> 授人以鱼不如授人以渔。 > 授人以鱼不如授人以渔。

View File

@ -4,7 +4,7 @@
# 前言 # 前言
**最近更新:[Release v1.1.0](https://github.com/PKUFlyingPig/cs-self-learning/releases/tag/v1.1.0) 已发布 🎉** **🎉🎉 [Release v1.2.0](https://github.com/PKUFlyingPig/cs-self-learning/releases/tag/v1.2.0): 更新了[深度生成模型学习路线](./深度生成模型/roadmap.md) 🎉🎉**
这是一本计算机的自学指南,也是对自己大学三年自学生涯的一个纪念。 这是一本计算机的自学指南,也是对自己大学三年自学生涯的一个纪念。