93 Commits

Author SHA1 Message Date
Junda Chen
9519b3a667 [COURSE] Add UCSD CSE234 Data Systems for Machine Learning (#713)
* Add CSE234 UCSD

* update contents to contain more details

* update extended materials

* Update mkdocs.yml

* change a bit

* make it better

* update

* update
2026-02-02 12:07:11 +08:00
C. Yin
fbf8f26a2b [Update] update MIT-missing-semester lecture recordings link with 2026 version (#836)
* update MIT-Missing-Semester.md
* update MIT-Missing-Semester.en.md
2026-01-30 10:39:16 +08:00
Luyu Zhang
27586ff904 [TOOL] add encyclopedic websites in tools (#832) 2026-01-21 21:18:08 +08:00
Bojun Ren
ac0cef182a [UPDATE] Update SJTU-Compiler Course (#830)
* update SJTU compilers

* update SJTU compilers (English)
2026-01-18 19:29:55 +08:00
Yinmin Zhong
542a7f4a9b [README] remove warp logo (#828) 2026-01-08 22:29:23 +08:00
John Luo
188a8f88c3 docs: update automq readme link (#816) 2025-11-28 10:53:24 +08:00
John Luo
5956926395 [Sponsor] Add AutoMQ Banner to README (#813) 2025-11-14 23:50:07 +08:00
Mashirl
ddc06bd6e5 [FIX] fix broken nav bar link (#809) 2025-11-13 12:59:44 +08:00
C. Yin
c116aae45e [Update] Add Stanford CS231n latest lecture videos (#811) 2025-11-13 12:58:33 +08:00
onnonn
cf393ddff2 [FIX] fix spelling errors in cs220 docs (#801) 2025-10-09 15:13:18 +08:00
Yinmin Zhong
8c9db49c96 [Fix] Fix link (#800)
* [Support] Add warp support

* fix nits

* fix link
2025-09-29 22:05:39 +08:00
Yinmin Zhong
9f68cb64d0 [Support] Add warp support (#799)
* [Support] Add warp support

* fix nits
2025-09-29 21:54:29 +08:00
Aaron
3bb5a900e7 [Update] Add SP2021 public access information for CS61B (#788)
- Add SP2021 course website link
  - Add Gradescope course code MB7ZPY for public access
  - Update both Chinese and English versions
2025-08-31 08:42:31 +08:00
Tci Gravifer Fang
25e0b34359 [UPDATE] add latest CS242 website (#784)
* [UPDATE] add new CS242 site (zh-cn)

* [UPDATE] add new CS242 site (en)
2025-08-19 22:17:57 +08:00
Das1Zhang
c9365b2ed9 [FIX] Fix the link for CS149.en (#776)
Synchronize CS149.en.md with CS149.md
2025-07-28 23:09:56 +08:00
LiAlH4
6162cd1b9c [FIX] Fix course video link of NJU Compilers (#775)
* [FIX] NJU Compilers course video link

bilibili video collection link schama may changed, original link will only show the collections overview instead of this collection

* [FIX] course video link in NJU-Compilers.en.md
2025-07-28 23:07:57 +08:00
Yinmin Zhong
0e793039d8 [COURSE] Add MIT 6.S184 (#772)
* Add course

* add nav
2025-07-11 00:52:24 +08:00
小牛仔
5d57ab9b4e [FIX] Rename the illegal filename in NTFS (#765) 2025-06-24 12:29:14 +08:00
小牛仔
816342af1b [GIT] Add learning website for Git (#759)
* Update Git.md

* Update Git.en.md

* Update Git.en.md

* Update Git.md
2025-06-16 21:24:25 +08:00
Das1Zhang
43a37646ab [UPDATE] Update CMU 15-418 course website and recordings (#756)
Update CMU 15-418 course website and recordings
2025-06-14 18:02:57 +08:00
Zhaorong Zhu
95fc541954 [ENHANCE] Fix typo and add resource in SJTU Compiler Course (#755)
* 修改明显错误

* 补充课程代码仓库

* 补充课本链接

* 修改格式
2025-06-14 18:01:54 +08:00
Crazy-Ryan
3432316a0d [UPDATE] Add assignment implementation for CMU-10-714(24 Fall) (#751)
* add assignment implementation for 24 Fall offering

* correct punctuation
2025-06-09 19:39:46 +08:00
Yinmin Zhong
b85c6004c9 [UPDATE] Update plan and release info (#750)
* update

* update release

* update english version
2025-06-08 13:25:46 +08:00
69331d55f9 [UPDATE] Update ai-with-python course link (#662)
* docs(ai-with-python): update course link

* chore: optimize ai-with-python link
2025-06-08 11:11:07 +08:00
Ri_Jo_shin
97b871db48 [UPDATE] Update LHY's ML Course Links (#728)
* Update Li Hongyi's machine learning to the latest version

* FIX: Update LHY.md, delete "1" and unified with the english version
2025-06-08 11:08:50 +08:00
Yinmin Zhong
a08d2e4507 [COURSE] Add UCB-CS168 (#748)
* fix

* add cs168
2025-06-08 11:07:20 +08:00
Keyu Chen
1a92f4629b [COURSE] Neural Networks: Zero to Hero (#717)
* Create Neural Networks: Zero to Hero.en.md

Best intro to AI course by former head of AI at OpenAI/Tesla - Andrej Karpathy

* Create Neural Networks: Zero to Hero.md

add Chinese version

this is the best course so far for intro to AI. tought by former head of AI at Open AI, Andrej Karpathy
2025-06-08 00:24:36 +08:00
xeonliu
57eecf19f2 [COURSE] Add SJTU SE3355: Compiler Course (#727)
* Add SJTU Compiler Course

* Update Index

* Fix Indentation
2025-06-08 00:23:04 +08:00
Yinmin Zhong
a74ddd98d3 [COURSE] Add LLM related courses (#746)
* add CMU11868

* add cmu11-667

* add cmu11711

* update cmu11-868

* update cmu-11667

* nits
2025-06-08 00:16:52 +08:00
Yinmin Zhong
2b4ba63b09 [COURSE] Add Deep Generative Model Roadmap (#744)
* add DGM section

* add roadmap
2025-06-07 23:18:04 +08:00
XiCheng Yang
eceb5d66e4 [BOOK] Add an OS book (#742) 2025-05-23 20:56:07 +08:00
Yinmin Zhong
8cdecfba01 [FIX] Fix typo (#740)
* fix typo

* nits

* fix name
2025-05-20 00:39:20 +08:00
Garrison
4f6144ac14 [UPDATE] Update CS61C (#738)
* update CS61C.md

* update CS61C.en.md
2025-05-10 23:58:31 +08:00
Hongwei Ma
77fb340289 [UPDATE] Update CS571 (#739)
* Update CS571.en.md

* Update CS571.md

* Update CS571.en.md
2025-05-10 23:57:10 +08:00
sphcode
229499d1bf [UPDATE] Update CSE365 (#729)
* [UPDATE] Update CSE365

* [UPDATE] Update CSE365
2025-04-06 15:54:14 +08:00
小蓝
844bcc738b [FIX] Fix typo (#730)
俩字写反了。
2025-04-03 23:57:34 +08:00
Yuchen Mu
f234ecf6f9 [COURSE] Add KAIST CS220 (#724)
* [COURSE] Add KAIST CS220

* add course kaist cs220
2025-03-24 21:34:31 +08:00
Mohan ZHENG
a615e87bb1 [UPDATE] Update CS188 (#722)
回退到Spring 24年版本。刚刚注意到Fall 24网站的视频资料等不完整,Gradescope邀请码也有问题,不能评价所有作业。待Spring 25完成后我会跟进更改。
2025-03-23 22:47:23 +08:00
Mohan ZHENG
2b80e17274 [UPDATE] Update CS188 (#721)
过早的课程网站已被UCB停止访问。更新为最新一期已结束的课程网站。
2025-03-22 17:25:55 +08:00
CC-bit
8089c81d6c [ENHANCE] Add epub link for CS61A textbook. (#714)
* Update CS61A.md

从原网页制作了电子书版教材,在readme中添加了链接。

* Update CS61A.en.md

add Epub url of the Textbook
2025-03-04 00:34:02 +08:00
Liu Kunling
a82f0307f6 [FIX] Fix the textbook link for MIT18.330 (#712)
* Update numerical.en.md

update textbook link

* Update numerical.md

update "课程教材“ link
2025-02-27 15:18:35 +08:00
Alidme
feee7c0ac4 [FIX] Fix typo (#701)
* Create MIT6.100L.md

* Create MIT6.100L.en.md

* Update MIT6.100L.en.md

* Update MIT6.100L.md

* Update MIT6.100L.md

* Update mkdocs.yml

* Update MIT6.100L.en.md

* Update MIT6.100L.md

* Update MIT6.100L.md

* Update MIT6.100L.en.md

* Update MIT6.100L.md

* Update MIT6.100L.en.md

* Update MIT6.100L.md

* Update MIT6.100L.md

* Update CS学习规划.en.md

* Update CS学习规划.md
2025-02-21 20:31:57 +08:00
Liwei Su
e7fd1eb6bc [UPDATE] Update cs50 course link (#708)
* Update CS50.md

更新 cs50 课程网站链接

* Update CS50.en.md

Update course website in cs50

* Update CS50.en.md

Update link in cs50
2025-02-21 20:30:06 +08:00
Garrison
551829eccb [ENHANCE]Update CS61A resources (#709)
删除了现在已无法直接访问的原网址
添加了fall2024的课程网站备份和课程作业整合
添加了spring2024的课程视频
2025-02-21 20:28:53 +08:00
PEGASUS
c44070764c [BOOK] Update book recommendations (#697)
* Update 好书推荐.md
2025-02-21 09:30:20 +08:00
Zihao Xu
bf7f675bc7 [Course][Update/Refactor] Refactor Standford CS144 documentation + Add new resources (#704)
* [Course][Update/Refactor] Refactor Standford CS144 documentation; Add new resources; Update course introduction/description

* update format for proper rendering
2025-02-01 11:27:45 +08:00
Alidme
47a2815a7f [COURSE] Add MIT6.100L (#699)
* Create MIT6.100L.md

* Update MIT6.100L.en.md

* Update MIT6.100L.md
2025-01-24 22:43:12 +08:00
Yinmin Zhong
039f25f576 [ENHANCE] Add trending badge && Update template (#698) 2025-01-19 19:33:14 +08:00
Yinmin Zhong
a06af57d9d [COURSE] Add MIT6.5940: TinyML (#694)
* add tinyml

* nits

* nits
2025-01-09 07:18:58 +08:00
Hieu Le
41aeee91f0 [UPDATE] CS149 recordings link (#691) 2025-01-06 13:48:19 +08:00
Yinmin Zhong
e711013bad [UPDATE] Remove link to zlib (#688) 2024-12-17 17:00:44 +08:00
Harbour-z
486942bc68 [ENHANCE] Add resources for MIT6.092 (#684) 2024-12-05 12:54:32 +08:00
Andy Tian
5665e2d544 [Feat] Open external links in markdown on a new tab (#682) 2024-11-29 01:20:50 +08:00
n0rdd3v
3d7577bda8 [TOOLS] Add SQLable to tools (#677) 2024-11-12 15:31:39 +08:00
Garrison Liu
76db52098e [ENHANCE] Add resources for UCB-CS61B (#679) 2024-11-12 15:30:30 +08:00
Chen-Chun, Kao
ca7aa472a2 [Fix] Fix incorrect full name of COOL (#676) 2024-11-02 16:37:49 +08:00
ZHAOYANG ZHANG
bc10573cdb [COURSE] Add USTC Principles and Techniques of Compiler (#671) 2024-10-21 12:53:09 +08:00
LynnGuo666
0f98fc26d8 [FIX] Fix the figure links in workflow section (#670) 2024-10-19 10:43:29 +08:00
GongNanyue
e72fc5826b [FIX] Fix the course link for CS229 (#661) 2024-09-14 00:08:45 +08:00
linzhuo
7aa439ae30 [FEATURE] Enable last commit time for each file (#658)
* update mkdoc

* enable last commit time for each markdown page
2024-09-10 21:16:31 +08:00
Yinmin Zhong
c72d325947 [FIX] Fix CS50 link in CS61A (#654) 2024-09-01 19:52:32 +08:00
Yinmin Zhong
bb10f49f62 [FIX] Fix the CS50 link in CS61A (#653) 2024-09-01 19:51:20 +08:00
mancuoj
627ee52f2f [ENHANCE] Add backup website for CS61A (#648) 2024-08-27 23:29:58 +08:00
rrxmzl
d109b9e26a [UPDATE] Update link to zlib (#649)
* Update tools.en.md, cuz zlib is updated

* zlib updates
2024-08-27 23:28:24 +08:00
Yinmin Zhong
c14a43a69f [FIX] Fix the English version of Github page (#650) 2024-08-27 23:26:34 +08:00
Mashirl
bf2a2103c3 [ENHANCE] CS61A: refine the lecture video links && add backup course link (#644)
* Remove useless arguments in the links

* 修正错误的链接标识

标识为spring2023的视频链接实际应为fall2020

* 增加课程网站的页面备份以供访问
2024-08-04 12:02:58 +08:00
Zijian Yi
dd23187134 [COURSE] Add KAIST CS420: Compiler Design (#632)
* [COURSE] Add KAIST CS420: Compiler Design

* fix: resolve comments
2024-07-22 11:52:36 +08:00
HairlessVillager
f5d2eb89c8 [FIX] fix typo: LaTex -> LaTeX (#639) 2024-07-22 11:51:35 +08:00
Kang
68bcd3bc58 [ENHANCE] Add resources for CS106B/X (#627)
* add markdown_extensions

* update CPP/CS106B

* fixs are made based on suggestions

---------

Co-authored-by: Andy-xiaokang <21777877404@qq.com>
2024-06-16 13:50:52 +08:00
ulic-youthlic
4a1932f3f0 [TOOL] Add remap tool for vim on Linux (#626)
* Update Vim.md

Add remap tools for linux (both wayland and x.org).

* Update Vim.md

fix newline
2024-06-15 22:03:34 +08:00
Ray Hong
631898ad68 [FIX] Fix typo in index.en.md (#620) 2024-06-05 15:22:19 +08:00
Yunkai Zhang
462bfb74bc [COURSE] Add Cambridge: Semantics of Programming Languages (#615)
* feat: added "semantics of programming languages" course

* fix: fixed format errors as suggested
2024-05-21 19:14:50 +08:00
WaterLemons2k
ffb877f089 [COURSE] MIT 6.031: Add more course website links (#612)
* [COURSE] MIT 6.031: Add spring 2022

Add spring 2022 course for MIT 6.031, cited in commit 31af417997.

* Remove extra whitespace
2024-05-14 11:29:19 +08:00
Yinmin Zhong
454ed96e2a [FIX] fix error in mkdocs.yml (#611) 2024-05-09 01:10:57 +08:00
KEMU XU
d750f063e5 [COURSE] Add MIT 6.092: Introduction To Programming In Java (#610)
* update the MIT 6.092: Introduction To Programming In Java course for Java programming in Programming Language section.

* update related information on docs/CS学习规划.en.md and docs/CS学习规划.md

* fixes are made based on suggestions
2024-05-08 11:47:55 +08:00
Yuichi
5dc50940c6 [UPDATE] Add the 2024 edition lab of AICS (#600)
* 为智能计算系统课程添加2024年新版实验描述及相关资源

* [UPDATE] Add the 2024 edition lab of AICS

* [UPDATE] Update the links
2024-05-07 13:18:35 +08:00
Yinmin Zhong
a9b0308e29 [UPDATE] Update video links with Chinese translation (#597)
* update index

* update new links
2024-04-14 17:33:21 +08:00
Yinmin Zhong
bbf17e3f21 [COURSE] Add CMU17-803 Empirical Methods (#596) 2024-04-14 15:57:28 +08:00
Yinmin Zhong
2f81e8ceaa [COURSE] Add CS110 System Principles course (#595)
* reorganize intro to system courses

* nits
2024-04-14 15:18:18 +08:00
Yinmin Zhong
7a320f474a [COURSE] Add PKU compiler practice course (#594)
* add PKU compiler practice course

* nits
2024-04-14 14:35:08 +08:00
Yinmin Zhong
4979ddabbe [UPDATE] Reorganize the intro to programming section (#593)
* reorganize intro to programming

* nits

* nits
2024-04-14 00:55:13 +08:00
Yinmin Zhong
b1f5acaa25 [COURSE] Add MIT6.1600 (#592) 2024-04-13 23:43:57 +08:00
浮心物语
25956200b5 [FIX] Fix a typo in workflow.md (#586) 2024-04-07 13:22:02 +08:00
Arthals
81e939f5f5 [UPDATE] Add lab notes for CSAPP (#585) 2024-04-06 22:49:09 +08:00
TekkenSteve
efb461bbc3 [COURSE] Add NJU Compiler Course (#579) 2024-03-31 16:26:19 +08:00
showlibia
bc8acc6f6e [FIX] change the URL of z-lib (#578)
Co-authored-by: showlibia <frunnever@gmail.com>
2024-03-14 21:02:18 +08:00
Zhang Chang
fa72ae978a [TOOLS] Add new tools (#577)
* Update tools.md

add free Synergy which A set of keyboard and mouse controls for multiple computers

* Update tools.en.md

add a set of keyboard and mouse controls for multiple computers
2024-03-14 10:50:48 +08:00
cyril
62354b874d [TOOLS] Add some programming tools (#573)
* add  programming resources to tools

* add programming resources to tools
2024-03-10 16:29:17 -10:00
HelloYJohn
94575581e2 [UPDATE] add MIT6.S081[.en].md text book translation (#568) 2024-02-24 16:45:41 +08:00
Boylees
eaa737c4ce [UPDATE] Add Bilibili link for DeCal course (#566)
添加了完整课程视频的B站链接
2024-02-21 20:06:27 +08:00
Ruslan
bdbd679fe9 [FIX] Fix a typo in CS50P (#558) 2024-01-27 19:45:35 +08:00
Guo Pengfei
39e703f424 [COURSE] Add USTC Graphics Course (#556)
* 添加USTC的图形学课程

* Update mkdocs.yml

* Update EECS498-007.md

* Update EECS498-007.en.md

* Update USTC ComputerGraphic.en.md

* Update USTC ComputerGraphic.md

* Update USTC ComputerGraphic.md

* Update and rename USTC ComputerGraphic.md to USTC ComputerGraphics.md

* Update and rename USTC ComputerGraphic.en.md to USTC ComputerGraphics.en.md

* Update USTC ComputerGraphics.en.md

* Update mkdocs.yml

* Update USTC ComputerGraphics.md

* Update USTC ComputerGraphics.md
2024-01-26 00:09:18 +08:00
ttzytt
7b77f119da [ENHANCE] Add reference blog for MIT6.S081 (#550) 2023-12-28 09:55:25 +08:00
142 changed files with 1881 additions and 296 deletions

View File

@@ -1,11 +1,31 @@
<div align="center" markdown="1">
<sup>Special thanks to:</sup>
<br>
<a href="https://opensource.automq.com">
<img alt="AutoMQ sponsorship" width="400" src="https://github.com/user-attachments/assets/3bfff2bc-8da2-4936-9354-8834a347a70c">
</a>
### [学了那么多分布式理论,“工业级”的代码长什么样?](https://opensource.automq.com)
[AutoMQ 带你深入一线代码,直观理解数据结构与分布式系统的工程实践。](https://opensource.automq.com)
<br>
</div>
---
<div align="center">
<img src=./docs/images/title.png >
</div>
# CS 自学指南
> *Everyone should enjoy CS if you have a good teacher to teach you a good course.*
> _Everyone should enjoy CS if you have a good teacher to teach you a good course._
<a href="https://trendshift.io/repositories/4643" target="_blank"><img src="https://trendshift.io/api/badge/repositories/4643" alt="PKUFlyingPig%2Fcs-self-learning | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
[![Website](https://img.shields.io/badge/website-csdiy.wiki-blue)](https://csdiy.wiki)
[![License](https://img.shields.io/github/license/PKUFlyingPig/cs-self-learning)](https://github.com/PKUFlyingPig/cs-self-learning/blob/master/LICENSE)
[![Issues](https://img.shields.io/github/issues/PKUFlyingPig/cs-self-learning)](https://github.com/PKUFlyingPig/cs-self-learning/issues)
[![Stars](https://img.shields.io/github/stars/PKUFlyingPig/cs-self-learning)](https://github.com/PKUFlyingPig/cs-self-learning)
@@ -18,7 +38,7 @@
但同时,自学这条路也有很多困难和阻力:课程繁多不知如何选择,资料零散甚至残缺,作业难度不知深浅,课内任务还需要花时间应付······这些主客观因素叠加到一起,使得好课虽多,却只能在收藏夹里吃灰。
在大学的第四个年头我想把这一路自学走来的经验和教训把那些让我受益终身的课程记录下来分享给大家形成了这本CS自学指南以期能给所有想自学计算机的朋友一点帮助。
在大学的第四个年头,我想把这一路自学走来的经验和教训,把那些让我受益终身的课程记录下来,分享给大家,形成了这本 CS 自学指南,以期能给所有想自学计算机的朋友一点帮助。
我的目标是让一个刚刚接触计算机的小白,可以完全凭借这些开源社区的优质资源,少走弯路,在 2-3 年内成长为一个有扎实的数学功底和代码能力,经历过数十个千行代码量的 Project 的洗礼,掌握至少 C/C++/Java/JS/Python/Go/Rust 等主流语言对算法、电路、体系、网络、操统、编译、人工智能、机器学习、计算机视觉、自然语言处理、强化学习、密码学、信息论、博弈论、数值分析、统计学、分布式、数据库、图形学、Web 开发、云服务、超算等等方面均有所涉猎的全能程序员。此后,无论是选择科研还是就业,我相信你都会有相当的竞争力。
@@ -26,7 +46,7 @@
## 如何成为贡献者
一个人的力量终究是有限的,对于书中任意章节你若有想要补充的内容,欢迎各位提出 [Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)。如果你想贡献一门新的课程,可以参考目前 repo 中的 [template](./template.md) 文件作为模版,并在 [mkdocs.yml](./mkdocs.yml) 文件中添加其navigation当然你还可以在 [CS 学习规划](./docs/CS学习规划.md) 里的对应模块为其添加言简意赅的导语。如果你有想推荐的书籍,请参考 [好书推荐](https://raw.githubusercontent.com/PKUFlyingPig/cs-self-learning/master/docs/%E5%A5%BD%E4%B9%A6%E6%8E%A8%E8%8D%90.md) 模块上方的注释按相应格式添加内容。
一个人的力量终究是有限的,对于书中任意章节你若有想要补充的内容,欢迎各位提出 [Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)。如果你想贡献一门新的课程,可以参考目前 repo 中的 [template](./template.md) 文件作为模版,并在 [mkdocs.yml](./mkdocs.yml) 文件中添加其 navigation当然你还可以在 [CS 学习规划](./docs/CS学习规划.md) 里的对应模块为其添加言简意赅的导语。如果你有想推荐的书籍,请参考 [好书推荐](https://raw.githubusercontent.com/PKUFlyingPig/cs-self-learning/master/docs/%E5%A5%BD%E4%B9%A6%E6%8E%A8%E8%8D%90.md) 模块上方的注释按相应格式添加内容。
对于中英混合排版的要点规范,可以参考[这个仓库](https://github.com/sparanoid/chinese-copywriting-guidelines/blob/master/README.zh-Hans.md),我们将会对您的 Pull Request 做相应的校对,具体原因参见这个 [issue](https://github.com/PKUFlyingPig/cs-self-learning/issues/114)。
@@ -45,6 +65,7 @@
## ✨ 鸣谢
特别感谢 @[AlfredThiel](https://github.com/AlfredThiel) 为项目制作了精美的 Logo。
<!-- support by https://contrib.rocks -->
<a href="https://github.com/PKUFlyingPig/cs-self-learning/graphs/contributors">
<img src="https://contrib.rocks/image?repo=PKUFlyingPig/cs-self-learning"/>

View File

@@ -141,28 +141,33 @@ As a computer science student, I often hear arguments about the uselessness of m
> Languages are tools, and you choose the right tool for the right job. Since there's no universally perfect tool, there's no universally perfect language.
#### Shell
#### General
- [MIT-Missing-Semester](编程入门/MIT-Missing-Semester.md)
- [Harvard CS50: This is CS50x](编程入门/C/CS50.md)
#### Java
- [MIT 6.092: Introduction To Programming In Java](编程入门/Java/MIT%206.092.md)
#### Python
- [CS50P: CS50's Introduction to Programming with Python](编程入门/CS50P.md)
- [Harvard CS50: This is CS50x](编程入门/CS50.md)
- [UCB CS61A: Structure and Interpretation of Computer Programs](编程入门/CS61A.md)
- [CS50P: CS50's Introduction to Programming with Python](编程入门/Python/CS50P.md)
- [UCB CS61A: Structure and Interpretation of Computer Programs](编程入门/Python/CS61A.md)
- [MIT6.100L: Introduction to CS and Programming using Python](编程入门/Python/MIT6.100L.md)
#### C++
- [Stanford CS106B/X: Programming Abstractions](编程入门/CS106B_CS106X.md)
- [Stanford CS106L: Standard C++ Programming](编程入门/CS106L.md)
- [Stanford CS106B/X: Programming Abstractions](编程入门/cpp/CS106B_CS106X.md)
- [Stanford CS106L: Standard C++ Programming](编程入门/cpp/CS106L.md)
#### Rust
- [Stanford CS110L: Safety in Systems Programming](编程入门/CS110L.md)
- [Stanford CS110L: Safety in Systems Programming](编程入门/Rust/CS110L.md)
#### OCaml
- [Cornell CS3110 textbook: Functional Programming in OCaml](https://cs3110.github.io/textbook/cover.html)
- [Cornell CS3110: OCaml Programming Correct + Efficient + Beautiful](编程入门/Functional/CS3110.md)
### Electronics Fundamentals
@@ -184,7 +189,7 @@ Signals and Systems is a course I find very worthwhile. Initially, I studied it
Algorithms are the core of computer science and the foundation for almost all professional courses. How to abstract real-world problems into algorithmic problems mathematically and solve them under time and memory constraints using appropriate data structures is the eternal theme of algorithm courses. If you are fed up with your teacher's rote teaching, I highly recommend UC Berkeley's [UCB CS61B: Data Structures and Algorithms](数据结构与算法/CS61B.md) and Princeton's [Coursera: Algorithms I & II](数据结构与算法/Algo.md). Both courses are taught in a deep yet simple manner and have rich and interesting programming experiments to integrate theory with knowledge.
Both of these courses are based on Java. If you prefer C/C++, you can refer to Stanford's data structure and basic algorithm course [Stanford CS106B/X: Programming Abstractions](编程入门/CS106B_CS106X.md). For those who prefer Python, you can learn MIT's introductory algorithm course [MIT 6.006: Introduction to Algorithms](数据结构与算法/6.006.md).
Both of these courses are based on Java. If you prefer C/C++, you can refer to Stanford's data structure and basic algorithm course [Stanford CS106B/X: Programming Abstractions](编程入门/cpp/CS106B_CS106X.md). For those who prefer Python, you can learn MIT's introductory algorithm course [MIT 6.006: Introduction to Algorithms](数据结构与算法/6.006.md).
For those interested in more advanced algorithms and NP problems, consider UC Berkeley's course on algorithm design and analysis [UCB CS170: Efficient Algorithms and Intractable Problems](数据结构与算法/CS170.md) or MIT's advanced algorithms course [MIT 6.046: Design and Analysis of Algorithms](数据结构与算法/6.046.md).
@@ -216,7 +221,7 @@ Computer systems are a vast and profound topic. Before delving into a specific a
[MIT6.033: System Engineering](http://web.mit.edu/6.033/www/) is MIT's introductory course to systems, covering topics like operating systems, networks, distributed systems, and system security. In addition to the theory, this course also teaches some writing and expression skills, helping you learn how to design, introduce, and analyze your own systems. The accompanying textbook *Principles of Computer System Design: An Introduction* is also very well written and recommended for reading.
[CMU 15-213: Introduction to Computer System](体系结构/CSAPP.md) is CMUs introductory systems course, covering architecture, operating systems, linking, parallelism, networks, etc., with both breadth and depth. The accompanying textbook *Computer Systems: A Programmer's Perspective* is also of very high quality and strongly recommended for reading.
[CMU 15-213: Introduction to Computer System](计算机系统基础/CSAPP.md) is CMUs introductory systems course, covering architecture, operating systems, linking, parallelism, networks, etc., with both breadth and depth. The accompanying textbook *Computer Systems: A Programmer's Perspective* is also of very high quality and strongly recommended for reading.
### Operating Systems
@@ -238,11 +243,13 @@ In recent years, the most common phrase heard in CS lectures is "Moore's Law is
#### 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
[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
@@ -252,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.
[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.
#### Practical Courses
@@ -272,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.
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
@@ -290,18 +294,14 @@ Berkeley, as the birthplace of the famous open-source database PostgreSQL, has i
### 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
[MIT web development course](Web开发/mitweb.md)
#### Systematic Study Version
[Stanford CS142: Web Applications](Web开发/CS142.md)
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).
### 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)
- [Games101](计算机图形学/GAMES101.md)
- [Games103](计算机图形学/GAMES103.md)
@@ -321,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).
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
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:
### Computer Vision
#### Computer Vision
- [UMich EECS 498-007 / 598-005: Deep Learning for Computer Vision](深度学习/EECS498-007.md)
- [Stanford CS231n: CNN for Visual Recognition](深度学习/CS231.md)
### Natural Language Processing
#### Natural Language Processing
- [Stanford CS224n: Natural Language Processing](深度学习/CS224n.md)
### Graph Neural Networks
#### Graph Neural Networks
- [Stanford CS224w: Machine Learning with Graphs](深度学习/CS224w.md)
### Reinforcement Learning
#### Reinforcement Learning
- [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
> Better to teach fishing than to give fish.
@@ -354,4 +369,4 @@ The course map above inevitably carries strong personal preferences and may not
- [MIT CS Course List](http://student.mit.edu/catalog/m6a.html): List of CS courses at MIT.
- [UC Berkeley EECS Course Map](https://hkn.eecs.berkeley.edu/courseguides): UC Berkeley's EECS curriculum plan, presenting the categories and prerequisites of various courses in a course map format, most of which are included in this book.
- [UC Berkeley CS Course List](https://www2.eecs.berkeley.edu/Courses/CS/): List of CS courses at UC Berkeley.
- [Stanford CS Course List](https://blog.csdn.net/qq_41220023/article/details/81976967): List of CS courses at Stanford.
- [Stanford CS Course List](https://blog.csdn.net/qq_41220023/article/details/81976967): List of CS courses at Stanford.

View File

@@ -30,7 +30,7 @@ IDE (Integrated Development Environment):集成开发环境,说白了就是
[CMake](必学工具/CMake.md):一款功能比 GNU Make 更为强大的构建工具,建议掌握 GNU Make 之后再加以学习。
[LaTex](必学工具/LaTeX.md)<del>逼格提升</del> 论文排版工具。
[LaTeX](必学工具/LaTeX.md)<del>逼格提升</del> 论文排版工具。
[Docker](必学工具/Docker.md):一款相较于虚拟机更轻量级的软件打包与环境部署工具。
@@ -141,28 +141,33 @@ IDE (Integrated Development Environment):集成开发环境,说白了就是
> Languages are tools, you choose the right tool to do the right thing. Since there's no universally perfect tool, there's no universally perfect language.
#### Shell
#### General
- [MIT-Missing-Semester](编程入门/MIT-Missing-Semester.md)
- [Harvard CS50: This is CS50x](编程入门/C/CS50.md)
#### Java
- [MIT 6.092: Introduction To Programming In Java](编程入门/Java/MIT%206.092.md)
#### Python
- [CS50P: CS50's Introduction to Programming with Python](编程入门/CS50P.md)
- [Harvard CS50: This is CS50x](编程入门/CS50.md)
- [UCB CS61A: Structure and Interpretation of Computer Programs](编程入门/CS61A.md)
- [CS50P: CS50's Introduction to Programming with Python](编程入门/Python/CS50P.md)
- [UCB CS61A: Structure and Interpretation of Computer Programs](编程入门/Python/CS61A.md)
- [MIT6.100L: Introduction to CS and Programming using Python](编程入门/Python/MIT6.100L.md)
#### C++
- [Stanford CS106B/X: Programming Abstractions](编程入门/CS106B_CS106X.md)
- [Stanford CS106L: Standard C++ Programming](编程入门/CS106L.md)
- [Stanford CS106B/X: Programming Abstractions](编程入门/cpp/CS106B_CS106X.md)
- [Stanford CS106L: Standard C++ Programming](编程入门/cpp/CS106L.md)
#### Rust
- [Stanford CS110L: Safety in Systems Programming](编程入门/CS110L.md)
- [Stanford CS110L: Safety in Systems Programming](编程入门/Rust/CS110L.md)
#### OCaml
- [Cornell CS3110 textbook: Functional Programming in OCaml](https://cs3110.github.io/textbook/cover.html)
- [Cornell CS3110: OCaml Programming Correct + Efficient + Beautiful](编程入门/Functional/CS3110.md)
### 电子基础
@@ -184,7 +189,7 @@ IDE (Integrated Development Environment):集成开发环境,说白了就是
算法是计算机科学的核心,也是几乎一切专业课程的基础。如何将实际问题通过数学抽象转化为算法问题,并选用合适的数据结构在时间和内存大小的限制下将其解决是算法课的永恒主题。如果你受够了老师的照本宣科,那么我强烈推荐伯克利的 [UCB CS61B: Data Structures and Algorithms](数据结构与算法/CS61B.md) 和普林斯顿的 [Coursera: Algorithms I & II](数据结构与算法/Algo.md),这两门课的都讲得深入浅出并且会有丰富且有趣的编程实验将理论与知识结合起来。
以上两门课程都是基于 Java 语言,如果你想学习 C/C++ 描述的版本,可以参考斯坦福的数据结构与基础算法课程 [Stanford CS106B/X: Programming Abstractions](编程入门/CS106B_CS106X.md)。偏好 Python 的同学可以学习 MIT 的算法入门课 [MIT 6.006: Introduction to Algorithms](数据结构与算法/6.006.md)
以上两门课程都是基于 Java 语言,如果你想学习 C/C++ 描述的版本,可以参考斯坦福的数据结构与基础算法课程 [Stanford CS106B/X: Programming Abstractions](编程入门/cpp/CS106B_CS106X.md)。偏好 Python 的同学可以学习 MIT 的算法入门课 [MIT 6.006: Introduction to Algorithms](数据结构与算法/6.006.md)
对一些更高级的算法以及 NP 问题感兴趣的同学可以学习伯克利的算法设计与分析课程 [UCB CS170: Efficient Algorithms and Intractable Problems](数据结构与算法/CS170.md) 或者 MIT 的高阶算法 [MIT 6.046: Design and Analysis of Algorithms](数据结构与算法/6.046.md)。
@@ -214,7 +219,7 @@ IDE (Integrated Development Environment):集成开发环境,说白了就是
[MIT6.033: System Engineering](http://web.mit.edu/6.033/www/) 是 MIT 的系统入门课,主题涉及了操作系统、网络、分布式和系统安全,除了知识点的传授外,这门课还会讲授一些写作和表达上的技巧,让你学会如何设计并向别人介绍和分析自己的系统。这本书配套的教材 *Principles of Computer System Design: An Introduction* 也写得非常好,推荐大家阅读。
[CMU 15-213: Introduction to Computer System](体系结构/CSAPP.md) 是 CMU 的系统入门课,内容覆盖了体系结构、操作系统、链接、并行、网络等等,兼具广度和深度,配套的教材 *Computer Systems: A Programmer's Perspective* 也是质量极高,强烈建议阅读。
[CMU 15-213: Introduction to Computer System](计算机系统基础/CSAPP.md) 是 CMU 的系统入门课,内容覆盖了体系结构、操作系统、链接、并行、网络等等,兼具广度和深度,配套的教材 *Computer Systems: A Programmer's Perspective* 也是质量极高,强烈建议阅读。
### 操作系统
@@ -236,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 中体会并行与分布式带来的随机性和复杂性。
### 系统安全
@@ -250,15 +255,11 @@ IDE (Integrated Development Environment):集成开发环境,说白了就是
[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/)是一项比较热门的系统安全比赛,赛题中会融会贯通地考察你对计算机各个领域知识的理解和运用。北大今年也成功举办了[第 0 届和第 1 届](https://geekgame.pku.edu.cn/),鼓励大家后期踊跃参与,在实践中提高自己。下面列举一些我平时学习(摸鱼)用到的资源:
掌握这些理论知识之后,还需要在实践中培养和锻炼这些“黑客素养”。[CTF 夺旗赛](https://ctf-wiki.org/)是一项比较热门的系统安全比赛,赛题中会融会贯通地考察你对计算机各个领域知识的理解和运用。北大每年会举办[相关赛事](https://geekgame.pku.edu.cn/),鼓励大家踊跃参与,在实践中提高自己。下面列举一些我平时学习(摸鱼)用到的资源:
- [CTF-wiki](https://ctf-wiki.org/)
- [CTF-101](https://ctf101.org/)
@@ -270,7 +271,7 @@ IDE (Integrated Development Environment):集成开发环境,说白了就是
大名鼎鼎的 [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/)。
### 数据库系统
@@ -284,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)
- [Games101](计算机图形学/GAMES101.md)
- [Games103](计算机图形学/GAMES103.md)
@@ -320,11 +315,13 @@ Berkeley 作为著名开源数据库 postgres 的发源地也不遑多让,[UCB
但上过这门课只能让你从宏观上对机器学习这一领域有一定了解,如果想真正理解那些“神奇”算法背后的数学原理甚至从事相关领域的科研工作,那么还需要一门更“数学”的课程,例如 [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) 课程。这门课打着机器学习的名号,却囊括了深度学习领域的几乎所有方向,非常全面,很适合你从宏观上对这个领域有一个大致的了解。而且老师本人也非常幽默,课堂金句频出。
当然因为深度学习领域发展非常迅速,已经拥有了众多研究分支,如果想要进一步深入,可以按需学习下面罗列的代表课程
当然因为深度学习领域发展非常迅速,已经拥有了众多研究分支,如果想要进一步深入,可以按需学习下面罗列的代表课程:
#### 计算机视觉
@@ -344,6 +341,17 @@ Berkeley 作为著名开源数据库 postgres 的发源地也不遑多让,[UCB
[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>
> 授人以鱼不如授人以渔。

View File

@@ -16,7 +16,7 @@ Although this course doesn't require prior knowledge of Javascript/HTML/CSS, the
This course also includes an introduction to and practices for Dialog Flow, a ChatBot development tool by Google. You can also find content related to UX development (on the practical side) in this course.
All course materials and assignments are open-source, but you will need to request an X-CS571-ID header from the instructor, Cole Nelson (ctnelson2@wisc.edu). The header will be necessary for API request. When sending an email, it is advisable to include a brief self-introduction. It is unclear whether the instructor is willing to give everyone an ID. If you got turned down, please [raise an issue for this GitHub repo](https://github.com/PKUFlyingPig/cs-self-learning/issues/new/choose).
According to the official website, CS 571 is open to everyone. You can request a Badger ID directly from the [webpage](https://cs571.org/auth) using your email address.
## Course Resources

View File

@@ -16,10 +16,10 @@
此外,本课程还对 Google 旗下的 ChatBot 开发工具 Dialog Flow 有较为深入的介绍和练习。还对 UX Design 的实用原则和技术有所讲解。
所有课程资料和作业都是开源的,但你需要向授课教师 Cole Nelson (ctnelson2@wisc.edu) 发送电子邮件以获取 X-CS571-ID。该 ID 是向 API 发送 request 必需。在发送邮件时建议附上自我介绍。目前还不清楚老师是否愿意给所有人提供ID如果老师表示无法分享请[在 GitHub repo 里提一个 issue](https://github.com/PKUFlyingPig/cs-self-learning/issues/new/choose)
根据官网信息CS 571 对所有人开放。你可以在[官网](https://cs571.org/auth)直接使用电子邮箱申请 Badger ID
## 课程资源
- 课程网站:<https://cs571.org>
- 课程视频请参考课程网站上标有“R”的链接
- 课程作业:请参考课程网站上的相关信息
- 课程作业:请参考课程网站上的相关信息

View File

@@ -10,10 +10,11 @@ It is also a gift to the young students at Peking University. It would be a grea
The book is currently organized to include the following sections (if you have other good suggestions, or would like to join the ranks of contributors, please feel free to email [zhongyinmin@pku.edu.cn](mailto:zhongyinmin@pku.edu.cn) or ask questions in the issue).
- User guide for this book: Given the numerous resources covered in this book, I have developed corresponding usage guides based on different people's free time and learning objectives.
- A reference CS learning plan: This is a comprehensive and systematic CS self-learning plan that I have formulated based on my own self-study experience.
- Productivity Toolkit: IDE, VPN, StackOverflow, Git, Github, Vim, Latex, GNU Make and so on.
- Environment configuration: PC/Server development environment setup, DevOps tutorials and so on.
- Book recommendations: Those who have read the CSAPP must have realized the importance of good books. I will list links to books and resources in different areas of Computer Science that I find rewarding to read.
- **List of high quality CS courses**: I will summarize all the high quality foreign CS courses I have taken into different categories and give relevant self-learning advice. Most of them will have a separate repository containing relevant resources as well as my homework/project implementations.
- **List of high quality CS courses**: I will summarize all the high quality foreign CS courses I have taken and the community contributed into different categories and give relevant self-learning advice. Most of them will have a separate repository containing relevant resources as well as the homework/project implementations.
## **The place where dreams start —— CS61A**
@@ -49,7 +50,7 @@ In my last college year, when I opened up my curriculum book, I realized that it
If you can build up the whole CS foundation in less than three years, have relatively solid mathematical skills and coding ability, experience dozens of projects with thousands of lines of code, master at least C/C++/Java/JS/Python/Go/Rust and other mainstream programming languages, have a good understanding of algorithms, circuits, architectures, networks, operating systems, compilers, artificial intelligence, machine learning, computer vision, natural language processing, reinforcement learning, cryptography, information theory, game theory, numerical analysis, statistics, distributed systems, parallel computing, database systems, computer graphics, web development, cloud computing, supercomputing etc. I think you will be confident enough to choose the area you are interested in, and you will be quite competitive in both industry and academia.
I firmly believe that if you have read to this line, you do not lack the ability and committment to learn CS well, you just need a good teacher to teach you a good course. And I will try my best to pick such courses for you, based on my three years of experience.
I firmly believe that if you have read to this line, you do not lack the ability and commitment to learn CS well, you just need a good teacher to teach you a good course. And I will try my best to pick such courses for you, based on my three years of experience.
## **Pros**

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) 🎉🎉**
这是一本计算机的自学指南,也是对自己大学三年自学生涯的一个纪念。
@@ -12,10 +12,11 @@
本书目前包括了以下部分(如果你有其他好的建议,或者想加入贡献者的行列,欢迎邮件 [zhongyinmin@pku.edu.cn](mailto:zhongyinmin@pku.edu.cn) 或者在 issue 里提问)
- 必学工具IDE, 翻墙, StackOverflow, Git, GitHub, Vim, LaTeX, GNU Make, 实用工具 ...
- 环境配置PC端以及服务器端开发环境配置、各类运维相关教材及资料 ...
- 经典书籍推荐:看过 CSAPP 这本书的同学一定感叹好书的重要,我将列举推荐自己看过的计算机领域的必看好书与资源链接
- **国外高质量 CS 课程汇总**:我将把我上过的所有高质量的国外 CS 课程分门别类进行汇总,并给出相关的自学建议,大部分课程都会有一个独立的仓库维护相关的资源以及我的作业实现
- 本书使用指南:由于书内涵盖资源众多,我根据不同人群的空闲时间和学习目标制定了对应的使用指南。
- 一份供参考的 CS 学习规划:我根据自己的自学经历制定的全面的、系统化的 CS 自学规划。
- 必学工具:一些 CSer 效率工具介绍,例如 IDE, 翻墙, StackOverflow, Git, GitHub, Vim, LaTeX, GNU Make, Docker, 工作流 等等
- 经典书籍推荐:你是否苦于教材的晦涩难懂不知所云?别从自己身上找原因了,可能只是教材写得太烂。看过 CSAPP 这本书的同学一定会感叹好书的重要,我将列举推荐各个计算机领域的必看好书与资源链接
- **国内外高质量 CS 课程汇总**:我将把我上过的以及开源社区贡献的**高质量**的国内外 CS 课程分门别类进行汇总,介绍其课程内容特点并给出相应的自学建议,大部分课程都会有一个独立的仓库维护相关的资源以及作业实现供大家学习参考。
## 梦开始的地方 —— CS61A
@@ -27,13 +28,13 @@
为避免有崇洋媚外之嫌,我单纯从一个学生的视角来讲讲自学 CS61A 的体验:
- 独立搭建的课程网站: 一个网站将所有课程资源整合一体,条理分明的课程 schedule、所有 slides, hw, discussion 的文件链接、详细明确的课程给分说明、历年的考试题与答案。这样一个网站抛开美观程度不谈,既方便学生,也让资源公正透明。
- 独立搭建的课程网站: 一个网站将所有课程资源整合一体,条理分明的课程 schedule、所有 slides, homework, discussion 的文件链接、详细明确的课程给分说明、历年的考试题与答案。这样一个网站抛开美观程度不谈,既方便学生,也让资源公正透明。
- 课程教授亲自编写的教材CS61A 这门课的开课老师将MIT的经典教材 *Structure and Interpretation of Computer Programs* (SICP) 用Python这门语言进行改编原教材基于 Scheme 语言),保证了课堂内容与教材内容的一致性,同时补充了更多细节,可以说诚意满满。而且全书开源,可以直接线上阅读。
- 课程教授亲自编写的教材CS61A 这门课的开课老师将 MIT 的经典教材 *Structure and Interpretation of Computer Programs* (SICP) 用Python这门语言进行改编原教材基于 Scheme 语言),保证了课堂内容与教材内容的一致性,同时补充了更多细节,可以说诚意满满。而且[全书开源](https://www.composingprograms.com/),可以直接线上阅读。
- 丰富到让人眼花缭乱的课程作业14 个 lab 巩固随堂知识点10 个 homework还有 4 个代码量均上千行的 project。与大家熟悉的 OJ 和 Word 文档式的作业不同,所有作业均有完善的代码框架,保姆级的作业说明。每个 Project 都有详尽的 handout 文档、全自动的评分脚本。CS61A 甚至专门开发了一个[自动化的作业提交评分系统](https://okpy.org/)(据说还发了论文)。当然,有人会说“一个 project 几千行代码大部分都是助教帮你写好的,你还能学到啥?”。此言差矣,作为一个刚刚接触计算机,连安装 Python 都磕磕绊绊的小白来说,这样完善的代码框架既可以让你专注于巩固课堂上学习到的核心知识点,又能有“我才学了一个月就能做一个小游戏了!”的成就感,还能有机会阅读学习别人高质量的代码,从而为自己所用。我觉得在低年级,这种代码框架可以说百利而无一害。唯一的害也许是苦了老师和助教,因为开发这样的作业可想而知需要相当的时间投入。
- 丰富到让人眼花缭乱的课程作业14 个 lab 巩固随堂知识点10 个 homework还有 4 个代码量均上千行的 project。与大家熟悉的 OJ 和 Word 文档式的作业不同,所有作业均有完善的代码框架,保姆级的作业说明。每个 Project 都有详尽的 handout 文档、全自动的评分脚本。CS61A 甚至专门开发了一个[自动化的作业提交评分系统](https://okpy.org/)(据说还发了论文)。当然,有人会说“一个 project 几千行代码大部分都是助教帮你写好的,你还能学到啥?”。此言差矣,作为一个刚刚接触计算机,连安装 Python 都磕磕绊绊的小白来说,这样完善的代码框架既可以让你专注于巩固课堂上学习到的核心知识点,又能有“我才学了一个月就能做一个小游戏了!”的成就感,还能有机会阅读学习别人高质量的代码,从而为自己所用。我觉得在低年级,这种代码框架可以说百利而无一害。是苦了老师和助教,因为开发这样的作业可想而知需要相当的时间投入和多年的迭代积累
- 每周 Discussion 讨论课助教会讲解知识难点和考试例题:类似于北京大学 ICS 的小班研讨,但习题全部用 LaTeX 撰写,相当规范且会明确给出 solution
- 每周 Discussion 讨论课助教会讲解知识难点和考试例题习题全部用 LaTeX 撰写,相当规范且会给出详细的解答,让学生及时查漏补缺巩固知识点
这样的课程,你完全不需要任何计算机的基础,你只需要努力、认真、花时间就够了。此前那种有劲没处使的感觉,那种付出再多时间却得不到回报的感觉,从此烟消云散。这太适合我了,我从此爱上了自学。
@@ -43,13 +44,13 @@
## 为什么写这本书
在我2020年秋季学期担任《深入理解计算机系统》CSAPP这门课的助教时我已经自学一年多了。这一年多来我无比享受这种自学模式为了分享这种快乐我为自己的小班同学做过一个 [CS自学资料整理仓库](https://github.com/PKUFlyingPig/Self-learning-Computer-Science)。当时纯粹是心血来潮,因为我也不敢公然鼓励大家翘课自学。
在我2020年秋季学期担任《深入理解计算机系统》CSAPP这门课的助教时我已经自学一年多了。这一年多来我无比享受这种自学模式为了分享这种快乐我为自己的研讨班学生做过一个 [CS自学资料整理仓库](https://github.com/PKUFlyingPig/Self-learning-Computer-Science)。当时纯粹是心血来潮,因为我也不敢公然鼓励大家翘课自学。
但随着又一年时间的维护,这个仓库的内容已经相当丰富,基本覆盖了计科、智能系、软工系的绝大多数课程,我也为每个课程都建了各自的 GitHub 仓库,汇总我用到的自学资料以及作业实现。
直到大四开始凑学分毕业的时候,我打开自己的培养方案,我发现它已经是我这个自学仓库的子集了,而这距离我开始自学也才两年半而已。于是,一个大胆的想法在我脑海中浮现:也许,我可以打造一个自学式的培养方案,把我这三年自学经历中遇到的坑、走过的路记录下来,以期能为后来的学弟学妹们贡献自己的一份微薄之力。
如果大家可以在三年不到的时间里就能建立起整座CS的基础大厦能有相对扎实的数学功底和代码能力经历过数十个千行代码量的 Project 的洗礼,掌握至少 C/C++/Java/JS/Python/Go/Rust 等主流语言对算法、电路、体系、网络、操统、编译、人工智能、机器学习、计算机视觉、自然语言处理、强化学习、密码学、信息论、博弈论、数值分析、统计学、分布式、数据库、图形学、Web开发、云服务、超算等等方面均有涉猎。我想你将有足够的底气和自信选择自己感兴趣的方向无论是就业还是科研你都将有相当的竞争力。
如果大家可以在三年不到的时间里就能建立起整座 CS 的基础大厦,能有相对扎实的数学功底和代码能力,经历过数十个千行代码量的 Project 的洗礼,掌握至少 C/C++/Java/JS/Python/Go/Rust 等主流语言对算法、电路、体系、网络、操统、编译、人工智能、机器学习、计算机视觉、自然语言处理、强化学习、密码学、信息论、博弈论、数值分析、统计学、分布式、数据库、图形学、Web开发、云服务、超算等等方面均有涉猎。我想你将有足够的底气和自信选择自己感兴趣的方向无论是就业还是科研你都将有相当的竞争力。
因为我坚信,既然你能坚持听我 BB 到这里,你一定不缺学好 CS 的能力,你只是没有一个好的老师,给你讲一门好的课程。而我,将力图根据我三年的体验,为你挑选这样的课程。
@@ -59,7 +60,7 @@
自学的另一大好处就是博采众长。计算机系的几大核心课程:体系、网络、操统、编译,每一门我基本都上过不同大学的课程,不同的教材、不同的知识点侧重、不同的 project 将会极大丰富你的视野,也会让你理解错误的一些内容得到及时纠正。
自学的第三个好处是时间自由,具体原因省略
自学的第三个好处是时间自由。大学的课余时间本就相对自由,再加上不用去上课的话更是可以放飞自我地安排自学时间和进度。我大二的时候赶上疫情在家窝了大半年,返校之后也基本没有线下去过教室上课,对绩点也毫无影响
## 自学的坏处
@@ -67,9 +68,9 @@
第一就是交流沟通的不便。我其实是一个很热衷于提问的人,对于所有没有弄明白的点,我都喜欢穷追到底。但当你面对着屏幕听到老师讲了一个你没明白的知识点的时候,你无法顺着网线到另一端向老师问个明白。我努力通过独立思考和善用 Google 来缓解这一点,但是,如果能有几个志同道合的伙伴结伴自学,那将是极好的。关于交流群的建立,大家可以参考仓库 `README` 中的教程。
第二就是这些自学的课程基本都是英文的。从视频到slides到作业全是英文,所以有一定的门槛。不过我觉得这个挑战如果你克服了的话对你是极为有利的。因为在当下,虽然我很不情愿,但也不得不承认,在计算机领域,很多优质的文档、论坛、网站都是英文。养成英文阅读的习惯,在赤旗插遍世界之前,还是有一定好处的(狗头保命)。
第二就是这些自学的课程基本都是英文的。从视频到课件再到作业全是英文,所以有一定的门槛。我尽量在汇总课程视频资源的时候寻找带中文字幕的搬运视频,但大多数课程还是只有机翻或者生肉,而课件和作业肯定都是英文的。不过我觉得这是个值得努力克服的挑战,因为在当下,虽然我很不情愿,但也不得不承认,在计算机领域,很多优质的文档、论坛、网站都是英文居多。养成英文阅读的习惯,在赤旗插遍世界之前,还是有一定好处的(狗头保命)。
第三,也是我觉得最困难的一点,就是自律。因为没有 DDL 有时候真的是一件可怕的事情特别是随着学习的深入,国外的很多课程是相当虐的。你得有足够的驱动力强迫自己静下心来,阅读几十页的 Project Handout理解上千行的代码框架忍受数个小时的 debug 时光。而这一切,没有学分,没有绩点,没有老师,没有同学,只有一个信念 —— 你在变强。
第三,也是我觉得最困难的一点,就是自律。因为没有 DDL 有时候真的是一件可怕的事情特别是随着学习的深入,国外的很多课程是相当虐的。你得有足够的驱动力强迫自己静下心来,阅读几十页的 Project Handout理解上千行的代码框架忍受数个小时的 debug 时光。而这一切,没有学分,没有绩点,没有老师,没有同学,只有一个信念 —— 你在变强。
## 这本书适合谁
@@ -79,7 +80,7 @@
## 特别鸣谢
在这里我怀着崇敬之心真诚地感谢所有将课程资源无偿开源的各位教授们。这些课程倾注了他们数十年教学生涯的积淀和心血他们却选择无私地让所有人享受到如此高质量的CS教育。没有他们我的大学生活不会这样充实而快乐。很多教授在我给他们发了感谢邮件之后甚至会回复上百字的长文真的让我无比感动。他们也时刻激励着我做一件事就得用心做好无论是科研还是为人。
在这里,我怀着崇敬之心真诚地感谢所有将课程资源无偿开源的各位教授们。这些课程倾注了他们数十年教学生涯的积淀和心血,他们却选择无私地让所有人享受到如此高质量的 CS 教育。没有他们,我的大学生活不会这样充实而快乐。很多教授在我给他们发了感谢邮件之后,甚至会回复上百字的长文,真的让我无比感动。他们也时刻激励着我,做一件事,就得用心做好,无论是学习、科研还是为人。
## 你也想加入到贡献者的行列
@@ -87,7 +88,7 @@
## 关于交流群的建立
方法参见仓库的 `README.md`
本书支持页面评论功能因此如果你想自学某课程可以自己建立群聊后QQ 微信皆可)在对应的课程页面下方发表评论,注明你的学习目标以及加入交流群的途径。此外,过去已有不少朋友在 issue 里建立了类似群聊,可以自行选择直接加入
## 请作者喝杯下午茶

View File

@@ -10,11 +10,11 @@
伯克利的人工智能入门课,课程 notes 写得非常深入浅出,基本不需要观看课程视频。课程内容的安排基本按照人工智能的经典教材 *Artificial intelligence: A Modern Approach* 的章节顺序,覆盖了搜索剪枝、约束满足问题、马尔可夫决策过程、强化学习、贝叶斯网络、隐马尔可夫模型以及基础的机器学习和神经网络的相关内容。
2018年秋季学期的版本免费开放了 gradescope大家可以在线完成书面作业并实时得到测评结果。同时课程的 6 个 Project 也是质量爆炸,复现了经典的 Packman吃豆人小游戏会让你利用学到的 AI 知识,去实现相关算法,让你的吃豆人在迷宫里自由穿梭,躲避鬼怪,收集豆子。
目前Spring 2024是最新一期视频与资料完整、开放了旁听gradescope的版本,大家可以在线完成书面作业并实时得到测评结果。同时课程的 6 个 Project 也是质量爆炸,复现了经典的 Packman吃豆人小游戏会让你利用学到的 AI 知识,去实现相关算法,让你的吃豆人在迷宫里自由穿梭,躲避鬼怪,收集豆子。
## 课程资源
- 课程网站:[Fall 2022](https://inst.eecs.berkeley.edu/~cs188/fa22/)[Fall 2018](https://inst.eecs.berkeley.edu/~cs188/fa18/index.html)
- 课程视频:[Fall 2022](https://inst.eecs.berkeley.edu/~cs188/fa22/)[Fall 2018](https://inst.eecs.berkeley.edu/~cs188/fa18/index.html)每节课的链接详见课程网站
- 课程网站:[Spring 2024](https://inst.eecs.berkeley.edu/~cs188/sp24/)
- 课程视频:每节课的链接详见课程网站
- 课程教材Artificial intelligence: A Modern Approach
- 课程作业:在线测评书面作业和 Projects详见课程网站

View File

@@ -12,10 +12,10 @@ A very basic introductory AI course, what makes it stand out is the 12 well-desi
## Course Resources
- Course Website: <https://cs50.harvard.edu/ai/2020/>
- Recordings: <https://cs50.harvard.edu/ai/2020/>
- Course Website: [2024](https://cs50.harvard.edu/ai/2024/)、[2020](https://cs50.harvard.edu/ai/2020/)
- Recordings: [2024](https://cs50.harvard.edu/ai/2024/)、[2020](https://cs50.harvard.edu/ai/2020/)
- Textbooks: No textbook is needed in this course.
- Assignments: <https://cs50.harvard.edu/ai/2020/> with 12 programming labs of high quality mentioned above.
- Assignments: [2024](https://cs50.harvard.edu/ai/2024/)、[2020](https://cs50.harvard.edu/ai/2020/) with 12 programming labs of high quality mentioned above.
## Personal Resources

View File

@@ -12,10 +12,10 @@
## 课程资源
- 课程网站:<https://cs50.harvard.edu/ai/2020/>
- 课程视频:<https://cs50.harvard.edu/ai/2020/>
- 课程网站:[2024](https://cs50.harvard.edu/ai/2024/)、[2020](https://cs50.harvard.edu/ai/2020/)
- 课程视频:[2024](https://cs50.harvard.edu/ai/2024/)、[2020](https://cs50.harvard.edu/ai/2020/)
- 课程教材:无
- 课程作业:<https://cs50.harvard.edu/ai/2020/>12个精巧的编程作业
- 课程作业:[2024](https://cs50.harvard.edu/ai/2024/)、[2020](https://cs50.harvard.edu/ai/2020/)12个精巧的编程作业
## 资源汇总

View File

@@ -0,0 +1,24 @@
# Neural Networks: Zero to Hero
## Description
- **Instructor:** Andrej Karpathy
- **Prerequisites:** Basic Python programming and some familiarity with deep learning concepts
- **Programming Language:** Python
- **Difficulty:** 🌟🌟🌟🌟
- **Class Hours:** Approximately 19 hours
This hands-on deep learning course, taught by Andrej Karpathy, provides a detailed and intuitive introduction to neural networks and their underlying principles. The course starts with foundational concepts such as backpropagation and micrograd before progressing to building language models, WaveNets, and GPT from scratch. The emphasis is on practical implementation, with step-by-step coding explanations to help students understand and build complex models from the ground up.
## Instructor Information
Andrej Karpathy is a renowned AI researcher and educator with extensive experience in deep learning and neural networks. He was the **Senior Director of AI at Tesla**, leading the **computer vision team for Tesla Autopilot** from 2017 to 2022. Prior to that, he was a **research scientist and founding member at OpenAI** (2015-2017). In 2023, he returned to OpenAI, contributing to improvements in GPT-4 for ChatGPT. In 2024, he founded **Eureka Labs**, an AI+Education company.
Karpathy holds a **PhD from Stanford University**, where he worked on convolutional and recurrent neural networks with **Fei-Fei Li**. He has collaborated with leading AI researchers, including **Daphne Koller, Andrew Ng, Sebastian Thrun, and Vladlen Koltun**. He also taught the first deep learning course at Stanford, **CS 231n: Convolutional Neural Networks for Visual Recognition**, which became one of the largest classes at the university.
## Course Resources
- **Lecture Videos:** [YouTube Playlist](https://www.youtube.com/watch?v=VMj-3S1tku0&list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ)
- **Assignments:** Self-guided projects and code implementation exercises available throughout the lectures
For more information, watch the full playlist on YouTube.

View File

@@ -0,0 +1,24 @@
# 神经网络:从零到英雄
## 课程简介
- **讲师:** Andrej Karpathy
- **先修要求:** 具备基本的 Python 编程能力,并对深度学习概念有所了解
- **编程语言:** Python
- **难度:** 🌟🌟🌟🌟
- **课程时长:** 约 19 小时
本课程由 Andrej Karpathy 讲授,是一个深入浅出的深度学习课程,旨在帮助学习者掌握神经网络的核心原理。课程从基础概念(如反向传播和 micrograd入手逐步带领学员构建语言模型、WaveNet并从零开始实现 GPT。课程以实践为主提供逐步讲解的代码示例让学员能够理解并构建复杂的神经网络模型。
## 讲师信息
Andrej Karpathy 是一位知名的人工智能研究员和教育者,在深度学习和神经网络领域具有丰富的经验。他曾在 **2017 至 2022 年担任特斯拉 AI 部门高级总监**,领导 **Tesla Autopilot 计算机视觉团队**,负责数据标注、神经网络训练、部署等工作。在此之前,他曾是 **OpenAI 的研究科学家和创始成员**2015-2017。2023 年,他回归 OpenAI参与改进 ChatGPT 的 GPT-4。2024 年,他创立了 **Eureka Labs**,一家专注于 AI + 教育的公司。
Karpathy 拥有 **斯坦福大学博士学位**,师从 **Fei-Fei Li李飞飞**,主要研究卷积神经网络和循环神经网络及其在计算机视觉和自然语言处理中的应用。他曾与 **Daphne Koller、Andrew Ng吴恩达、Sebastian Thrun 和 Vladlen Koltun** 等知名研究员合作。此外,他还在斯坦福大学教授了首个深度学习课程 **CS 231n: 卷积神经网络与视觉识别**,该课程逐渐发展为斯坦福大学规模最大的课程之一。
## 课程资源
- **课程视频:** [YouTube 播放列表](https://www.youtube.com/watch?v=VMj-3S1tku0&list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ)
- **作业:** 课程中提供的代码实践和项目练习
更多信息请访问 YouTube 观看完整课程视频。

View File

@@ -16,11 +16,15 @@ In a word, this is the best computer architecture course I have ever taken.
## Course Resources
- Course Website: <https://cs61c.org/su20/>
- Recordings: [Youtube](https://www.youtube.com/playlist?list=PLDoI-XvXO0aqgoMQvogzmf7CKiSMSUS3M)
- Textbook: None
- Assignments: 11 Labs, 4 Projects, the course website has specific requirements.
- [Course Website](https://cs61c.org/)
- Course Website (Backup): [Fa24-WayBack Machine](https://web.archive.org/web/20241219154359/https://cs61c.org/fa24/), [Fa20-WayBack Machine](https://web.archive.org/web/20220120134001/https://inst.eecs.berkeley.edu/~cs61c/fa20/), [Fa20-Backup](https://www.learncs.site/docs/curriculum-resource/cs61c/syllabus)
- Recordings: [Su20-Bilibili](https://www.bilibili.com/video/BV1fC4y147iZ/?share_source=copy_web&vd_source=7c3823b46a52fbbef42b79e01d55c300), [Su20-Youtube](https://youtube.com/playlist?list=PLDoI-XvXO0aqgoMQvogzmf7CKiSMSUS3M&si=62aaH5a_PMGrAT2Y), [Fa20-Bilibili](https://www.bilibili.com/video/BV17b42177VG/?share_source=copy_web&vd_source=7c3823b46a52fbbef42b79e01d55c300), [Fa20-Youtube](https://youtube.com/playlist?list=PL0j-r-omG7i0-mnsxN5T4UcVS1Di0isqf&si=CG1EjQiPcw7r7Vs4)
- Assignments: [Fa20-Backup](https://github.com/InsideEmpire/CS61C-Assignment#)
## Personal Resources
All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPig/CS61C-summer20 - GitHub](https://github.com/PKUFlyingPig/CS61C-summer20).
All the resources and assignments used by @InsideEmpire in this course are maintained in [@InsideEmpire/CS61C-fall20 - GitHub](https://github.com/InsideEmpire/CS61C-PathwayToSuccess).
All the resources and assignments used by @RisingUppercut in this course are maintained in [@RisingUppercut/CS61C-fall24 - GitHub](https://github.com/RisingUppercut/CS61C_2024_Fall).

View File

@@ -19,11 +19,15 @@
## 课程资源
- 课程网站<https://cs61c.org/su20/>
- 课程视频:[B 站](https://www.bilibili.com/video/BV1fC4y147iZ), [Youtube](https://www.youtube.com/playlist?list=PLDoI-XvXO0aqgoMQvogzmf7CKiSMSUS3M)
- 课程教材:无
- 课程作业11 个 Lab4 个 Project具体要求详见课程网站
- [课程网站](https://cs61c.org/)
- 课程网站 (页面备份): [Fa24-WayBack Machine](https://web.archive.org/web/20241219154359/https://cs61c.org/fa24/), [Fa20-WayBack Machine](https://web.archive.org/web/20220120134001/https://inst.eecs.berkeley.edu/~cs61c/fa20/), [Fa20-备份](https://www.learncs.site/docs/curriculum-resource/cs61c/syllabus)
- 课程视频: [Su20-Bilibili](https://www.bilibili.com/video/BV1fC4y147iZ/?share_source=copy_web&vd_source=7c3823b46a52fbbef42b79e01d55c300), [Su20-Youtube](https://youtube.com/playlist?list=PLDoI-XvXO0aqgoMQvogzmf7CKiSMSUS3M&si=62aaH5a_PMGrAT2Y), [Fa20-Bilibili](https://www.bilibili.com/video/BV17b42177VG/?share_source=copy_web&vd_source=7c3823b46a52fbbef42b79e01d55c300), [Fa20-Youtube](https://youtube.com/playlist?list=PL0j-r-omG7i0-mnsxN5T4UcVS1Di0isqf&si=CG1EjQiPcw7r7Vs4)
- 课程作业: [Fa20-备份](https://github.com/InsideEmpire/CS61C-Assignment#)
## 资源汇总
@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPig/CS61C-summer20 - GitHub](https://github.com/PKUFlyingPig/CS61C-summer20) 中。
@InsideEmpire 在学习这门课中用到的所有资源和作业实现都汇总在 [@InsideEmpire/CS61C-fall20 - GitHub](https://github.com/InsideEmpire/CS61C-PathwayToSuccess) 中。
@RisingUppercut 在学习这门课中用到的所有资源和作业实现都汇总在 [@RisingUppercut/CS61C-fall24 - GitHub](https://github.com/RisingUppercut/CS61C_2024_Fall) 中。

View File

@@ -14,7 +14,7 @@ After procedural programming, the second semester of the freshman year usually i
Second, try to learn some productivity-enhancing tools and skills, such as Git, Shell, Vim. I strongly recommend the [MIT missing semester](编程入门/MIT-Missing-Semester.md) course. Initially, you may feel awkward, but force yourself to use them, and your development efficiency will skyrocket. Additionally, many applications can greatly increase your productivity. A rule of thumb is: any action that requires your hands to leave the keyboard should be eliminated. For example, switching applications, opening files, browsing the web - there are plugins for these (like [Alfred](https://www.alfredapp.com/) for Mac). If you find an daily operation that takes more than 1 second, try to reduce it to 0.1 seconds. After all, you'll be dealing with computers for decades, so forming a smooth workflow can greatly enhance efficiency. Lastly, learn to touch type! If you still need to look at the keyboard while typing, find a tutorial online and learn to type without looking. This will significantly increase your development efficiency.
Third, balance coursework and self-learning. We feel angry about the institution but must also follow the rules, as GPA is still important for postgraduate recommendations. Therefore, in the first year, I suggest focusing on the curriculum, complemented by high-quality extracurricular resources. For example, for calculus and linear algebra, refer to [MIT 18.01/18.02](./数学基础/MITmaths.md) and [MIT 18.06](./数学基础/MITLA.md). During holidays, learn Python through [UCB CS61A](./编程入门/CS61A.md). Also, focus on good programming habits and practical skills mentioned above. From my experience, mathematics courses matter a lot for your GPA in the first year, and the content of math exams varies greatly between different schools and teachers. Self-learning might help you understand the essence of mathematics, but it may not guarantee good grades. Therefore, its better to specifically practice past exams.
Third, balance coursework and self-learning. We feel angry about the institution but must also follow the rules, as GPA is still important for postgraduate recommendations. Therefore, in the first year, I suggest focusing on the curriculum, complemented by high-quality extracurricular resources. For example, for calculus and linear algebra, refer to [MIT 18.01/18.02](./数学基础/MITmaths.md) and [MIT 18.06](./数学基础/MITLA.md). During holidays, learn Python through [UCB CS61A](./编程入门/Python/CS61A.md). Also, focus on good programming habits and practical skills mentioned above. From my experience, mathematics courses matter a lot for your GPA in the first year, and the content of math exams varies greatly between different schools and teachers. Self-learning might help you understand the essence of mathematics, but it may not guarantee good grades. Therefore, its better to specifically practice past exams.
In your sophomore year, as computer science courses become the majority, you can fully immerse yourself in self-learning. Refer to [A Reference Guide for CS Learning](./CS学习规划.md), a guide I created based on three years of self-learning, introducing each course and its importance. For every course in your curriculum, this guide should have a corresponding one, and I believe they are of higher quality. If there are course projects, try to adapt labs or projects from these self-learning courses. For example, I took an operating systems course and found the teacher was still using experiments long abandoned by UC Berkeley, so I emailed the teacher to switch to the [MIT 6.S081](./操作系统/MIT6.S081.md) xv6 Project I was studying. This allowed me to self-learn while inadvertently promoting curriculum reform. In short, be flexible. Your goal is to master knowledge in the most convenient and efficient way. Anything that contradicts this goal can be “fudged” as necessary. With this attitude, after my junior year, I barely attended offline classes (I spent most of my sophomore year at home due to the pandemic), and it had no impact on my GPA.
@@ -30,7 +30,7 @@ If you have graduated and started postgraduate studies, or have begun working, o
| Data Structures and Algorithms | [Coursera: Algorithms I & II](数据结构与算法/Algo.md) |
| Software Engineering | [MIT 6.031: Software Construction](软件工程/6031.md) |
| Full-Stack Development | [MIT Web Development Course](Web开发/mitweb.md) |
| Introduction to Computer Systems | [CMU CS15213: CSAPP](Web开发/mitweb.md) |
| Introduction to Computer Systems | [CMU CS15213: CSAPP](计算机系统基础/CSAPP.md) |
| Introductory System Architecture | [Coursera: Nand2Tetris](体系结构/N2T.md) |
| Advanced System Architecture | [CS61C: Great Ideas in Computer Architecture](体系结构/CS61C.md) |
| Principles of Databases | [CMU 15-445: Introduction to Database Systems](数据库系统/15445.md) |

View File

@@ -12,9 +12,9 @@
学过面向过程编程后,大一下学期一般会讲面向对象编程(例如 C++ 或 Java。这里非常推荐大家看 [MIT 6.031: Software Construction](./软件工程/6031.md) 这门课的 Notes会以 Java 语言22年改用了 TypeScript 语言)为例非常详细地讲解如何写出“优雅”的代码。例如 Test-Driven 的开发、函数 Specification 的设计、异常的处理等等等等。除此之外,既然接触了面向对象,那么了解一些常见的设计模式也是很有必要的。因为国内的面向对象课程同样很容易变成极其无聊的语法课,让学生纠结于各种继承的语法,甚至出一些无聊的脑筋急转弯一样的题目,殊不知这些东西在地球人的开发中基本不会用到。面向对象的精髓是让学生学会自己将实际的问题抽象成若干类和它们之间的关系,而设计模式则是前人总结出来的一些精髓的抽象方法。这里推荐[大话设计模式](https://book.douban.com/subject/2334288/) 这本书,写得非常浅显易懂。
其二就是尝试学习一些能提高生产力的工具和技能,例如 Git、Shell、Vim。这里强烈推荐学习 [MIT missing semester](./编程入门/MIT-Missing-Semester.md) 这门课,也许一开始接触这些工具用起来会很不习惯,但强迫自己用,熟练之后开发效率会直线提高。此外,还有很多应用也能极大提高你生产力。一条定律是:一切需要让手离开键盘的操作,都应该想办法去除。例如切换应用、打开文件、浏览网页这些都有相关插件可以实现快捷操作(例如 Mac 上的 [Alfred](https://www.alfredapp.com/)。如果你发现某个操作每天都会用到并且用时超过1秒那就应该想办法把它缩减到0.1秒。毕竟以后数十年你都要和电脑打交道,形成一套顺滑的工作流是事半功倍的。最后,学会盲打!如果你还需要看着键盘打字,那么赶紧上网找个教程学会盲打,这将极大提高你的开发效率。
其二就是尝试学习一些能提高生产力的工具和技能,例如 Git、Shell、Vim。这里强烈推荐学习 [MIT missing semester](./编程入门/MIT-Missing-Semester.md) 这门课,也许一开始接触这些工具用起来会很不习惯,但强迫自己用,熟练之后开发效率会直线提高。此外,还有很多应用也能极大提高你生产力。一条定律是:一切需要让手离开键盘的操作,都应该想办法去除。例如切换应用、打开文件、浏览网页这些都有相关插件可以实现快捷操作(例如 Mac 上的 [Alfred](https://www.alfredapp.com/)。如果你发现某个操作每天都会用到并且用时超过1秒那就应该想办法把它缩减到0.1秒。毕竟以后数十年你都要和电脑打交道,形成一套顺滑的工作流是事半功倍的。最后,学会盲打!如果你还需要看着键盘打字,那么赶紧上网找个教程学会盲打,这将极大提高你的开发效率。
其三就是平衡好课内和自学。我们质疑现状,但也得遵守规则,毕竟绩点在保研中还是相当重要的。因此在大一,我还是建议大家尽量按照自己的课表学习,但辅以一些优质的课外资源。例如微积分线代可以参考 [MIT 18.01/18.02](./数学基础/MITmaths.md) 和 [MIT 18.06](./数学基础/MITLA.md) 的课程 Notes。假期可以通过 [UCB CS61A](./编程入门/CS61A.md) 来学习 Python。同时做到上面第一、第二点说的注重好的编程习惯和实践能力的培养。就个人经验大一的数学课学分占比相当大而且数学考试的内容方差是很大的不同学校不同老师风格迥异自学也许能让你领悟数学的本质但未必能给你一个好成绩。因此考前最好有针对性地刷往年题充分应试。
其三就是平衡好课内和自学。我们质疑现状,但也得遵守规则,毕竟绩点在保研中还是相当重要的。因此在大一,我还是建议大家尽量按照自己的课表学习,但辅以一些优质的课外资源。例如微积分线代可以参考 [MIT 18.01/18.02](./数学基础/MITmaths.md) 和 [MIT 18.06](./数学基础/MITLA.md) 的课程 Notes。假期可以通过 [UCB CS61A](./编程入门/Python/CS61A.md) 来学习 Python。同时做到上面第一、第二点说的注重好的编程习惯和实践能力的培养。就个人经验大一的数学课学分占比相当大而且数学考试的内容方差是很大的不同学校不同老师风格迥异自学也许能让你领悟数学的本质但未必能给你一个好成绩。因此考前最好有针对性地刷往年题充分应试。
在升入大二之后,计算机方向的专业课将居多,此时大家可以彻底放飞自我,进入自学的殿堂了。具体可以参考 [一份仅供参考的CS学习规划](./CS学习规划.md),这是我根据自己三年自学经历总结提炼出来的全套指南,每门课的特点以及为什么要上这门课我都做了简单的介绍。对于你课表上的每个课程,这份规划里应该都会有相应的国外课程,而且在质量上我相信基本是全方位的碾压。由于计算机方向的专业知识基本是一样的,而且高质量的课程会让你从原理上理解知识点,对于国内大多照本宣科式的教学来说基本是降维打击。一般来说只要考前将老师“辛苦”念了一学期的 PPT 拿来突击复习两天,取得一个不错的卷面分数并不困难。如果有课程大作业,则可以尽量将国外课程的 Lab 或者 Project 修改一番以应付课内的需要。我当时上操作系统课,发现老师还用着早已被国外学校淘汰的课程实验,便邮件老师换成了自己正在学习的 [MIT 6.S081](./操作系统/MIT6.S081.md) 的 xv6 Project方便自学的同时还无意间推动了课程改革。总之灵活变通是第一要义你的目标是用最方便、效率最高的方式掌握知识所有与你这一目标违背的所谓规定都可以想方设法地去“糊弄”。凭着这份糊弄劲儿我大三之后基本没有去过线下课堂大二疫情在家呆了大半年对绩点也完全没有影响。
@@ -30,7 +30,7 @@
|数据结构与算法 |[Coursera: Algorithms I & II](数据结构与算法/Algo.md)|
|软件工程 |[MIT 6.031: Software Construction](软件工程/6031.md)|
|全栈开发 |[MIT web development course](Web开发/mitweb.md)|
|计算机系统导论 |[CMU CS15213: CSAPP](./体系结构/CSAPP.md)|
|计算机系统导论 |[CMU CS15213: CSAPP](计算机系统基础/CSAPP.md)|
|体系结构入门 |[Coursera: Nand2Tetris](./体系结构/N2T.md) |
|体系结构进阶 |[CS61C: Great Ideas in Computer Architecture](./体系结构/CS61C.md)|
|数据库原理 |[CMU 15-445: Introduction to Database System](数据库系统/15445.md)|
@@ -44,4 +44,4 @@
随着贡献者的不断增多,左侧的目录中将不断增加新的分支,例如 **机器学习进阶****机器学习系统**。并且同一个分支下都有若干同类型课程,它们来自不同的学校,有着不同的侧重点和课程实验,例如 **操作系统** 分支下就包含了麻省理工、伯克利、南京大学还有哈工大四所学校的课程。如果你想深耕一个领域,那么学习这些同类的课程会给你不同的视角来看待类似的知识。同时,本书作者还计划联系一些相关领域的科研工作者来分享某个细分领域的科研学习路径,让 CS自学指南 在追求广度的同时,实现深度上的提高。
如果你想贡献这方面的内容,欢迎和作者邮件联系 [zhongyinmin@pku.edu.cn](mailto:zhongyinmin@pku.edu.cn)
如果你想贡献这方面的内容,欢迎和作者邮件联系 [zhongyinmin@pku.edu.cn](mailto:zhongyinmin@pku.edu.cn)

View File

@@ -10,7 +10,7 @@
先中文后英文,同种语言先开源后闭源,最后按从基础到深入或者字母序。
-->
由于版权原因,下面列举的图书中除了开源资源提供了链接,其他的资源请大家自行通过 [libgen](http://libgen.is/) 或 [z-lib](https://z-lib.org/) 查找。
由于版权原因,下面列举的图书中除了开源资源提供了链接,其他的资源请大家自行通过 [libgen](http://libgen.is/) 查找。
## 资源汇总
@@ -34,6 +34,7 @@
- [Operating Systems: Three Easy Pieces](https://pages.cs.wisc.edu/~remzi/OSTEP/) [[豆瓣](https://book.douban.com/subject/19973015/)]
- Modern Operating Systems [[豆瓣](https://book.douban.com/subject/27096665/)]
- Operating Systems: Principles and Practice [[豆瓣](https://book.douban.com/subject/25984145/)]
- [Operating Systems: Internals and Design Principles](https://elibrary.pearson.de/book/99.150005/9781292214306) [[豆瓣](https://book.douban.com/subject/6047741/)]
## 计算机网络
@@ -70,8 +71,7 @@
## 体系结构
- 超标量处理器设计: Superscalar RISC Processor Design [[豆瓣](https://book.douban.com/subject/26293546/)]
- Computer Organization and Design RISC-V Edition [[豆瓣](https://book.douban.com/subject/27103952/)]
- Computer Organization and Design: The Hardware/Software Interface [[豆瓣](https://book.douban.com/subject/26604008/)]
- Computer Organization and Design: The Hardware/Software Interface [[MIPS Edition](https://book.douban.com/subject/35998323/)][[ARM Edition](https://book.douban.com/subject/30443432/)][[RISC-V Edition](https://book.douban.com/subject/36490912/)]
- Computer Architecture: A Quantitative Approach [[豆瓣](https://book.douban.com/subject/6795919/)]
## 理论计算机科学
@@ -118,6 +118,7 @@
## 深度学习
- 深度学习 [[豆瓣](https://book.douban.com/subject/27087503/)][[Github](https://github.com/exacity/deeplearningbook-chinese)]
- [动手学深度学习](https://zh.d2l.ai) [[豆瓣](https://book.douban.com/subject/33450010/)]
- [神经网络与深度学习](https://nndl.github.io/) [[豆瓣](https://book.douban.com/subject/35044046/)]
- 深度学习入门 [[豆瓣](https://book.douban.com/subject/30270959/)]

View File

@@ -14,8 +14,8 @@ The goal of this course is to provide a deep understanding of the fundamental pr
## Resources
- Course Website: [CMU15418](http://15418.courses.cs.cmu.edu/spring2016/), [CS149](https://gfxcourses.stanford.edu/cs149/fall21)
- Recordings: <http://15418.courses.cs.cmu.edu/spring2016/lectures>
- Course Website: [CMU15418](https://www.cs.cmu.edu/afs/cs/academic/class/15418-s18/www/index.html), [CS149](https://gfxcourses.stanford.edu/cs149/fall21)
- Recordings: [CMU15418](https://www.cs.cmu.edu/afs/cs/academic/class/15418-s18/www/schedule.html), [CS149](https://youtube.com/playlist?list=PLoROMvodv4rMp7MTFr4hQsDEcX7Bx6Odp&si=txtQiRDZ9ZZUzyRn)
- Textbook: None
- Assignments: <https://gfxcourses.stanford.edu/cs149/fall21>, 5 assignments.

View File

@@ -14,8 +14,8 @@
## 课程资源
- 课程网站:[CMU15418](http://15418.courses.cs.cmu.edu/spring2016/), [CS149](https://gfxcourses.stanford.edu/cs149/fall21)
- 课程视频:<http://15418.courses.cs.cmu.edu/spring2016/lectures>
- 课程网站:[CMU15418](https://www.cs.cmu.edu/afs/cs/academic/class/15418-s18/www/index.html), [CS149](https://gfxcourses.stanford.edu/cs149/fall21)
- 课程视频:[CMU15418](https://www.cs.cmu.edu/afs/cs/academic/class/15418-s18/www/schedule.html), [CS149](https://youtube.com/playlist?list=PLoROMvodv4rMp7MTFr4hQsDEcX7Bx6Odp&si=txtQiRDZ9ZZUzyRn)
- 课程教材:无
- 课程作业:<https://gfxcourses.stanford.edu/cs149/fall21>5 个编程作业

View File

@@ -13,7 +13,8 @@ Git is a powerful tool and when you finally master it, you will find all the eff
Different from Vim, I don't suggest beginners use Git rashly without fully understanding it, because its inner logic can not be acquainted by practicing. Here is my recommended learning path:
1. Read this [Git tutorial](https://missing.csail.mit.edu/2020/version-control/) in English, or you can watch this [Git tutorial (by 尚硅谷)](https://www.bilibili.com/video/BV1vy4y1s7k6) in Chinese.
2. Read Chap1 - Chap5 of this open source book [Pro Git](https://git-scm.com/book/en/v2). Yes, to learn Git, you need to read a book.
3. Now that you have understood its principles and most of its usages, it's time to consolidate those commands by practicing. How to use Git properly is a kind of philosophy. I recommend reading this blog [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/).
4. You are now in love with Git and are not content with only using it, you want to build a Git by yourself! Great, that's exactly what I was thinking. [This tutorial](https://wyag.thb.lt/) will satisfy you!
5. What? Building your own Git is not enough? Seems that you are also passionate about reinventing the wheels. These two GitHub projects, [build-your-own-x](https://github.com/danistefanovic/build-your-own-x) and [project-based-learning](https://github.com/tuvtran/project-based-learning), collected many wheel-reinventing tutorials, e.g., text editor, virtual machine, docker, TCP and so on.
2. Read Chap1 - Chap5 of this open source book [Pro Git](https://git-scm.com/book/en/v2). Yes, to learn Git, you need to read a book.
3. [Learn Git Branching](https://learngitbranching.js.org/) is an interactive Git learning website that can help you quickly get started with using Git.
4. Now that you have understood its principles and most of its usages, it's time to consolidate those commands by practicing. How to use Git properly is a kind of philosophy. I recommend reading this blog [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/).
5. You are now in love with Git and are not content with only using it, you want to build a Git by yourself! Great, that's exactly what I was thinking. [This tutorial](https://wyag.thb.lt/) will satisfy you!
6. What? Building your own Git is not enough? Seems that you are also passionate about reinventing the wheels. These two GitHub projects, [build-your-own-x](https://github.com/danistefanovic/build-your-own-x) and [project-based-learning](https://github.com/tuvtran/project-based-learning), collected many wheel-reinventing tutorials, e.g., text editor, virtual machine, docker, TCP and so on.

View File

@@ -14,6 +14,7 @@ Git 的设计非常优雅,但初学者通常因为很难理解其内部逻辑
1. 阅读这篇 [Git tutorial](https://missing.csail.mit.edu/2020/version-control/),视频的话可以看这个[尚硅谷Git教程](https://www.bilibili.com/video/BV1vy4y1s7k6)
2. 阅读这本开源书籍 [Pro Git](https://git-scm.com/book/en/v2) 的 Chapter1 - Chapter5是的没错学 Git 需要读一本书(捂脸)。
3. 此时你已经掌握了 Git 的原理和绝大部分用法,接下来就可以在实践中反复巩固 Git 的命令了。但用好它同样是一门哲学,我个人觉得这篇[如何写好 Commit Message](https://chris.beams.io/posts/git-commit/) 的博客非常值得一读
4. 好的此时你已经爱上了 Git,你已经不满足于学会它了,你想自己实现一个 Git巧了我当年也有这样的想法[这篇 tutorial](https://wyag.thb.lt/) 可以满足你!
5. 什么?光实现一个 Git 无法满足你?小伙子/小仙女有前途,巧的是我也喜欢造轮子,这两个 GitHub 项目 [build-your-own-x](https://github.com/danistefanovic/build-your-own-x) 和 [project-based-learning](https://github.com/tuvtran/project-based-learning) 收录了你能想到的各种造轮子教程,比如:自己造个编辑器、自己写个虚拟机、自己写个 docker、自己写个 TCP 等等等等。
3. [Learn Git Branching](https://learngitbranching.js.org/) 是一个交互式的 Git 学习网站, 可以帮助你快速上手 Git 的使用
4. 此时你已经掌握了 Git 的原理和绝大部分用法,接下来就可以在实践中反复巩固 Git 的命令了。但用好它同样是一门哲学,我个人觉得这篇[如何写好 Commit Message](https://chris.beams.io/posts/git-commit/) 的博客非常值得一读。
5. 好的此时你已经爱上了 Git你已经不满足于学会它了你想自己实现一个 Git巧了我当年也有这样的想法[这篇 tutorial](https://wyag.thb.lt/) 可以满足你!
6. 什么?光实现一个 Git 无法满足你?小伙子/小仙女有前途,巧的是我也喜欢造轮子,这两个 GitHub 项目 [build-your-own-x](https://github.com/danistefanovic/build-your-own-x) 和 [project-based-learning](https://github.com/tuvtran/project-based-learning) 收录了你能想到的各种造轮子教程,比如:自己造个编辑器、自己写个虚拟机、自己写个 docker、自己写个 TCP 等等等等。

View File

@@ -14,4 +14,4 @@ If you want to keep up with some interesting open-source projects on GitHub, I h
I believe GitHub's success is due to the "one for all, all for one" spirit of open source and the joy of sharing knowledge. If you also want to become the next revered open-source giant or the author of a project with tens of thousands of stars, then transform your ideas that spark during development into code and showcase them on GitHub.
However, it's important to note that the open-source community is not lawless. Many open-source softwares are not meant for arbitrary copying, distribution, or even sale. Understanding various [open-source licenses](https://www.runoob.com/w3cnote/open-source-license.html) and complying with them is not only a legal requirement but also the responsibility of every member of the open-source community.
However, it's important to note that the open-source community is not lawless. Many open-source softwares are not meant for arbitrary copying, distribution, or even sale. Understanding various [open-source licenses](https://www.runoob.com/w3cnote/open-source-license.html) and complying with them is not only a legal requirement but also the responsibility of every member of the open-source community.

View File

@@ -27,7 +27,8 @@ Vim 的学习资料浩如烟海,但掌握它最好的方式还是将它用在
用 Vim 编辑代码的时候会频繁用到 ESC 和 CTRL 键, 但是这两个键都离 home row 很远, 可以把 CapsLock 键映射到 Esc 或者 Ctrl 键,让手更舒服一些。
Windows 系统可以使用 [Powertoys](https://learn.microsoft.com/en-us/windows/powertoys/) 或者 [AutoHotkey](https://www.autohotkey.com/) 重映射键位。
MacOS 系统提供了重映射键位的[设置](https://vim.fandom.com/wiki/Map_caps_lock_to_escape_in_macOS),另外也可以使用 [Karabiner-Elements](https://karabiner-elements.pqrs.org/) 重映射。
MacOS 系统提供了重映射键位的[设置](https://vim.fandom.com/wiki/Map_caps_lock_to_escape_in_macOS),另外也可以使用 [Karabiner-Elements](https://karabiner-elements.pqrs.org/) 重映射。
Linux 系统可以使用 [xremap](https://github.com/xremap/xremap) 进行映射,对于 wayland 和 x.org 都可以使用,并且支持分别映射点按和按住。
但更佳的做法是同时将 CapsLock 映射为 Ctrl 和 Esc点按为 Esc按住为 Ctrl。这是不同系统下的实现方法

View File

@@ -4,7 +4,7 @@
- [Sci-Hub](https://sci-hub.se/): A revolutionary site aiming to break knowledge barriers, greeted by the goddess Elbakyan.
- [Library Genesis](http://libgen.is/): A website for downloading e-books.
- [Z-library](https://zlibrary-global.se/): An e-book download site (works better under [Tor](https://www.torproject.org/), [link](http://loginzlib2vrak5zzpcocc3ouizykn6k5qecgj2tzlnab5wcbqhembyd.onion/)).
- [Z-library](https://z-library.rs/): An e-book download site (works better under [Tor](https://www.torproject.org/), [link](http://loginzlib2vrak5zzpcocc3ouizykn6k5qecgj2tzlnab5wcbqhembyd.onion/)).
- [Z-ePub](https://z-epub.com/): ePub e-book download site.
- [PDF Drive](https://www.pdfdrive.com/): A PDF e-book search engine.
- [MagazineLib](https://magazinelib.com/): A site for downloading PDF e-magazines.
@@ -45,6 +45,8 @@
- [Data Structure Visualizations](https://www.cs.usfca.edu/~galles/visualization/Algorithms.html): Visualization website for data structures and algorithms.
- [learngitbranching](https://learngitbranching.js.org/?locale=zh_CN): Visualize learning git.
- [UnicodeCharacter](https://unicode-table.com/en/): Unicode character set website.
- [cyrilex](https://extendsclass.com/regex-tester.html): A site for testing and visualizing regular expressions, supporting various programming language standards.
- [mockium](https://softwium.com/mockium/): Platform for generating test data.
## Learning Websites
@@ -69,11 +71,13 @@
- [Python3 Documentation](https://docs.python.org/zh-cn/3/): Official Chinese documentation for Python3.
- [C++ Reference](https://en.cppreference.com/w/): C++ reference manual.
- [OI Wiki](https://oi-wiki.org/): An integrated site for programming competition knowledge.
- [CTF Wiki](https://ctf-wiki.org/): An integrated site for knowledge and tools related to cybersecurity competitions.
- [Microsoft Learn](https://learn.microsoft.com/zh-cn/): Microsoft's official learning platform, containing most Microsoft product documentation.
- [Arch Wiki](https://wiki.archlinux.org/): Wiki written for Arch Linux, containing a lot of Linux-related knowledge.
- [Qt Wiki](https://wiki.qt.io/Main): Official Qt Wiki.
- [OpenCV Chinese Documentation](https://opencv.apachecn.org/#/): Community version of OpenCV's Chinese documentation.
- [npm Docs](https://docs.npmjs.com/): Official npm documentation.
- [developer-roadmap](https://roadmap.sh/): provides roadmaps, guides and other educational content to help guide developers in picking up a path and guide their learnings.
## Communication Platforms
@@ -97,4 +101,5 @@
- [vimsnake](https://vimsnake.com/): Play the snake game using vim commands.
- [keybr](https://www.keybr.com/): A website for learning touch typing.
- [Awesome C++](https://cpp.libhunt.com/): A curated list of awesome C/C++ frameworks, libraries, resources.
- [HelloGitHub](https://hellogithub.com/): Shares interesting and beginner-friendly open-source projects on GitHub.
- [HelloGitHub](https://hellogithub.com/): Shares interesting and beginner-friendly open-source projects on GitHub.
- [Synergy](https://github.com/DEAKSoftware/Synergy-Binaries): A set of keyboard and mouse controls for multiple computers

View File

@@ -4,7 +4,7 @@
- [Sci-Hub](https://sci-hub.se/): Elbakyan 女神向你挥手,旨在打破知识壁垒的革命性网站。
- [Library Genesis](http://libgen.is/): 电子书下载网站。
- [Z-library](https://zlibrary-global.se/): 电子书下载网站(在 [Tor](https://www.torproject.org/) 下运行较佳,[链接](http://loginzlib2vrak5zzpcocc3ouizykn6k5qecgj2tzlnab5wcbqhembyd.onion/))。
- [Z-library](https://z-library.rs/): 电子书下载网站(在 [Tor](https://www.torproject.org/) 下运行较佳,[链接](http://loginzlib2vrak5zzpcocc3ouizykn6k5qecgj2tzlnab5wcbqhembyd.onion/))。
- [Z-ePub](https://z-epub.com/): ePub 电子书下载网站。
- [PDF Drive](https://www.pdfdrive.com/): PDF 电子书搜索引擎。
- [MagazineLib](https://magazinelib.com/): PDF 电子杂志下载网站。
@@ -32,6 +32,7 @@
- [sqlfiddle](http://www.sqlfiddle.com/): 一个简易的在线 SQL Playground。
- [sqlzoo](https://sqlzoo.net/wiki/SQL_Tutorial):在线练习 sql 语句。
- [sqlable](https://sqlable.com):一个 SQL 工具网站格式化器、验证器、生成器SQL Playground
- [godbolt](https://godbolt.org/): 非常方便的编译器探索工具。你可以写一段 C/C++ 代码,选择一款编译器,然后便可以观察生成的具体汇编代码。
- [explainshell](https://explainshell.com/): 你是否曾为一段 shell 代码的具体含义感到困扰manpage 看半天还是不明所以?试试这个网站!
- [regex101](https://regex101.com/): 正则表达式调试网站,支持各种编程语言的匹配标准。
@@ -45,6 +46,8 @@
- [Data Structure Visualizations](https://www.cs.usfca.edu/~galles/visualization/Algorithms.html): 数据结构与算法的可视化网站。
- [learngitbranching](https://learngitbranching.js.org/?locale=zh_CN): 可视化学习 git。
- [UnicodeCharacter](https://unicode-table.com/en/): Unicode 字符集网站。
- [cyrilex](https://extendsclass.com/regex-tester.html): 一个用于测试和可视化正则表达式的网站,支持各种编程语言标准。
- [mockium](https://softwium.com/mockium/): 生成测试数据的平台。
## 学习网站
@@ -68,11 +71,13 @@
- [Python3 Documentation](https://docs.python.org/zh-cn/3/): Python3 官方中文文档。
- [C++ Reference](https://en.cppreference.com/w/): C++ 参考手册。
- [OI Wiki](https://oi-wiki.org/): 编程竞赛知识整合站点。
- [CTF Wiki](https://ctf-wiki.org/):网络安全竞赛相关知识与工具的整合站点。
- [Microsoft Learn](https://learn.microsoft.com/zh-cn/): 微软官方的学习平台,包含了绝大多数微软产品的文档。
- [Arch Wiki](https://wiki.archlinux.org/): 专为 Arch Linux 而写的 Wiki包含了大量 Linux 相关的知识。
- [Qt Wiki](https://wiki.qt.io/Main): Qt 官方 Wiki。
- [OpenCV 中文文档](https://opencv.apachecn.org/#/): OpenCV 的社区版中文文档。
- [npm Docs](https://docs.npmjs.com/): npm 官方文档。
- [developer-roadmap](https://roadmap.sh/):帮助开发者了解学习路径并在职业生涯中不断成长。
## 交流平台
- [GitHub](https://github.com/): 许多开源项目的托管平台,也是许多开源项目的主要交流平台,通过查看 issue 可以解决许多问题。
@@ -96,3 +101,4 @@
- [keybr](https://www.keybr.com/): 学习盲打的网站。
- [Awesome C++](https://cpp.libhunt.com/): 很棒的 C/C++ 框架、库、资源精选列表。
- [HelloGitHub](https://hellogithub.com/): 分享 GitHub 上有趣、入门级的开源项目。
- [Synergy](https://github.com/DEAKSoftware/Synergy-Binaries): 一套键鼠能控制多台电脑。

View File

@@ -12,7 +12,7 @@
于是我就顺其自然地开始翻阅英文书籍。不得不说,英文书籍内容的质量整体是比中文书籍高的。后来随着学习的层层深入,以知识的时效性和完整性出发,我发现 `源代码` > `官方文档` > `英文书籍` > `英文博客` > `中文博客`,最后我得出了一张 `信息损失图`
![](https://cdn.sspai.com/2022/10/11/bf07c1965a2e5bdf3f00644737789e2e.png)
![](https://s2.loli.net/2024/10/18/diZGmFHz8162u4I.png)
虽然一手信息很重要,但后面的 N 手信息并非一无是处,因为这 N 手资料里包含了作者对源知识的转化——例如基于某种逻辑的梳理(流程图、思维导图等)或是一些自己的理解(对源知识的抽象、类比、延伸到其他知识点),这些转化可以帮助我们更快地掌握和巩固知识的核心内容,就如同初高中学习时使用的辅导书。 此外,学习的过程中和别人的交流十分重要,这些 N 手信息同时起了和其他作者交流的作用,让我们能采百家之长。所以这提示我们学习一个知识点时先尽量选择质量更高的,信息损失较少的信息源,同时不妨参考多个信息源,让自己的理解更加全面准确。
@@ -26,7 +26,7 @@
* Obsidian 基于本地,打开速度快,且可存放很多电子书。我的笔记本是 32g 内存的华硕天选一代,拿来跑 Obsidian 可以快到飞起
* Obsidian 基于 Markdown。这也是一个优势如果笔记软件写的笔记格式是自家的编码格式那么不方便其他第三方拓展也不方便将笔记用其他软件打开比如 qq 音乐下载歌曲有自己的格式,其他播放器播放不了,这挺恶心人的
* Obsidian 有丰富的插件生态,并且这个生态既大又活跃,即插件数量多,且热门插件的 star 多,开发者会反馈用户 issue版本会持续迭代。借助这些插件可以使 Osidian 达到 `all in one` 的效果,即各类知识来源可以统一整合于一处
* Obsidian 有丰富的插件生态,并且这个生态既大又活跃,即插件数量多,且热门插件的 star 多,开发者会反馈用户 issue版本会持续迭代。借助这些插件可以使 Obsidian 达到 `all in one` 的效果,即各类知识来源可以统一整合于一处
## 信息的来源
@@ -35,13 +35,13 @@ Obsidian 的插件使其可以支持 pdf 格式,而其本身又支持 Markdown
* 有什么格式
* 怎么转换为 pdf 或 Markdown
![](https://cdn.sspai.com/2022/10/11/3801b1c9b94286566fe677e3b12cc7b0.png)
![](https://s2.loli.net/2024/10/18/JhDUR5tgNdO94mo.png)
### 有什么格式
文件格式依托于其展示的平台,所以在看有什么格式之前,可以罗列一下我平时获取信息的来源:
![](https://cdn.sspai.com/2022/10/11/07e97f372850054958d4961a3787a93f.png)
![](https://s2.loli.net/2024/10/18/TycU8l71s9BJSVI.png)
可以看到主要分为`文章``论文``电子书``课程`四类,包含的格式主要有 `网页``pdf``mobi``azw``azw3`
@@ -50,27 +50,27 @@ Obsidian 的插件使其可以支持 pdf 格式,而其本身又支持 Markdown
在线的文章和课程等大多以网页形式呈现,而将网页转换为 Markdown 可以使用剪藏软件,它可以将网页文章转换为多种文本格式文件。我选择的工具是简悦,使用简悦可以将几乎所有平台的文章很好地剪藏为 Markdown 并且导入到 Obsidian。
![](https://cdn.sspai.com/2022/10/11/211cffa78f20a9e7286a7419e9e0b878.png)
![](https://s2.loli.net/2024/10/18/S5hcofUlv1x9dX3.png)
对于论文和电子书而言如果格式本身就是 pdf 则万事大吉,但如果是其他格式则可以使用 calibre 进行转换:
![](https://cdn.sspai.com/2022/10/11/51575f65f6f4c6edfa6c5b97fd16d625.png)
![](https://s2.loli.net/2024/10/18/OwrYoqxCjRgFJpZ.png)
现在利用 Obsidian 的 pdf 插件和其原生的 markdown 支持就可以畅快无比地做笔记并且在这些文章的对应章节进行无缝衔接地引用跳转啦(具体操作参考下文的“信息的处理”模块)。
![](https://cdn.sspai.com/2022/10/11/d64a9a2d6406d2d367dcb505ede69c83.png)
![](https://s2.loli.net/2024/10/18/7eEWwftYC3KIjik.png)
### 如何统一管理信息来源
对于 pdf 等文件类资源可以本地或者云端存储,而网页类资源则可以分门别类地放入浏览器的收藏夹,或者剪藏成 markdown 格式的笔记,但是网页浏览器不能实现移动端的网页收藏。为了实现跨端网页收藏我选用了 Cubox在手机端看到感兴趣的网页时只需小手一划便能将网页统一保存下来。虽然免费版只能收藏 100 个网页,但其实够用了,还可以在收藏满时督促自己赶紧剪藏消化掉这些网页,让收藏不吃灰。
![](https://cdn.sspai.com/2022/10/11/ad7ebfcb4619f64a41d328b88e0e3a12.png)
![](https://s2.loli.net/2024/10/18/HU4kO6ofexS2lQM.png)
除此之外,回想一下我们平时收藏的网页,就会发现有很多并不是像知乎、掘金这类有完整功能的博客平台,更多的是个人建的小站,而这些小站往往没有移动端应用,这样平时刷手机的时候也看不到,放到浏览器的收藏夹里又容易漏了看,有新文章发布我们也不能第一时间收到通知,这个时候就需要一种叫 `RSS` 的通信协议。
`RSS`英文全称RDF Site Summary 或 Really Simple Syndication中文译作简易信息聚合也称聚合内容是一种消息来源格式规范用以聚合多个网站更新的内容并自动通知网站订阅者。电脑端可以借助 `RSSHub Radar` 来快速发现和生成 `RSS` 订阅源,接着使用 `Feedly` 来订阅这些 `RSS` 订阅源(`RSSHub Radar``Feedly` 在 chrome 浏览器中均有官方插件)。
![](https://cdn.sspai.com/2022/10/11/5df6cd9d967f190df35928e781f9185f.png)
![](https://s2.loli.net/2024/10/18/5qAKwzYEgmb821F.png)
到这里为止,收集信息的流程已经比较完备了。但资料再多,分类规整得再漂亮,也得真正内化成自己的才管用。因此在收集完信息后就得进一步地处理信息,即阅读这些信息,如果是英文信息的话还得搞懂英文的语义,加粗高亮重点句子段落,标记有疑问的地方,发散联想相关的知识点,最后写上自己的总结。那么在这过程中需要使用到什么工具呢?
@@ -80,11 +80,11 @@ Obsidian 的插件使其可以支持 pdf 格式,而其本身又支持 Markdown
面对英文的资料,我以前是用 `有道词典` 来划词翻译,遇到句子的话就使用谷歌翻译,遇到大段落时就使用 `deepl`,久而久之,发现这样看英语文献太慢了,得用三个工具才能满足翻译这一个需求,如果有一个工具能够同时实现对单词、句子和段落的划词翻译就好了。我联想到研究生们应该会经常接触英语文献,于是我就搜 `研究生` + `翻译软件`,在检索结果里我最终选择了 `Quicker` + `沙拉查词` 这个搭配来进行划词翻译。
![](https://cdn.sspai.com/2022/10/11/a7ebb1d3c46702b56bd6d171dfcfc075.png)
![](https://s2.loli.net/2024/10/18/odmKinLV3hybCOa.png)
使用这套组合可以实现在浏览器外的其他软件内进行划词翻译并且支持单词、句子和段落的翻译以及每次的翻译会有多个翻译平台的结果。btw如果查单词时不着急的话可以顺便看看 `科林斯高阶` 的翻译,这个词典的优点就是会用英文去解释英文,可以提供多个上下文帮助你理解,对于学习英文单词也有帮助,因为用英文解释英文才更接近英语的思维。
![](https://cdn.sspai.com/2022/10/11/article/827c9a8048c83e504ccb15893702bf09)
![](https://s2.loli.net/2024/10/18/ZtG9XsoPde5HQBn.png)
### 多媒体信息
@@ -92,15 +92,15 @@ Obsidian 的插件使其可以支持 pdf 格式,而其本身又支持 Markdown
我们可以把 `Language Reactor` 导出的字幕复制到 `Obsidian` 里面作为文章来读。除了出于学习的需求,也可以在平时看油管的视频时打开这个插件,这个插件可以同时显示中英文字幕,并且可以单击选中英文字幕中你认为生僻的单词后显示单词释义。
![](https://cdn.sspai.com/2022/10/11/364c8e6ed263affa84d9eee61338b4af.png)
![](https://s2.loli.net/2024/10/18/osDmqFvLtPVcidh.png)
但阅读文本对于一些抽象的知识点来说并不是效率最高的学习方式。俗话说,一图胜千言,能不能将某一段知识点的文本和对应的图片甚至视频画面操作联系起来呢?我在浏览 `Obsidian` 的插件市场时,发现了一个叫 `Media Extended` 的插件,这个插件可以在你的笔记里添加跳转到视频指定时间进度的链接,相当于把你的笔记和视频连接起来了!这刚好可以和我上文提到的生成视频中英文字幕搭配起来,即每一句字幕对应一个时间,并且能根据时间点跳转到视频的指定进度,如此一来如果需要在文章中展示记录了操作过程的视频的话,就不需要自己去截取对应的视频片段,而是直接在文章内就能跳转!
![](https://cdn.sspai.com/2022/10/11/17554cfdf662d5719ada453674012fdb.gif)
![](https://s2.loli.net/2024/10/18/LPwz8AKEfxuIMYS.gif)
`Obsidian` 里还有一个很强大的插件,叫 `Annotator`,它可以实现笔记内跳转到 pdf 原文
![](https://cdn.sspai.com/2022/10/11/article/b56994bf9a306830d8b0b8112677d3ec)
![](https://s2.loli.net/2024/10/18/dokCZEzrjl7AcI9.gif)
现在,使用 `Obsidian` 自带的双链功能,可以实现笔记间相互跳转,结合上述两个插件,可以实现笔记到多媒体的跳转,信息的处理过程已经完备。一般我们学习的过程相当于上山和下山,刚学的时候就好像上山,很陌生、吃力,所谓学而时习之,复习或练习的过程就像下山,没有陌生感,不见得轻松,但非走不可。那么如何把复习这一过程纳入工作流的环节里呢?
@@ -108,7 +108,7 @@ Obsidian 的插件使其可以支持 pdf 格式,而其本身又支持 Markdown
`Obsidian` 内已经有一个连接 `Anki` 的插件,`Anki` 就是大名鼎鼎的、基于间隔重复的记忆软件。使用该插件可以截取笔记的片段导出到 `Anki` 并变成一张卡片,卡片内也有跳转回笔记原文的链接
![](https://cdn.sspai.com/2022/10/11/1f7cebd8dd28f664d77cbf0ab228c406.gif)
![](https://s2.loli.net/2024/10/18/ivexghT64HIYPJq.gif)
## 总结
@@ -117,4 +117,4 @@ Obsidian 的插件使其可以支持 pdf 格式,而其本身又支持 Markdown
btw此篇文章是讲解工作流的演化思路如果对此工作流的实现细节感兴趣建议阅读完本文后再按顺序阅读以下文章
1. [3000 + 小时积累的学习工作流](https://sspai.com/post/75969)
2. [Obsidian 的高级玩法 | 打造能跳转到任何格式文件的笔记](https://juejin.cn/post/7145351315705577485)
2. [Obsidian 的高级玩法 | 打造能跳转到任何格式文件的笔记](https://juejin.cn/post/7145351315705577485)

View File

@@ -18,7 +18,7 @@ Unlike the small but comprehensive design philosophy in MIT's xv6 labs, *Pintos*
Although it is tough, Stanford, Berkeley, JHU and many other top U.S. colleges have chosen *Pintos* as their OS course project. If you're really interested in operating systems, it will greatly improve your ability to write and debug low-level system code. For me, it is an invaluable experience to design, implement, and debug a large system independently.
*Pintos* will also be introduced as a course project in Peking University's OS Course. In the Spring 2022 semester, I worked with [another TA](https://github.com/AlfredThiel) to write a comprehensive [lab documentation](https://alfredthiel.gitbook.io/pintosbook/) and provided a docker image for the ease of cross-platform development. In the last semester before graduation, I hope such an attempt can make more people fall in love with systems and contribute to the field of systems in China.
*Pintos* will also be introduced as a course project in Peking University's OS Course. In the Spring 2022 semester, I worked with [another TA](https://github.com/AlfredThiel) to write a comprehensive [lab documentation](https://pkuflyingpig.gitbook.io/pintos) and provided a docker image for the ease of cross-platform development. In the last semester before graduation, I hope such an attempt can make more people fall in love with systems and contribute to the field of systems in China.
## Course Resources

View File

@@ -20,7 +20,7 @@
虽然难度很大,但 Stanford, Berkeley, JHU 等多所美国顶尖名校的操统课程均采用了 Pintos。如果你真的对操作系统很感兴趣Pintos 会极大地提高你编写和 debug 底层系统代码的能力。在本科阶段,能自己设计、实现并 debug 一个大型系统,是一段非常珍贵的经历。
北大 2022 年春季学期的操作系统实验班也将会首次引入 Pintos 作为课程 Project。我和该课程的[另一位助教](https://github.com/AlfredThiel)整理并完善了 Pintos 的[实验文档](https://alfredthiel.gitbook.io/pintosbook/),并利用 Docker 配置了跨平台的实验环境,想自学的同学可以按文档自行学习。在毕业前的最后一个学期,希望能用这样的尝试,让更多人爱上系统领域,为国内的系统研究添砖加瓦。
北大 2022 年春季学期的操作系统实验班也将会首次引入 Pintos 作为课程 Project。我和该课程的[另一位助教](https://github.com/AlfredThiel)整理并完善了 Pintos 的[实验文档](https://pkuflyingpig.gitbook.io/pintos),并利用 Docker 配置了跨平台的实验环境,想自学的同学可以按文档自行学习。在毕业前的最后一个学期,希望能用这样的尝试,让更多人爱上系统领域,为国内的系统研究添砖加瓦。
## 课程资源

View File

@@ -31,6 +31,8 @@ In the second half of the course, the instructors will discuss a couple of class
- [Detailed Explanation of xv6](https://space.bilibili.com/1040264970/)
- [xv6 Documentation(Chinese)](https://th0ar.gitbooks.io/xv6-chinese/content/index.html)
- [line-by-line walk-through of key xv6 source codes](https://www.youtube.com/playlist?list=PLbtzT1TYeoMhTPzyTZboW_j7TPAnjv9XB)
- [Text Book Translation xv6-riscv-book-zh-cn](https://blog.betteryuan.top/archives/xv6-riscv-book-zh-cn)
- [Text Book Translation SRC xv6-riscv-book-zh-cn](https://github.com/HelloYJohn/xv6-riscv-book-zh-cn.git)
## Complementary Resources

View File

@@ -31,6 +31,8 @@
- [xv6 操作系统的深入讲解](https://space.bilibili.com/1040264970/)
- [xv6 中文文档](https://th0ar.gitbooks.io/xv6-chinese/content/index.html)
- [xv6 关键源码逐行解读 + 整体架构分析](https://www.youtube.com/playlist?list=PLbtzT1TYeoMhTPzyTZboW_j7TPAnjv9XB)
- [课程教材翻译 xv6-riscv-book-zh-cn](https://blog.betteryuan.top/archives/xv6-riscv-book-zh-cn)
- [课程教材翻译源码 xv6-riscv-book-zh-cn](https://github.com/HelloYJohn/xv6-riscv-book-zh-cn.git)
## 资源汇总
@@ -53,3 +55,4 @@
- [解析Ta](https://blog.csdn.net/u013577996/article/details/108679997)
- [PKUFlyingPig](https://github.com/PKUFlyingPig/MIT6.S081-2020fall)
- [星遥见](https://www.cnblogs.com/weijunji/tag/XV6/)
- [tzyt 的博客](https://ttzytt.com/tags/xv6/)

View File

@@ -16,7 +16,9 @@ In addition to the course materials, the famous Youtuber **3Blue1Brown**'s video
## Resources
- Course Website: <https://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebra-fall-2011/syllabus/>
- Course Website: [fall2011](https://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebra-fall-2011/syllabus/)
- Recordings: refer to the course website
- Textbook: Introduction to Linear Algebra, Gilbert Strang
- Assignments: refer to the course website
On May 15th, 2023, revered mathematics professor Gilbert Strang capped his 61-year career as a faculty member at MIT by delivering his [final 18.06 Linear Algebra lecture](https://ocw.mit.edu/courses/18-06sc-linear-algebra-fall-2011/pages/final-1806-lecture-2023/) before retiring at the age of 88. In addition to a brief review for the course final exam, the overflowing audience (both in person and on the live YouTube stream) heard recollections, appreciations, and congratulations from Prof. Strangs colleagues and former students. A rousing standing ovation concluded this historic event.

View File

@@ -10,13 +10,15 @@
数学大牛 Gilbert Strang 老先生年逾古稀仍坚持授课,其经典教材 [Introduction to Linear Algebra](https://math.mit.edu/~gs/linearalgebra/) 已被清华采用为官方教材。我当时看完盗版 PDF 之后深感愧疚,含泪花了两百多买了一本英文正版收藏。下面附上此书封面,如果你能完全理解封面图的数学含义,那你对线性代数的理解一定会达到新的高度。
![image](https://math.mit.edu/~gs/linearalgebra/ila5/linearalgebra5_Front.jpg)
<img src="https://math.mit.edu/~gs/linearalgebra/ila5/linearalgebra5_Front.jpg" width = "300" height = "300" align=center />
配合油管数学网红 **3Blue1Brown** 的[线性代数的本质](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab)系列视频食用更佳。
## 课程资源
- 课程网站:<https://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebra-fall-2011/syllabus/>
- 课程网站:[fall2011](https://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebra-fall-2011/syllabus/)
- 课程视频:参见课程网站
- 课程教材Introduction to Linear Algebra. Gilbert Strang
- 课程作业:参见课程网站
2023年5月15日Gilbert Strang 上完了他在 18.06 的[最后一课](https://ocw.mit.edu/courses/18-06sc-linear-algebra-fall-2011/pages/final-1806-lecture-2023/)以88岁高龄结束了在其 MIT 61年的教学及科研生涯。但他的线性代数课已经并且还将继续影响一代代青年学子让我们向老先生致以最崇高的敬意。

View File

@@ -12,6 +12,6 @@ This is MIT's introductory information theory course for freshmen, Professor Pen
## Course Resources
- Course Website: <https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-050j-information-and-entropy-spring-2008/index.htm>
- Textbook: <https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-050j-information-and-entropy-spring-2008/syllabus/MIT6_050JS08_textbook.pdf>
- Course Website: [spring2008](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-050j-information-and-entropy-spring-2008/index.htm)
- Textbook: [Information and Entropy](https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008/resources/mit6_050js08_textbook/)
- Assignments: see the course website for details, including written assignments and Matlab programming assignments.

View File

@@ -14,6 +14,6 @@ MIT 面向大一新生的信息论入门课程Penfield 教授专门为这门
## 课程资源
- 课程网站:<https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-050j-information-and-entropy-spring-2008/index.htm>
- 课程教材:<https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-050j-information-and-entropy-spring-2008/syllabus/MIT6_050JS08_textbook.pdf>
- 课程网站:[spring2008](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-050j-information-and-entropy-spring-2008/index.htm)
- 课程教材:[Information and Entropy](https://ocw.mit.edu/courses/6-050j-information-and-entropy-spring-2008/resources/mit6_050js08_textbook/)
- 课程作业:详见课程网站,包含书面作业与 Matlab 编程作业。

View File

@@ -12,6 +12,6 @@ This is MITs discrete mathematics and probability course taught by the notabl
## Course Resources
- Course Website: <https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/>
- Recordings: <https://www.youtube.com/playlist?list=PLB7540DEDD482705B>
- Assignments: <https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/assignments/>
- Course Website: [spring2015](https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-spring-2015/), [fall2010](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/), [fall2005](https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-fall-2005/)
- Recordings: Refer to the course website
- Assignments: Refer to the course website

View File

@@ -12,6 +12,6 @@ MIT 的离散数学以及概率综合课程,导师是大名鼎鼎的 **Tom Lei
## 课程资源
- 课程网站:<https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/>
- 课程视频:<https://www.bilibili.com/video/BV1L741147VX>
- 课程作业:<https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/assignments/>
- 课程网站:[spring2015](https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-spring-2015/), [fall2010](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-fall-2010/), [fall2005](https://ocw.mit.edu/courses/6-042j-mathematics-for-computer-science-fall-2005/)
- 课程视频:[spring2015](https://www.bilibili.com/video/BV1n64y1i777/?spm_id_from=333.337.search-card.all.click&vd_source=a4d76d1247665a7e7bec15d15fd12349), [fall2010](https://www.bilibili.com/video/BV1L741147VX/?spm_id_from=333.337.search-card.all.click&vd_source=a4d76d1247665a7e7bec15d15fd12349)
- 课程作业:参考课程网站

View File

@@ -17,7 +17,7 @@ The designers of this course have also written an open source textbook for this
## Course Resources
- Course Website: <https://github.com/mitmath/18330>
- Textbook: <https://fncbook.github.io/fnc/frontmatter.html>
- Textbook: <https://fncbook.com>
- Assignments: 10 problem sets
## Personal Resources

View File

@@ -17,7 +17,7 @@
## 课程资源
- 课程网站:<https://github.com/mitmath/18330>
- 课程教材:<https://fncbook.github.io/fnc/frontmatter.html>
- 课程教材:<https://fncbook.com>
- 课程作业10 个 Julia 编程作业
## 资源汇总

View File

@@ -8,7 +8,7 @@
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时100h+
MIT-EECS 系的瑰宝。授课老师之一是算法届的奇才 Erik Demaine. 相比较于斯坦福的 [CS106B/X](../编程入门/CS106B_CS106X.md)(基于 C++ 的数据结构与算法课程),该课程更侧重于算法方面的详细讲解。课程也覆盖了一些经典的数据结构,如 AVL 树等。个人感觉在讲解方面比 CS106B 更加详细,也弥补了 CS106B 在算法方面讲解的不足。适合在 CS106B 入门之后巩固算法知识。
MIT-EECS 系的瑰宝。授课老师之一是算法届的奇才 Erik Demaine. 相比较于斯坦福的 [CS106B/X](../编程入门/cpp/CS106B_CS106X.md)(基于 C++ 的数据结构与算法课程),该课程更侧重于算法方面的详细讲解。课程也覆盖了一些经典的数据结构,如 AVL 树等。个人感觉在讲解方面比 CS106B 更加详细,也弥补了 CS106B 在算法方面讲解的不足。适合在 CS106B 入门之后巩固算法知识。
不过该课程也是出了名的难,大家需要做好一定的心理准备。

View File

@@ -12,6 +12,8 @@ It is the second course of UC Berkeley's CS61 series. It mainly focuses on the d
I took the version for 2018 Spring. Josh Hug, the instructor, generously made the autograder open-source. You can use [gradescope](https://gradescope.com/) invitation code published on the website for free and easily test your implementation.
According to the professor's latest policy, SP2021 CS61B is now open to the public. To get everything set up, go to Gradescope and select the "Add a course" button. Enter course code **MB7ZPY** to be added.
All programming assignments in this course are done in Java. Students without Java experience don't have to worry. There will be detailed tutorials in the course from the configuration of IDEA to the core syntax and features of Java.
The quality of homework in this class is also unparalleled. The 14 labs will allow you to implement most of the data structures mentioned in the class by yourself, and the 10 homework will allow you to use data structures and algorithms to solve practical problems.
@@ -20,7 +22,7 @@ In addition, there are 3 projects that give you the opportunity to be exposed to
## Resources
## Course Resources
- Course Website: <https://sp18.datastructur.es/>
- Course Website: [spring2024](https://sp24.datastructur.es/), [fall2023](https://fa23.datastructur.es/), [spring2023](https://sp23.datastructur.es/), [spring2021](https://sp21.datastructur.es/), [spring2018](https://sp18.datastructur.es/)
- Recordings: refer to the course website
- Textbook: None
- Assignments: Slightly different every year. In the spring semester of 2018, there are 14 Labs, 10 Homework and 3 Projects. Please refer to the course website for specific requirements.
@@ -28,3 +30,5 @@ In addition, there are 3 projects that give you the opportunity to be exposed to
## Personal resources
All resources and homework implementations used by @PKUFlyingPig in this course are summarized in [PKUFlyingPig/CS61B - GitHub](https://github.com/PKUFlyingPig/CS61B).
All resources and homework implementations used by @InsideEmpire in this course are summarized in [InsideEmpire/CS61B-PathwayToSuccess - GitHub](https://github.com/InsideEmpire/CS61B-PathwayToSuccess.git).

View File

@@ -13,6 +13,8 @@
我上的是 2018 年春季学期的版本,该课的开课老师 Josh Hug 教授慷慨地将 autograder 开源了,大家可以通过网站公开的邀请码在 [gradescope](https://gradescope.com/)
免费加入课程,从而方便地测评自己的代码。
根据教授最新的政策SP2021 的 CS61B 也对公众开放。要设置所有内容,请前往 Gradescope 并选择"Add a course"按钮。输入课程代码 **MB7ZPY** 以添加课程。
这门课所有的编程作业都是使用 Java 完成的。没有 Java 基础的同学也不用担心,课程会有保姆级的教程,从 IDEA一款主流的 Java 编程环境)的配置讲起,把 Java 的核心语法与特性事无巨细地讲授,大家完全不用担心跟不上的问题。
这门课的作业质量也是绝绝子。14 个 lab 会让你自己实现课上所讲的绝大部分数据结构10 个 Homework 会让你运用数据结构和算法解决实际问题,
@@ -20,11 +22,13 @@
## 课程资源
- 课程网站:<https://sp18.datastructur.es/>
- 课程视频:<https://sp18.datastructur.es/>,每节课的链接详见课程网站
- 课程网站:[spring2024](https://sp24.datastructur.es/), [fall2023](https://fa23.datastructur.es/), [spring2023](https://sp23.datastructur.es/), [spring2021](https://sp21.datastructur.es/), [spring2018](https://sp18.datastructur.es/)
- 课程视频:原版视频参见课程网站B站有中文翻译搬运。
- 课程教材:无
- 课程作业每年略有不同18 年春季学期有 14 个 Lab10 个 Homework以及 3 个 Project具体要求详见课程网站。
## 资源汇总
@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPig/CS61B - GitHub](https://github.com/PKUFlyingPig/CS61B) 中。
@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPig/CS61B - GitHub](https://github.com/PKUFlyingPig/CS61B) 中。
@InsideEmpire 在学习这门课中用到的所有资源和作业实现都汇总在 [InsideEmpire/CS61B-PathwayToSuccess - GitHub](https://github.com/InsideEmpire/CS61B-PathwayToSuccess.git) 中。

View File

@@ -12,7 +12,7 @@
## 课程资源
- 课程网站:<http://cs229.stanford.edu/syllabus.html>
- 课程网站:<http://cs229.stanford.edu>
- 课程视频:<https://www.bilibili.com/video/BV1JE411w7Ub>
- 课程教材:无,课程 notes 写得非常好
- 课程作业:不对公众开放

View File

@@ -23,10 +23,19 @@ Inspired by the course, I developed a [simple deep learning framework](https://g
- Course Website[Official Website](https://novel.ict.ac.cn/aics/)
- Course Videos[bilibili](https://space.bilibili.com/494117284)
- Course Textbook"Intelligent Computing Systems" by Chen Yunji
- Course Assignments6 experiments (including writing a convolutional operator, adding operators to TensorFlow, writing operators in BCL and integrating them into TensorFlow, etc.) (specific content can be found on the official website)
- Experiment Manual[Experiment 2.0 Guide Manual](https://forum.cambricon.com/index.php?m=content&c=index&a=show&catid=155&id=708)
- Study Notes<https://sanzo.top/categories/AI-Computing-Systems/>, notes summarized based on the experiment manual
## Resource Compilation
## Personal Resources
All resources and homework implementations used by @ysj1173886760 in this course are consolidated in [ysj1173886760/Learning: ai-system - GitHub](https://github.com/ysj1173886760/Learning/tree/master/ai-system)
### New Edition Experiments for 2024
- The 2024 edition of the Intelligent Computing Systems lab has undergone extensive adjustments in the knowledge structure, experimental topics, and lab manuals, including comprehensive use of PyTorch instead of TensorFlow, and the addition of experiments related to large models.
- As the new lab topics and manuals have not been updated on the Cambricon Forum, the following repository is provided to store the new versions of the Intelligent Computing Systems lab topics, manuals, and individual experiment answers:
- The resources for the new edition will be updated following the course schedule of the UCAS Spring Semester 2024, with completion expected by June 2024.
- 2024 New labs, manuals, and answers created by @Yuichi: https://github.com/Yuichi1001/2024-AICS-EXP
### Old Edition Experiments
- Old edition coursework: 6 experiments (including writing convolution operators, adding operators to TensorFlow, writing operators with BCL and integrating them into TensorFlow, etc.) (details can be found on the official website)
- Old edition lab manuals: [Experiment 2.0 Instruction Manual](https://forum.cambricon.com/index.php?m=content&c=index&a=show&catid=155&id=708)
- Learning notes: https://sanzo.top/categories/AI-Computing-Systems/, notes summarized from the lab manuals (link is no longer active)
- @ysj1173886760 has compiled all resources and homework implementations used in this course at [ysj1173886760/Learning: ai-system - GitHub](https://github.com/ysj1173886760/Learning/tree/master/ai-system).

View File

@@ -25,10 +25,21 @@
- 课程网站:[官网](https://novel.ict.ac.cn/aics/)
- 课程视频:[bilibili](https://space.bilibili.com/494117284)
- 课程教材:智能计算系统(陈云霁)
- 课程作业6 个实验(包括编写卷积算子,为 TensorFlow 添加算子,用 BCL 编写算子并集成到 TensorFlow 中等)(具体内容在官网可以找到)
- 实验手册:[实验 2.0 指导手册](https://forum.cambricon.com/index.php?m=content&c=index&a=show&catid=155&id=708)
- 学习笔记:<https://sanzo.top/categories/AI-Computing-Systems/>,参考实验手册总结的笔记
## 资源汇总
@ysj1173886760 在学习这门课中用到的所有资源和作业实现都汇总在 [ysj1173886760/Learning: ai-system - GitHub](https://github.com/ysj1173886760/Learning/tree/master/ai-system) 中。
### 2024年新版实验
- 2024 年的智能计算系统实验内容对知识体系、实验题目及实验手册进行了大范围的调整,调整内容包括全面使用 PyTorch ,不再使用 TensorFlow 以及添加大模型相关实验等。
- 由于新版实验题目及实验手册未在寒武纪论坛进行更新,因此提供以下存储仓库,用于存储新版智能计算系统的实验题目、实验手册以及个人的实验答案
- 新版实验的资源跟随国科大 2024 年春季学期的课程进度进行更新,预计 2024 年 6 月更新完毕
- @Yuichi 编写的 2024 新版实验题目、手册及答案https://github.com/Yuichi1001/2024-AICS-EXP
### 旧版实验
- 旧版课程作业6 个实验(包括编写卷积算子,为 TensorFlow 添加算子,用 BCL 编写算子并集成到 TensorFlow 中等)(具体内容在官网可以找到)
- 旧版实验手册:[实验 2.0 指导手册](https://forum.cambricon.com/index.php?m=content&c=index&a=show&catid=155&id=708)
- 学习笔记:<https://sanzo.top/categories/AI-Computing-Systems/>,参考实验手册总结的笔记(已失效)
- @ysj1173886760 在学习这门课中用到的所有资源和作业实现都汇总在 [ysj1173886760/Learning: ai-system - GitHub](https://github.com/ysj1173886760/Learning/tree/master/ai-system) 中。

View File

@@ -26,3 +26,5 @@ Instructors [Zico Kolter](https://zicokolter.com/) and [Tianqi Chen](https://tqc
## Resource Compilation
All resources and assignment implementations used by @PKUFlyingPig in this course are consolidated in [PKUFlyingPig/CMU10-714 - GitHub](https://github.com/PKUFlyingPig/CMU10-714)
All assignment implementations by @Crazy-Ryan in this course (24 Fall offering) are consolidated in [Crazy-Ryan/CMU-10-714 - GitHub](https://github.com/Crazy-Ryan/CMU-10-714)

View File

@@ -32,3 +32,5 @@
## 资源汇总
@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPig/CMU10-714 - GitHub](https://github.com/PKUFlyingPig/CMU10-714) 中。
@Crazy-Ryan 在学习这门课(24 Fall)过程中的作业实现汇总在 [Crazy-Ryan/CMU-10-714 - GitHub](https://github.com/Crazy-Ryan/CMU-10-714) 中。

View File

@@ -0,0 +1,75 @@
# CSE234: Data Systems for Machine Learning
## Course Overview
- University: UCSD
- Prerequisites: Linear Algebra, Deep Learning, Operating Systems, Computer Networks, Distributed Systems
- Programming Languages: Python, Triton
- Difficulty: 🌟🌟🌟
- Estimated Workload: ~120 hours
<!-- Introduce the course in one or two paragraphs, including but not limited to:
(1) The scope of technical topics covered
(2) Its distinguishing features compared to similar courses
(3) Personal learning experience and impressions
(4) Caveats and difficulty warnings for self-study
-->
This course focuses on the design of end-to-end large language model (LLM) systems, serving as an introductory course to building efficient LLM systems in practice.
The course can be more accurately divided into three parts (with several additional guest lectures):
Part 1. Foundations: modern deep learning and computational representations
- Modern deep learning and computation graphs (framework and system fundamentals)
- Automatic differentiation and an overview of ML system architectures
- Tensor formats, in-depth matrix multiplication, and hardware accelerators
Part 2. Systems and performance optimization: from GPU kernels to compilation and memory
- GPUs and CUDA (including basic performance models)
- GPU matrix multiplication and operator-level compilation
- Triton programming, graph optimization, and compilation
- Memory management (including practical issues and techniques in training and inference)
- Quantization methods and system-level deployment
Part 3. LLM systems: training and inference
- Parallelization strategies: model parallelism, collective communication, intra-/inter-op parallelism, and auto-parallelization
- LLM fundamentals: Transformers, Attention, and MoE
- LLM training optimizations (e.g., FlashAttention-style techniques)
- LLM inference: continuous batching, paged attention, disaggregated prefill/decoding
- Scaling laws
(Guest lectures cover topics such as ML compilers, LLM pretraining and open science, fast inference, and tool use and agents, serving as complementary extensions.)
The defining characteristic of CSE234 is its strong focus on LLM systems as the core application setting. The course emphasizes real-world system design trade-offs and engineering constraints, rather than remaining at the level of algorithms or API usage. Assignments often require students to directly confront performance bottlenecks—such as memory bandwidth limitations, communication overheads, and kernel fusion—and address them through Triton or system-level optimizations. Overall, the learning experience is fairly intensive: a solid background in systems and parallel computing is important. For self-study, it is strongly recommended to prepare CUDA, parallel programming, and core systems knowledge in advance; otherwise, the learning curve becomes noticeably steep in the later parts of the course, especially around LLM optimization and inference. That said, once the pace is manageable, the course offers strong long-term value for those pursuing work in LLM infrastructure, ML systems, or AI compilers.
## Recommended Learning Path
The course itself is relatively well-structured and progressive. However, for students without prior experience in systems and parallel computing, the transition into the second part of the course may feel somewhat steep. A key aspect of this course is spending significant time implementing and optimizing systems in practice. Therefore, it is highly recommended to explore relevant open-source projects on GitHub while reading papers, and to implement related systems or kernels hands-on to deepen understanding.
- Foundations: consider studying alongside open-source projects such as [micrograd](https://github.com/karpathy/micrograd)
- Systems & performance optimization and LLM systems: consider pairing with projects such as [nanoGPT](https://github.com/karpathy/nanoGPT) and [nano-vllm](https://github.com/GeeeekExplorer/nano-vllm)
The course website itself provides a curated list of additional references and materials, which can be found here:
[Book-related documentation and courses](https://hao-ai-lab.github.io/cse234-w25/resources/#book-related-documentation-and-courses)
## Course Resources
- Course Website: https://hao-ai-lab.github.io/cse234-w25/
- Lecture Videos: https://hao-ai-lab.github.io/cse234-w25/
- Reading Materials: https://hao-ai-lab.github.io/cse234-w25/resources/
- Assignments: https://hao-ai-lab.github.io/cse234-w25/assignments/
## Resource Summary
All course materials are released in open-source form. However, the online grading infrastructure and reference solutions for assignments have not been made public.
## Additional Resources / Further Reading
- [GPUMode](https://www.youtube.com/@GPUMODE): offers in-depth explanations of GPU kernels and systems. Topics referenced in the course—such as [DistServe](https://www.youtube.com/watch?v=tIPDwUepXcA), [FlashAttention](https://www.youtube.com/watch?v=VPslgC9piIw), and [Triton](https://www.youtube.com/watch?v=njgow_zaJMw)—all have excellent extended talks available.

View File

@@ -0,0 +1,77 @@
# CSE234: Data Systems for Machine Learning
## 课程简介
- 所属大学UCSD
- 先修要求:线性代数,深度学习,操作系统,计算机网络,分布式系统
- 编程语言Python, Triton
- 课程难度:🌟🌟🌟
- 预计学时120小时
<!-- 用一两段话介绍这门课程,内容包括但不限于:
1课程覆盖的知识点范围
2与同类课程相比它的优势与特点
3学习这门课程的体验与感受
4自学这门课的注意点踩过的坑、难度预警等等
5... ...
-->
本课程专注于设计一个全面的大语言模型(LLM)系统课程作为设计高效LLM系统的入门介绍。
课程可以更准确地分为三个部分(外加若干 guest lecture
Part 1. 基础:现代深度学习与计算表示
- Modern DL 与计算图computational graph / framework 基础)
- Autodiff 与 ML system 架构概览
- Tensor format、MatMul 深入与硬件加速器accelerators
Part 2. 系统与性能优化:从 GPU Kernel 到编译与内存
- GPUs & CUDA含基本性能模型
- GPU MatMul 与算子编译operator compilation
- Triton 编程、图优化与编译graph optimization & compilation
- Memory含训练/推理中的内存问题与技巧)
- Quantization量化方法与系统落地
Part 3. LLM系统训练与推理
- 并行策略模型并行、collective communication、intra-/inter-op、自动并行化
- LLM 基础Transformer、Attention、MoE
- LLM 训练优化FlashAttention 等
- LLM 推理continuous batching、paged attention、disaggregated prefill/decoding
- Scaling law
Guest lecturesML compiler、LLM pretraining/open science、fast inference、tool use & agents 等,作为补充与扩展。)
CSE234的最大特点在于非常专注于以LLM (LLM System)为核心应用场景,强调真实系统设计中的取舍与工程约束,而非停留在算法或 API 使用层面。课程作业通常需要直接面对性能瓶颈如内存带宽、通信开销、kernel fusion 等),并通过 Triton 或系统级优化手段加以解决,对理解“为什么某些 LLM 系统设计是现在这个样子”非常有帮助。学习体验整体偏硬核,前期对系统与并行计算背景要求较高,自学时建议提前补齐 CUDA/并行编程与基础系统知识,否则在后半部分(尤其是 LLM 优化与推理相关内容)会明显感到陡峭的学习曲线。但一旦跟上节奏,这门课对从事 LLM Infra / ML Systems / AI Compiler 方向的同学具有很强的长期价值。
## 学习路线推荐
课程本身其实比较循序渐进但是对于没有系统与并行计算背景的同学来说可能到第二部分会感觉稍微陡峭一点。课程最核心的部分其实是要花很多时间动手实现与优化系统因此建议在读paper的时候就可以在Github上找一些相关的开源项目动手实现相关的系统或者Kernel加深理解。
- 基础部分:建议配合 [micrograd](https://github.com/karpathy/micrograd) 等开源项目一起学习
- 系统与性能优化 & LLM系统建议配合 [nanoGPT](https://github.com/karpathy/nanoGPT), [nano-vllm](https://github.com/GeeeekExplorer/nano-vllm) 等开源项目一起食用
课程页面本身提供了一些知识与资源,可以参考:[Book related documentation and courses](https://hao-ai-lab.github.io/cse234-w25/resources/#book-related-documentation-and-courses)
## 课程资源
- 课程网站https://hao-ai-lab.github.io/cse234-w25/
- 课程视频https://hao-ai-lab.github.io/cse234-w25/
- 课程教材https://hao-ai-lab.github.io/cse234-w25/resources/
- 课程作业https://hao-ai-lab.github.io/cse234-w25/assignments/
## 资源汇总
所有课程内容都发布了对应的开源版本,但在线测评和作业参考答案部分尚未开源。
## 其他资源/课程延伸
- [GPUMode](https://www.youtube.com/@GPUMODE): 有非常多关于GPU Kernel / System的深度讲解。课程中提到的包括[DistServe](https://www.youtube.com/watch?v=tIPDwUepXcA), [FlashAttention](https://www.youtube.com/watch?v=VPslgC9piIw), [Triton](https://www.youtube.com/watch?v=njgow_zaJMw) 都有很好的延伸

View File

@@ -0,0 +1,27 @@
# MIT6.5940: TinyML and Efficient Deep Learning Computing
## Descriptions
- Offered by: MIT
- Prerequisites: Computer architecture, Deep Learning
- Programming Languages: Python
- Difficulty: 🌟🌟🌟🌟
- Class Hour: 50h
This course, taught by MIT Professor [Song Han](https://hanlab.mit.edu/songhan), focuses on efficient machine learning techniques. Students are expected to have a pre-requisite of deep learning basics.
The course is divided into three main sections. The first section covers various key techniques for lightweight neural networks, such as pruning, quantization, distillation, and neural architecture search (NAS). Building on these foundations, the second section introduces efficient optimization techniques tailored to specific application scenarios. These include cutting-edge topics in deep learning, such as inference for large language models, long-context support, post-training acceleration, multimodal large language models, GANs, diffusion models, and so on. The third section focuses on efficient training techniques, such as large-scale distributed parallelism, automatic parallel optimization, gradient compression, and on-device training. Professor Song Hans lectures are clear and insightful, covering a wide range of topics, with a strong focus on trending areas. Those interested in gaining a foundational understanding of large language models may particularly benefit from the second and third sections.
The course materials and resources are available on the course website. Official lecture videos can be found on YouTube, and both raw and subtitled versions are available on Bilibili. There are five assignments in total: the first three focus on quantization, pruning, and NAS, while the last two involve compression and efficient deployment of large language models. The overall difficulty is relatively manageable, making the assignments an excellent way to solidify core knowledge.
## Course Resources
- Course Website: [2024fall](https://hanlab.mit.edu/courses/2024-fall-65940), [2023fall](https://hanlab.mit.edu/courses/2023-fall-65940)
- Recordings: [2024fall](https://www.youtube.com/playlist?list=PL80kAHvQbh-qGtNc54A6KW4i4bkTPjiRF), [2023fall](https://www.youtube.com/playlist?list=PL80kAHvQbh-pT4lCkDT53zT8DKmhE0idB)
- Textbooks: None
- Assignments: Five labs in total
## Personal Resources
All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPig/MIT6.5940_TinyML - GitHub](https://github.com/PKUFlyingPig/MIT6.5940_TinyML).

View File

@@ -0,0 +1,26 @@
# MIT6.5940: TinyML and Efficient Deep Learning Computing
## 课程简介
- 所属大学MIT
- 先修要求:体系结构、深度学习基础、
- 编程语言Python
- 课程难度:🌟🌟🌟🌟
- 预计学时50小时
这门课由 MIT 的 [Song Han](https://hanlab.mit.edu/songhan) 教授讲授,侧重于高效的机器学习训练、推理技术。学生需要有一定的深度学习方面的知识基础。
课程主要分为三个部分首先讲授了让神经网络轻量化的各种关键技术例如剪枝、量化、蒸馏、网络架构搜索等等。有了这些基础之后课程第二部分会讲授面向特定领域场景的各种高效优化技术涉及了目前深度学习最前沿热门的各个方向例如大语言模型的推理、长上下文支持、后训练加速、多模态大语言模型、GAN、扩散模型等等。课程第三部分主要涉及各类高效训练技术例如大规模分布式并行、自动并行优化、梯度压缩、边缘训练等等。Song Han 教授的讲解深入浅出,覆盖的知识面很广,且都是当前热门的领域方向,如果是想对大语言模型有初步了解也可以重点关注第二和第三部分的内容。
课程内容和资源都可以在课程网站上找到视频在油管上有官方版本B站也有生肉和熟肉搬运可以自行查找。课程作业一共有5个前三个分别考察了量化、剪枝和 NAS后两个主要是对大语言模型的压缩和高效部署总体难度相对简单但能很好地巩固核心知识。
## 课程资源
- 课程网站:[2024fall](https://hanlab.mit.edu/courses/2024-fall-65940), [2023fall](https://hanlab.mit.edu/courses/2023-fall-65940)
- 课程视频:[2024fall](https://www.youtube.com/playlist?list=PL80kAHvQbh-qGtNc54A6KW4i4bkTPjiRF), [2023fall](https://www.youtube.com/playlist?list=PL80kAHvQbh-pT4lCkDT53zT8DKmhE0idB)
- 课程教材:无
- 课程作业共5个实验具体要求见课程网站
## 资源汇总
@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPig/MIT6.5940_TinyML - GitHub](https://github.com/PKUFlyingPig/MIT6.5940_TinyML) 中。

View File

@@ -1,4 +1,4 @@
# Advanced Machine Learning
# Advanced Machine Learning Roadmap
This learning path is suitable for students who have already learned the basics of machine learning (ML, NLP, CV, RL), such as senior undergraduates or junior graduate students, and have published at least one paper in top conferences (NeurIPS, ICML, ICLR, ACL, EMNLP, NAACL, CVPR, ICCV) and are interested in pursuing a research path in machine learning.

View File

@@ -1,4 +1,4 @@
# 机器学习进阶
# 机器学习进阶学习路线
此路线图适用于已经学过了基础机器学习 (ML, NLP, CV, RL) 的同学 (高年级本科生或低年级研究生),已经发表过至少一篇顶会论文 (NeurIPS, ICML, ICLR, ACL, EMNLP, NAACL, CVPR, ICCV) 想要走机器学习科研路线的选手。
@@ -53,11 +53,11 @@
- 读完 PRML 第 13 章之后,再去读 PRML 第 8 章 (Graphical Models) -- 此时这部分应该会读得很轻松
- 以上的内容可以进一步对照 CMU 10-708 PGM 课程材料
到目前为止,应该能够掌握
到目前为止,应该能够掌握:
- 概率模型的基础定义
- 精准推断 - Sum-Product
- 近似推断 - MCMC
- 近似推断 - VI
然后就可以去做更进阶的内容
然后就可以去做更进阶的内容

View File

@@ -8,7 +8,7 @@
- Course Difficulty🌟🌟🌟🌟
- Estimated Hours80 hours
CS224n is an introductory course in Natural Language Processing (NLP) offered by Stanford and led by renowned NLP expert Chris Manning, the creator of the word2vec algorithm. The course covers core concepts in the field of NLP, including word embeddings, RNNs, LSTMs, Seq2Seq models, machine translation, attention mechanisms, Transformers, and more.
CS224n is an introductory course in Natural Language Processing (NLP) offered by Stanford and led by renowned NLP expert Chris Manning. The course covers core concepts in the field of NLP, including word embeddings, RNNs, LSTMs, Seq2Seq models, machine translation, attention mechanisms, Transformers, and more.
The course consists of 5 progressively challenging programming assignments covering word vectors, the word2vec algorithm, dependency parsing, machine translation, and fine-tuning a Transformer.

View File

@@ -8,7 +8,7 @@
- 课程难度:🌟🌟🌟🌟
- 预计学时80 小时
Stanford 的 NLP 入门课程,由自然语言处理领域的巨佬 Chris Manning 领衔教授word2vec 算法的开创者)。内容覆盖了词向量、RNN、LSTM、Seq2Seq 模型、机器翻译、注意力机制、Transformer 等等 NLP 领域的核心知识点。
Stanford 的 NLP 入门课程,由自然语言处理领域的巨佬 Chris Manning 领衔教授。内容覆盖了词向量、RNN、LSTM、Seq2Seq 模型、机器翻译、注意力机制、Transformer 等等 NLP 领域的核心知识点。
5 个编程作业难度循序渐进分别是词向量、word2vec 算法、Dependency parsing、机器翻译以及 Transformer 的 fine-tune。

View File

@@ -13,6 +13,6 @@ Stanford's CV introductory class, led by the giant of the computer field, Fei-Fe
## Course Resources
- Course Website<http://cs231n.stanford.edu/>
- Course Video<https://www.bilibili.com/video/BV1nJ411z7fe>
- Course Video[spring 2017 Bilibili (Classic)](https://www.bilibili.com/video/BV1nJ411z7fe), [spring 2025 YouTube (Latest)](https://www.youtube.com/playlist?list=PLoROMvodv4rOmsNzYBMe0gJY2XS8AQg16)
- Course Materials: None
- Coursework<http://cs231n.stanford.edu/schedule.html>3 Programming Assignments

View File

@@ -13,6 +13,6 @@ Stanford 的 CV 入门课,由计算机领域的巨佬李飞飞院士领衔教
## 课程资源
- 课程网站:<http://cs231n.stanford.edu/>
- 课程视频:<https://www.bilibili.com/video/BV1nJ411z7fe>
- 课程视频:[spring 2017 Bilibili](https://www.bilibili.com/video/BV1nJ411z7fe), [spring 2025 YouTube (最新)](https://www.youtube.com/playlist?list=PLoROMvodv4rOmsNzYBMe0gJY2XS8AQg16)
- 课程教材:无
- 课程作业:<http://cs231n.stanford.edu/schedule.html>3个编程作业

View File

@@ -57,4 +57,6 @@ Lastly, I recommend every student enrolled in this course to watch the lectures
- Course Website<https://web.eecs.umich.edu/~justincj/teaching/eecs498/WI2022/>
- Course Video<https://www.youtube.com/playlist?list=PL5-TkQAfAZFbzxjBHtzdVCWE0Zbhomg7r>
- Course Materials: Only recommended textbooks, link: <https://www.deeplearningbook.org/>
- CourseworkSee the course homepage for details, six Assignments and one Mini-Project
- CourseworkSee the course homepage for details, six Assignments and one Mini-Project
## Personal Resources
@Michael-Jetson The 200,000 to 300,000 words of notes I have taken (and did not include homework, etc.) can be used as a reference:[Michael-Jetson/ML_DL_CV_with_pytorch](https://github.com/Michael-Jetson/ML_DL_CV_with_pytorch)

View File

@@ -45,4 +45,6 @@ UMich 的 Computer Vision 课,课程视频和作业质量极高,涵盖的主
- 课程网站:<https://web.eecs.umich.edu/~justincj/teaching/eecs498/WI2022/>
- 课程视频:<https://www.youtube.com/playlist?list=PL5-TkQAfAZFbzxjBHtzdVCWE0Zbhomg7r>
- 课程教材:仅有推荐教材,链接:<https://www.deeplearningbook.org/>
- 课程作业见课程主页6 个 Assignment 和一个 Mini-Project
- 课程作业见课程主页6 个 Assignment 和一个 Mini-Project
## 资源汇总
@Michael-Jetson 本人所做的二三十万字的笔记(并没有包括作业等),可以当做一个参考[Michael-Jetson/ML_DL_CV_with_pytorch](https://github.com/Michael-Jetson/ML_DL_CV_with_pytorch)

View File

@@ -14,9 +14,11 @@ Although labeled as a machine learning course, the breadth of topics covered is
Don't be overly concerned about the difficulty of the assignments. All assignments come with example code from teaching assistants, guiding students through data processing, model building, and more. Students are required to make modifications based on the provided code. This presents an excellent opportunity to learn from high-quality code, and the assignments serve as valuable resources for those looking to breeze through course projects.
The 2025 version of the course has undergone a reform of the course content, focusing more on RAG, AI Agent, LLM all sorts of fancier content; it differs greatly from the 2023 version and previous versions
## Course Resources
- Course Websites<https://speech.ee.ntu.edu.tw/~hylee/ml/2022-spring.php>
- Course Videos<https://speech.ee.ntu.edu.tw/~hylee/ml/2022-spring.php>
- Course Websites[Spring2023](https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php), [Spring2025](https://speech.ee.ntu.edu.tw/~hylee/ml/2025-spring.php)
- Course Videos[Spring2023](https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php), [Spring2025](https://speech.ee.ntu.edu.tw/~hylee/ml/2025-spring.php)
- Course Textbook: N/A
- Course Assignments<https://speech.ee.ntu.edu.tw/~hylee/ml/2022-spring.php>, 15 labs covering a wide range of deep learning domains
- Course Assignments[Spring2023](https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php)(15 labs covering a wide range of deep learning domains), [Spring2025](https://speech.ee.ntu.edu.tw/~hylee/ml/2025-spring.php) (focus on LLM related work like AI Agent)

View File

@@ -15,9 +15,11 @@ RL、Compression、Life-Long Learning 以及 Meta Learning。可谓是包罗万
大家也大可不必担心作业的难度,因为所有作业都会提供助教的示例代码,帮你完成数据处理、模型搭建等,你只需要在其基础上进行适量的修改即可。这也是一个学习别人优质代码的极好机会,大家需要水课程大作业的话,这里也是一个不错的资料来源。
2025年版课程的课程内容发生改革更加侧重于RAG、AI Agent、LLM种种更fasion的内容与2023版及之前版本差异极大
## 课程资源
- 课程网站:<https://speech.ee.ntu.edu.tw/~hylee/ml/2022-spring.php>
- 课程视频:<https://speech.ee.ntu.edu.tw/~hylee/ml/2022-spring.php>,每节课的链接参见课程网站
- 课程网站:[Spring2023](https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php), [Spring2025](https://speech.ee.ntu.edu.tw/~hylee/ml/2025-spring.php)
- 课程视频:[Spring2023](https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php), [Spring2025](https://speech.ee.ntu.edu.tw/~hylee/ml/2025-spring.php),每节课的链接参见课程网站
- 课程教材:无
- 课程作业:<https://speech.ee.ntu.edu.tw/~hylee/ml/2022-spring.php>15 个 lab几乎覆盖了主流深度学习的所有领域
- 课程作业:[Spring2023](https://speech.ee.ntu.edu.tw/~hylee/ml/2023-spring.php) (5 个 lab几乎覆盖了主流深度学习的所有领域部分作业colab上可能无法打开这时候可以参考弘毅老师的github), [Spring2025](https://speech.ee.ntu.edu.tw/~hylee/ml/2025-spring.php) (主要关注 AI Agent 等 LLM 相关领域)

View File

@@ -0,0 +1,20 @@
# MIT6.S184: Generative AI with Stochastic Differential Equations
## Course Introduction
- University: MIT
- Prerequisites: Basic understanding of deep learning, and be comfortable with calculus and linear algebra
- Programming Language: Python (with PyTorch)
- Course Difficulty: 🌟🌟🌟🌟
- Estimated Study Hours: 20
This course is an introductory diffusion model course offered during MIT's IAP term by MIT CSAIL. Taught by MIT students Peter Holderrieth and Ezra Erives, the course provides a clear and accessible explanation of the mathematical foundations of diffusion and flow-matching models from the perspective of differential equations. It also includes hands-on labs where students build diffusion models from scratch, concluding with lectures on applications in cutting-edge areas such as molecular design and robotics.
The accompanying lecture notes are exceptionally well-written and highly recommended for in-depth reading.
## Course Resources
- Course Website: https://diffusion.csail.mit.edu/
- Course Videos: See course website
- Course Textbook: [An Introduction to Flow Matching and Diffusion Models](https://arxiv.org/abs/2506.02070)
- Course Assignments: Three labs, see course website for details

View File

@@ -0,0 +1,20 @@
# MIT6.S184: Generative AI with Stochastic Differential Equations
## 课程简介
- 所属大学MIT
- 先修要求Basic understanding of deep learning, and be comfortable with calculus and linear algebra
- 编程语言Python (with PyTorch)
- 课程难度:🌟🌟🌟🌟
- 预计学时20
这门课程是由 MIT CSAIL 的 IAP 小学期开办的扩散模型入门课程。该课程由 MIT 学生 Peter Holderrieth 和 Ezra Erives 主讲,从微分方程的视角深入浅出地讲解了扩散模型和流匹配模型的数学理论基础,并且配以实践让学生从零构建扩散模型,最后通过讲座介绍其在分子设计和机器人学等前沿技术中的应用。
课程配套的教材笔记写得非常好,推荐仔细阅读。
## 课程资源
- 课程网站https://diffusion.csail.mit.edu/
- 课程视频:参见课程网站
- 课程教材:[An Introduction to Flow Matching and Diffusion Models](https://arxiv.org/abs/2506.02070)
- 课程作业:三个实验,具体参见课程网站

View File

@@ -0,0 +1,29 @@
# Deep Generative Models Roadmap
In recent years, large language models (LLMs) have become a hot topic, which is also highly relevant to the authors PhD research. This roadmap aims to share various course materials and references that the author found useful while getting familiar with and delving into the field of deep generative models. Its intended to help practitioners in related areas or anyone interested in the underlying principles of generative models. Due to limited time outside of research, the author has not completed all the course assignments; updates will be added gradually when time permits.
In fact, LLMs are just one branch of deep generative models. Other types such as VAEs, GANs, Diffusion Models, and Flows still play an important role in the broader domain of "generation." The term AIGC (AI-generated content) broadly refers to these technologies.
Recommended courses for learning:
- [MIT 6.S184: Generative AI with Stochastic Differential Equations](./MIT6.S184.md): An introductory GenAI course offered during MIT's IAP term. It explains the mathematical foundations behind Flow Matching and Diffusion Models from the perspective of differential equations, accompanied by simple hands-on labs to help students grasp the concepts through practice. Ideal for those interested in the underlying mathematical principles.
- [MIT 6.S978: Deep Generative Models](https://mit-6s978.github.io/schedule.html): Taught by MITs rising star Prof. Kaiming He, this course covers fundamental theories and cutting-edge papers related to various generative models. The assignments include well-prepared scaffold code. While not overly difficult, they help deepen understanding and provide a quick, comprehensive view of the field.
- [UCB CS294-158-SP24: Deep Unsupervised Learning](https://sites.google.com/view/berkeley-cs294-158-sp24/home): Taught by reinforcement learning giant Pieter Abbeel. Compared to the MIT course, this one is more comprehensive and includes lecture videos and slides. The homework only provides test code, so students must implement model architecture and training code themselves. Though demanding, its ideal for those who want hands-on experience in training models. As is well known, there are many practical tricks in deep learning, and the devil is often in the details. Nothing teaches those details better than training a model yourself.
- [CMU 10423: Generative AI](https://www.cs.cmu.edu/~mgormley/courses/10423/schedule.html): CMUs GenAI course focuses more on large language models compared to the previous two, but shares much of the same content otherwise. The assignments are quite engaging and worth trying out in your spare time.
The GPT series by OpenAI has demonstrated remarkable performance under the guidance of scaling laws, especially in mathematics and coding. If you are primarily interested in LLMs, the following courses are recommended:
- [Stanford CS336: Language Modeling from Scratch](https://stanford-cs336.github.io/spring2025/index.html): As the title suggests, this course teaches you to build all the core components of an LLM from scratch, such as the tokenizer, model architecture, training optimizer, low-level operators, data cleaning, and post-training algorithms. Each assignment has a 40-50 page PDF handout—very rigorous. Highly recommended if you want to fully understand every low-level detail of LLMs.
- [CMU 11868: Large Language Model Systems](https://llmsystem.github.io/llmsystem2025spring/): This CMU course focuses on system-level optimization of LLMs, including GPU acceleration, distributed training/inference, and cutting-edge techniques. Great for students in systems research to gain a holistic understanding of the field. (Disclosure: One of my papers on PD decoupling is included in the syllabus, hence the personal recommendation.) Assignments involve implementing a mini-PyTorch framework and then building system-level LLM optimizations on top of it.
- [CMU 11667: Large Language Models: Methods and Applications](https://cmu-llms.org/) and [CMU 11711: Advanced NLP](https://www.phontron.com/class/anlp-fall2024/): Compared to the previous two, these courses focus more on higher-level algorithms and applications. Each lecture includes many recommended readings, making them suitable for gaining a broad understanding of LLM research frontiers. You can then dive deeper into any subfield that interests you based on the reading materials.
In addition to courses, the following resources are also highly recommended:
- [Awesome-LLM](https://github.com/Hannibal046/Awesome-LLM): A curated list of LLM-related resources.
- [LLMSys-PaperList](https://github.com/AmberLJC/LLMSys-PaperList): A collection of system-related papers on LLMs.
- [MLsys-Guide](https://github.com/PKU-DAIR/Starter-Guide/blob/main/docs/systems/Readme.md): A beginners guide to deep learning systems.

View File

@@ -0,0 +1,29 @@
# 深度生成模型学习路线
近几年大语言模型成为大热的方向,也和笔者博士期间的课题非常相关。这篇路线图旨在分享笔者在熟悉和深入深度生成模型这一领域过程中学习和参考的各类课程资料,方便相关领域的从业者或者对生成模型的底层原理感兴趣的朋友共同学习。由于笔者科研之余时间有限,很多课程的实验并未完成,等后续有时间完成之后会在该目录下一一添加。
其实,大语言模型只是深度生成模型的一个分支,而其他生成模型例如 VAEGANDiffusion ModelFlow 等等,都还在“生成”这一领域占有重要地位,所谓的 AIGC就是泛指这一类技术。
推荐学习下列课程:
- [MIT 6.S184: Generative AI with Stochastic Differential Equations](./MIT6.S184.md): MIT IAP 小学期的 GenAI 入门课程,主要通过微分方程的视角讲解了 Flow Matching 和 Diffusion Model 背后的数学原理,并且配有简单的小实验让学生在实践中理解,适合对底层数学原理感兴趣的同学入门。
- [MIT 6.S978: Deep Generative Models](https://mit-6s978.github.io/schedule.html): MIT 新晋明星教授何恺明亲授,涵盖了各种生成模型的基础理论和相关前沿论文,几次作业都有丰富的脚手架代码,难度不高但能加深理解,能对这个领域有个快速全貌了解。
- [UCB CS294-158-SP24: Deep Unsupervised Learning](https://sites.google.com/view/berkeley-cs294-158-sp24/home): 强化学习领域的顶级巨佬 Pieter Abbeel 主讲,相比 MIT 的课程内容更加丰富全面,并且有配套课程视频和 Slides。此外课后作业只有测试代码需要学生自主编写模型架构定义和训练代码虽然硬核但很适合有志于炼丹的同学练手。众所周知深度学习理论实践中存在着很多经验技巧魔鬼往往存在于细节里。没有什么比自己上手训一个模型更能掌握这些细节了。
- [CMU 10423: Generative AI](https://www.cs.cmu.edu/~mgormley/courses/10423/schedule.html): CMU 的 GenAI 课程,相比前两门课更侧重于大语言模型一些,其他内容和前两门课重合较多。不过课程作业都挺有意思,推荐闲暇时间练练手。
OpenAI 的 GPT 系列让大语言模型在 Scaling Law 的指引下展现出惊人的效果,在数学和代码领域取得了很大进展。如果你主要关注大语言模型这个方向,那么推荐如下课程:
- [Stanford CS336: Language Modeling from Scratch](https://stanford-cs336.github.io/spring2025/index.html): 正如课程标题写的,在这门课程中你将从头编写大语言模型的所有核心组件,例如 Tokenizer模型架构训练优化器底层算子训练数据清洗后训练算法等等。每次作业的 handout 都有四五十页 pdf相当硬核。如果你想充分吃透大语言模型的所有底层细节那么非常推荐学习这门课程。
- [CMU 11868: Large Language Model Systems](https://llmsystem.github.io/llmsystem2025spring/): CMU 的大语言模型系统课程,侧重底层系统优化,例如 GPU 加速,分布式训练和推理,以及各种前沿技术。非常适合从事系统领域的同学对这个方向有个全貌性的了解。课表里还包含了一篇我发表的 PD 分离相关的文章,因此私心推荐一下。课程作业的话会让你先实现一个迷你 Pytorch然后在上面实现各种大语言模型的系统级优化。
- [CMU 11667: Large Language Models: Methods and Applications](https://cmu-llms.org/) 和 [CMU 11711: Advanced NLP](https://www.phontron.com/class/anlp-fall2024/): 和前两门课相比,这两门课更偏重上层算法和应用,而且每节课都列举了很多相关阅读材料,适合对大语言模型发展前沿的各个方向都有个粗糙的认识,如果对某个子领域感兴趣的话再寻着参考资料深入学习。
除了课程以外,还有很多不错的资料作为参考:
- [Awesome-LLM](https://github.com/Hannibal046/Awesome-LLM): 大语言模型相关资料汇总
- [LLMSys-PaperList](https://github.com/AmberLJC/LLMSys-PaperList): 大语言模型系统相关论文汇总
- [MLsys-Guide](https://github.com/PKU-DAIR/Starter-Guide/blob/main/docs/systems/Readme.md): 深度学习系统入门指南

View File

@@ -0,0 +1,31 @@
# CMU11-667: Large Language Models: Methods and Applications
## Course Overview
- University: Carnegie Mellon University
- Prerequisites: Solid background in machine learning (equivalent to CMU 10-301/10-601) and natural language processing (equivalent to 11-411/11-611); proficiency in Python and familiarity with PyTorch or similar deep learning frameworks.
- Programming Language: Python
- Course Difficulty: 🌟🌟🌟🌟
- Estimated Study Hours: 100+ hours
This graduate-level course provides a comprehensive overview of methods and applications of Large Language Models (LLMs), covering a wide range of topics from core architectures to cutting-edge techniques. Course content includes:
1. **Foundations**: Neural network architectures for language modeling, training procedures, inference, and evaluation metrics.
2. **Advanced Topics**: Model interpretability, alignment methods, emergent capabilities, and applications in both textual and non-textual domains.
3. **System & Optimization Techniques**: Large-scale pretraining strategies, deployment optimization, and efficient training/inference methods.
4. **Ethics & Safety**: Addressing model bias, adversarial attacks, and legal/regulatory concerns.
The course blends lectures, readings, quizzes, interactive exercises, assignments, and a final project to offer students a deep and practical understanding of LLMs, preparing them for both research and real-world system development.
**Self-Study Tips**:
- Thoroughly read all assigned papers and materials before each class.
- Become proficient with PyTorch and implement core models and algorithms by hand.
- Complete the assignments diligently to build practical skills and reinforce theoretical understanding.
## Course Resources
- Course Website: <https://cmu-llms.org/>
- Course Videos: Selected lecture slides and materials are available on the website; full lecture recordings may require CMU internal access.
- Course Materials: Curated research papers and supplementary materials, with the full reading list available on the course site.
- Assignments: Six programming assignments covering data preparation, Transformer implementation, retrieval-augmented generation, model evaluation and debiasing, and training efficiency. Details at <https://cmu-llms.org/assignments/>

View File

@@ -0,0 +1,31 @@
# CMU11-667: Large Language Models: Methods and Applications
## 课程简介
- 所属大学Carnegie Mellon University
- 先修要求:具备机器学习基础(相当于 CMU 的 10-301/10-601和自然语言处理基础相当于 11-411/11-611熟练掌握 Python熟悉 PyTorch 等深度学习框架。
- 编程语言Python
- 课程难度:🌟🌟🌟🌟
- 预计学时100 学时以上
该研究生课程全面介绍了大型语言模型LLM的方法与应用涵盖从基础架构到前沿技术的广泛主题。课程内容包括
1. **基础知识**:语言模型的网络架构、训练、推理和评估方法。
2. **进阶主题**:模型解释性、对齐方法、涌现能力,以及在语言任务和非文本任务中的应用。
3. **扩展技术**:大规模预训练技术、模型部署优化,以及高效的训练和推理方法。
4. **伦理与安全**:模型偏见、攻击方法、法律问题等。
课程采用讲座、阅读材料、小测验、互动活动、作业和项目相结合的方式进行,旨在为学生提供深入理解 LLM 的机会,并为进一步的研究或应用打下坚实基础。
**自学建议**
- 认真阅读每次课前指定的论文和材料。
- 熟悉 PyTorch 等深度学习框架,动手实现模型和算法。
- 扎实完成课程作业。
## 课程资源
- 课程网站:<https://cmu-llms.org/>
- 课程视频:部分讲座幻灯片和材料可在课程网站获取,完整视频可能需通过 CMU 内部平台访问。
- 课程教材:精选论文和资料,具体阅读列表详见课程网站。
- 课程作业共六次作业涵盖预训练数据准备、Transformer 实现、检索增强生成、模型比较与偏见缓解、训练效率提升等主题,详情见 <https://cmu-llms.org/assignments/>

View File

@@ -0,0 +1,27 @@
# CMU 11-711: Advanced Natural Language Processing (ANLP)
## Course Overview
* University: Carnegie Mellon University
* Prerequisites: No strict prerequisites, but students should have experience with Python programming, as well as a background in probability and linear algebra. Prior experience with neural networks is recommended.
* Programming Language: Python
* Course Difficulty: 🌟🌟🌟🌟
* Estimated Workload: 100 hours
This is a graduate-level course covering both foundational and advanced topics in Natural Language Processing (NLP). The syllabus spans word representations, sequence modeling, attention mechanisms, Transformer architectures, and cutting-edge topics such as large language model pretraining, instruction tuning, complex reasoning, multimodality, and model safety. Compared to similar courses, this course stands out for the following reasons:
1. **Comprehensive and research-driven content**: In addition to classical NLP methods, it offers in-depth discussions of recent trends and state-of-the-art techniques such as LLaMa and GPT-4.
2. **Strong practical component**: Each lecture includes code demonstrations and online quizzes, and the final project requires reproducing and improving upon a recent research paper.
3. **Highly interactive**: Active engagement is encouraged through Piazza discussions, Canvas quizzes, and in-class Q&A, resulting in an immersive and well-paced learning experience.
Self-study tips:
* Read the recommended papers before class and follow the reading sequence step-by-step.
* Set up a Python environment and become familiar with PyTorch and Hugging Face, as many hands-on examples are based on these frameworks.
## Course Resources
* Course Website: [https://www.phontron.com/class/anlp-fall2024/](https://www.phontron.com/class/anlp-fall2024/)
* Course Videos: Lecture recordings are available on Canvas (CMU login required)
* Course Texts: Selected classical and cutting-edge research papers + chapters from *A Primer on Neural Network Models for Natural Language Processing* by Yoav Goldberg
* Course Assignments: [https://www.phontron.com/class/anlp-fall2024/assignments/](https://www.phontron.com/class/anlp-fall2024/assignments/)

View File

@@ -0,0 +1,28 @@
# CMU 11-711: Advanced Natural Language Processing (ANLP)
## 课程简介
* 所属大学Carnegie Mellon University
* 先修要求:无硬性先修要求,但需具备 Python 编程经验,以及概率论和线性代数基础;有神经网络使用经验者更佳。
* 编程语言Python
* 课程难度:🌟🌟🌟🌟
* 预计学时100 学时
该课程为研究生级别的 NLP 入门与进阶课程覆盖从词表征、序列建模到注意力机制、Transformer 架构,再到大规模语言模型预训练、指令微调与复杂推理、多模态和安全性等前沿主题。与其他同类课程相比,本课程:
1. **内容全面且紧跟最新研究**:除经典算法外,深入讲解近年热门的大模型方法(如 LLaMa、GPT-4 等)。
2. **实践性强**:每次课配套代码演示与在线小测,学期末项目需复现并改进一篇前沿论文。
3. **互动良好**Piazza 讨论、Canvas 测验及现场答疑,学习体验沉浸而有节奏。
自学建议:
* 提前阅读课前推荐文献,跟着阅读顺序循序渐进。
* 准备好 Python 环境并熟悉 PyTorch/Hugging Face因为大量实战代码示例基于此。
* 扎实完成课程作业。
## 课程资源
* 课程网站:[https://www.phontron.com/class/anlp-fall2024/](https://www.phontron.com/class/anlp-fall2024/)
* 课程视频:课堂讲座录制并上传至 Canvas需 CMU 帐号登录)
* 课程教材各类经典与前沿论文Goldberg《A Primer on Neural Network Models for Natural Language Processing》章节阅读
* 课程作业:[https://www.phontron.com/class/anlp-fall2024/assignments/](https://www.phontron.com/class/anlp-fall2024/assignments/)

View File

@@ -0,0 +1,40 @@
# CMU 11-868: Large Language Model Systems
## Course Overview
- University: Carnegie Mellon University
- Prerequisites: Strongly recommended to have taken Deep Learning (11-785) or Advanced NLP (11-611 or 11-711)
- Programming Language: Python
- Course Difficulty: 🌟🌟🌟🌟
- Estimated Workload: 120 hours
This graduate-level course focuses on the full stack of large language model (LLM) systems — from algorithms to engineering. The curriculum covers, but is not limited to:
1. **GPU Programming and Automatic Differentiation**: Master CUDA kernel calls, fundamentals of parallel programming, and deep learning framework design.
2. **Model Training and Distributed Systems**: Learn efficient training algorithms, communication optimizations (e.g., ZeRO, FlashAttention), and distributed training frameworks like DDP, GPipe, and Megatron-LM.
3. **Model Compression and Acceleration**: Study quantization (GPTQ), sparsity (MoE), compiler technologies (JAX, Triton), and inference-time serving systems (vLLM, CacheGen).
4. **Cutting-Edge Topics and Systems Practice**: Includes retrieval-augmented generation (RAG), multimodal LLMs, RLHF systems, and end-to-end deployment, monitoring, and maintenance.
Compared to similar courses, this one stands out for its **tight integration with recent papers and open-source implementations** (hands-on work expanding CUDA support in the miniTorch framework), a **project-driven assignment structure** (five programming assignments + a final project), and **guest lectures from industry experts**, offering students real-world insights into LLM engineering challenges and solutions.
**Self-Study Tips**:
- Set up a CUDA-compatible environment in advance (NVIDIA GPU + CUDA Toolkit + PyTorch).
- Review fundamentals of parallel computing and deep learning (autograd, tensor operations).
- Carefully read the assigned papers and slides before each lecture, and follow the assignments to extend the miniTorch framework from pure Python to real CUDA kernels.
This course assumes a solid understanding of deep learning and is **not suitable for complete beginners**. See the [FAQ](https://llmsystem.github.io/llmsystem2024spring/docs/FAQ) for more on prerequisites.
The assignments are fairly challenging and include:
1. **Assignment 1**: Implement an autograd framework + custom CUDA ops + basic neural networks
2. **Assignment 2**: Build a GPT2 model from scratch
3. **Assignment 3**: Accelerate training with custom CUDA kernels for Softmax and LayerNorm
4. **Assignment 4**: Implement distributed model training (difficult to configure independently for self-study)
## Course Resources
- Course Website: <https://llmsystem.github.io/llmsystem2025spring/>
- Syllabus: <https://llmsystem.github.io/llmsystem2025spring/docs/Syllabus/>
- Assignments: <https://llmsystem.github.io/llmsystem2025springhw/>
- Course Texts: Selected research papers + selected chapters from *Programming Massively Parallel Processors (4th Edition)*

View File

@@ -0,0 +1,39 @@
# CMU 11-868: Large Language Model Systems
## 课程简介
- 所属大学Carnegie Mellon University
- 先修要求:强烈建议已修读 Deep Learning (11785) 或 Advanced NLP (11-611 或 11-711)
- 编程语言Python
- 课程难度:🌟🌟🌟🌟
- 预计学时120 学时
该课程面向研究生开设,聚焦“从算法到工程”的大语言模型系统构建全过程。课程内容包括但不限于:
1. **GPU 编程与自动微分**:掌握 CUDA kernel 调用、并行编程基础,以及深度学习框架设计原理。
2. **模型训练与分布式系统**学习高效的训练算法、通信优化ZeRO、FlashAttention、分布式训练框架DDP、GPipe、Megatron-LM
3. **模型压缩与加速**量化GPTQ、稀疏化MoE、编译技术JAX、Triton、以及推理时的服务化设计vLLM、CacheGen
4. **前沿技术与系统实践**涵盖检索增强生成RAG、多模态 LLM、RLHF 系统,以及端到端的在线维护和监控。
与同类课程相比,本课程的优势在于**紧密结合最新论文与开源实现**(通过 miniTorch 框架动手扩展 CUDA 支持);**项目驱动**的作业体系(五次编程作业 + 期末大项目);以及**工业嘉宾讲座**,能让学生近距离了解真实世界中 LLM 工程实践的挑战与解决方案。
**自学建议**
- 提前配置好支持 CUDA 的开发环境NVIDIA GPU + CUDA Toolkit + PyTorch
- 复习并行计算和深度学习基础(自动微分、张量运算)。
- 阅读每次课前指定的论文与幻灯片,跟着作业把 miniTorch 框架从纯 Python 拓展到真实 CUDA 内核。
该课程要求你对深度学习有一定的预备知识,不适合纯小白入手,可见 [FAQ](https://llmsystem.github.io/llmsystem2024spring/docs/FAQ) 的先修要求。
实验总体来说是有难度的,主要内容如下:
1. Assignment1: 自动微分框架 + CUDA 手写算子 + 基础神经网络构建
2. Assignmant2: GPT2 模型构建
3. Assignment3: 通过手写 CUDA 的 Softmax 和 LayerNorm 算子优化模型训练速度
4. Assignment4: 分布式模型训练,自学的话可能不太好配置环境
## 课程资源
- 课程网站:<https://llmsystem.github.io/llmsystem2025spring/>
- 课程大纲:<https://llmsystem.github.io/llmsystem2025spring/docs/Syllabus/>
- 课程作业:<https://llmsystem.github.io/llmsystem2025springhw/>
- 课程教材:精选论文 + 《Programming Massively Parallel Processors, 4th Ed》 部分章节

View File

@@ -22,17 +22,17 @@ For hackers with weak foundations, getting stuck is a normal phenomenon. If you
## Course Resources
- Course Website: <https://dojo.pwn.college/cse365/>
- Course Website: <https://pwn.college/cse365-s2025/>
- Recordings: See course website
- Textbooks: None
- Assignments: 7 modules (167 challenges)
- Assignments: 8 modules (444 challenges)
## Personal Resources
- Lectures on YouTube: <https://youtube.com/pwncollege>
- Live Broadcasts on Twitch: <https://twitch.tv/pwncollege>
- Chat on Discord: <https://pwn.college/discord>
- Chat on Discord: <https://discord.com/channels/750635557666816031/1328463339528913058>
- Open Source on GitHub: <https://github.com/pwncollege>
- Contact us via Email: <pwn-college@asu.edu>
- Contact us via Email: <cse365@pwn.college>
In addition, due to an important factor in evaluating ASU students' course grades, the course does not encourage uploading problem-solving ideas, except for the first two challenges of each module.

View File

@@ -22,17 +22,17 @@
## 课程资源
- 课程网站:<https://dojo.pwn.college/cse365/>
- 课程网站:<https://pwn.college/cse365-s2025/>
- 课程视频:参见课程网站
- 课程教材:无
- 课程作业:7 个模块(167 个 challenge
- 课程作业:8 个模块(444 个 challenges
## 资源汇总
- Lectures on YouTube: <https://youtube.com/pwncollege>
- Live Broadcasts on Twitch: <https://twitch.tv/pwncollege>
- Chat on Discord: <https://pwn.college/discord>
- Chat on Discord: <https://discord.com/channels/750635557666816031/1328463339528913058>
- Open Source on GitHub: <https://github.com/pwncollege>
- Contact us via Email: <pwn-college@asu.edu>
- Contact us via Email: <cse365@pwn.college>
另外,出于评定 ASU 学生课程成绩的重要因素,官方不鼓励上传解题思路,每个模块的前两题除外。

View File

@@ -0,0 +1,24 @@
# MIT6.1600: Foundations of Computer Security
## Descriptions
- Offered by: MIT
- Prerequisites: discrete mathematics, basic programming, basic knowledge of computer systems
- Programming Languages: Python3
- Difficulty: 🌟🌟🌟
- Class Hour: 50 hours
MIT6.1600 is the undergraduate course on computer system security at MIT. The course is divided into five modules: authentication, transport security, platform security, software security, and human/end-user security. The organization of the course is quite clear: the authentication module focuses on authentication security, that is, how to prove that the "you" in the computer world is indeed "you". It then moves to the topic on communication security, such as data encryption and decryption, key exchange, etc. However, transport is only one aspect; the code ultimately needs to run on a device, which involves the security of the platform on which the code runs and even the software code itself. The course will also cover some content about privacy security, discussing group information security from a sociological perspective.
After completing this course, you will master many important fundamental concepts of computer security, such as public and private key encryption algorithms, hash algorithms, digital signatures, key exchange algorithms, and more. Besides the mathematics and theorem proofs, the course also uses the theoretical knowledge to explain many real-world security vulnerabilities, giving you a more concrete understanding of these security concepts. Additionally, there are six interesting labs that allow you to exploit many vulnerabilities through programming, deepening your understanding of the knowledge in practice, which I personally find quite interesting.
## Course Resources
- Course Website: [fall23](https://61600.csail.mit.edu/2023/), [fall22](https://61600.csail.mit.edu/2022/)
- Recordings: Refer to the course website.
- Textbooks: There is no required textbook, but the lecture notes are good reading materials.
- Assignments: 6 labs in total.
## Personal Resources
All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPig/MIT6.1600 - GitHub](https://github.com/PKUFlyingPig/MIT6.1600).

View File

@@ -0,0 +1,22 @@
# MIT6.1600: Foundations of Computer Security
## 课程简介
- 所属大学MIT
- 先修要求:离散数学,编程基础,计算机系统基础
- 编程语言Python3
- 课程难度:🌟🌟🌟
- 预计学时50小时
MIT 的计算机系统安全本科生课程,共分为 authentication, transport security, platform security, software security, 和 human/end-user security 五个模块。课程组织还是相当清晰的authentication 关注于认证安全即如何证明计算机世界的“你”确实是“你”。接着讲解大家了解较多的通信安全例如数据传输的加密解密密钥的交换等。但传输是一方面代码最终需要在终端上执行这就涉及到运行代码的平台本身甚至软件代码本身的安全性。最后课程还会讲一些关于隐私安全的内容上升到社会学的范畴去讨论群体信息安全。学完该课程你将会掌握计算机安全的很多重要基本概念例如公钥私钥加密算法、哈希算法、电子签名、密钥交换算法等等。除了稍显复杂枯燥的数学和定理证明外课程中还会结合具体知识点讲解很多现实发生的安全漏洞让你对这些安全概念有更感性的认识。此外还有6个课程实验让你通过编程实现很多漏洞的利用在实际中加深对知识的理解个人感觉还是很有意思的。
## 课程资源
- 课程网站:[fall23](https://61600.csail.mit.edu/2023/), [fall22](https://61600.csail.mit.edu/2022/)
- 课程视频:参见课程网站
- 课程教材:没有指定教材,每节课有 notes
- 课程作业一共6个实验难度适中
## 资源汇总
@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPig/MIT6.1600 - GitHub](https://github.com/PKUFlyingPig/MIT6.1600) 中。

View File

@@ -12,10 +12,10 @@ This course has been voted the most popular public course by Harvard students fo
## Course Resources
- Course Website: [2022](https://cs50.harvard.edu/x/2022/), [2023](https://cs50.harvard.edu/x/2023/)
- Recordings: [2022](https://cs50.harvard.edu/x/2022/), [2023](https://cs50.harvard.edu/x/2023/)
- Assignments: [2022](https://cs50.harvard.edu/x/2022/), [2023](https://cs50.harvard.edu/x/2023/)
- Course Website: [2022](https://cs50.harvard.edu/x/2022/), [2023](https://cs50.harvard.edu/x/2023/), [2024](https://cs50.harvard.edu/x/2024/), [2025](https://cs50.harvard.edu/x/2025/)
- Recordings: [2022](https://cs50.harvard.edu/x/2022/), [2023](https://cs50.harvard.edu/x/2023/), [2024](https://cs50.harvard.edu/x/2024/), [2025](https://cs50.harvard.edu/x/2025/)
- Assignments: [2022](https://cs50.harvard.edu/x/2022/), [2023](https://cs50.harvard.edu/x/2023/), [2024](https://cs50.harvard.edu/x/2024/), [2025](https://cs50.harvard.edu/x/2025/)
## Personal Resources
All the resources and assignments used by @mancuoj in this course are maintained in [mancuoj/CS50x - GitHub](https://github.com/mancuoj/CS50x).
All the resources and assignments used by @mancuoj in this course are maintained in [mancuoj/CS50x - GitHub](https://github.com/mancuoj/CS50x).

View File

@@ -12,11 +12,13 @@
## 课程资源
- 课程网站:[2022](https://cs50.harvard.edu/x/2022/), [2023](https://cs50.harvard.edu/x/2023/)
- 课程视频:[2022](https://cs50.harvard.edu/x/2022/), [2023](https://cs50.harvard.edu/x/2023/)
- 课程网站:[2025](https://cs50.harvard.edu/x/2025/), [2024](https://cs50.harvard.edu/x/2024/), [2023](https://cs50.harvard.edu/x/2023/), [2022](https://cs50.harvard.edu/x/2022/)
- 课程视频:原版参考课程网站,也可以在 B 站找到[中文字幕版](https://www.bilibili.com/video/BV1HW4y1A7Yi/?spm_id_from=333.999.0.0&vd_source=a4d76d1247665a7e7bec15d15fd12349)
- 课程教材:无
- 课程作业:[2022](https://cs50.harvard.edu/x/2022/), [2023](https://cs50.harvard.edu/x/2023/)
- 课程作业:参考课程网站。
## 资源汇总
@mancuoj 在学习这门课中用到的所有资源和作业实现都汇总在 [mancuoj/CS50x - GitHub](https://github.com/mancuoj/CS50x) 中。
@mancuoj 在学习这门课中用到的所有资源和作业实现都汇总在 [mancuoj/CS50x - GitHub](https://github.com/mancuoj/CS50x) 中。
@figuretu 将有价值的提问讨论以及相关学习资源整理在共享文档 [CS50 - 资源总目录](https://uufyjevghz.feishu.cn/docx/DP78d2U5TosTOTx9QCbcjp8GnBh) 中。

View File

@@ -1,17 +0,0 @@
# Stanford CS106B/X: Programming Abstractions in C++
## Descriptions
- Offered by: Stanford
- Prerequisites: CS50/CS106A/CS61A or equivalent
- Programming Languages: C++
- Difficulty: 🌟🌟
- Class Hour: 50-70 hours
CS106B/X are advanced programming courses at Stanford. CS106X is more difficult and in-depth than CS106B, but the main content is similar. Based on programming assignments in C++ language, students will develop the ability to solve real-world problems through programming abstraction. It also covers some simple data structures and algorithms, but is generally not as systematic as a specialized data structures course.
## Resources
- Course Website: [CS106B](https://web.stanford.edu/class/cs106b/), [CS106X](https://web.stanford.edu/class/cs106x/)
- Textbook: <https://web.stanford.edu/class/cs106x/res/reader/CS106BX-Reader.pdf>
- Recordings: <https://www.bilibili.com/video/BV1G7411k7jG>

View File

@@ -1,17 +0,0 @@
# Stanford CS106B/X: Programming Abstractions in C++
## 课程简介
- 所属大学Stanford
- 先修要求:计算机基础 (CS50/CS106A/CS61A or equivalent)
- 编程语言C++
- 课程难度:🌟🌟
- 预计学时50-70 小时
Stanford 的进阶编程课CS106X 在难度和深度上会比 CS106B 有所提高,但主体内容类似。主要通过 C++ 语言让学生在实际的编程作业里培养通过编程抽象解决实际问题的能力,同时也会涉及一些简单的数据结构和算法的知识,但总体来说没有一门专门的数据结构课那么系统。
## 课程资源
- 课程网站:[CS106B](https://web.stanford.edu/class/cs106b/), [CS106X](https://web.stanford.edu/class/cs106x/)
- 课程教材:<https://web.stanford.edu/class/cs106x/res/reader/CS106BX-Reader.pdf>
- 课程视频:<https://www.bilibili.com/video/BV1G7411k7jG>

View File

@@ -2,11 +2,11 @@
## Course Introduction
- Affiliated University: UCB
- Offered by: UCB
- Prerequisites: None
- Programming Language: Shell
- Course Difficulty: 🌟🌟🌟
- Estimated Study Time: 20 hours
- Difficulty: 🌟🌟🌟
- Class Hour: 20 hours
This is an introductory course on Linux from UCB, which I find more systematic and clearer than MIT's similarly aimed open course, Missing Semester. This is the main reason I recommend it. While Missing Semester seems more like a course for filling gaps for students who have started programming but haven't systematically used these tools, DeCal is more suitable for absolute beginners. The twelve-week course covers Linux basics, shell programming (including tmux and vim), package management, services, basic computer networks, network services, security (key management), Git, Docker, Kubernetes, Puppet, and CUDA. It's ideal for newcomers to understand and get started with the Linux environment.
@@ -17,6 +17,6 @@ To compensate for the inability to use remote servers and to familiarize with th
## Course Resources
- Course Website: [Official Site](https://decal.ocf.berkeley.edu/)
- Course Videos: Available on the official course website, [Bilibili](https://www.bilibili.com/video/BV1rs4y1T7zJ/?share_source=copy_web) has an incomplete transfer that only includes the first part.
- Course Videos: Available on the official course website, [Bilibili](https://www.bilibili.com/video/BV1rs4y1T7zJ/?share_source=copy_web) has an incomplete translation that only includes the first part.
- Course Textbook: No specified textbook, but each week's labs contain enough reading material for in-depth study.
- Course Assignments: Available on the official course website.

View File

@@ -17,7 +17,7 @@
## 课程资源
- 课程网站:[官网](https://decal.ocf.berkeley.edu/)
- 课程视频:见课程官网,[B站](https://www.bilibili.com/video/BV1rs4y1T7zJ/?share_source=copy_web)有一个只有前一部分的不完全搬运
- 课程视频:原版视频见课程官网,[B站](https://space.bilibili.com/483435468/video)也有搬运
- 课程教材:无指定教材,但每一周的 labs 之中都有足够的阅读材料供你深入细节。
- 课程作业:见课程官网

View File

@@ -0,0 +1,35 @@
# MIT 6.092: Introduction To Programming In Java
## Descriptions
- Offered by: MIT
- Prerequisites: None
- Programming Languages: Java
- Difficulty: 🌟🌟
- Class Hour: less than 15 hours
MIT's Java introductory course is suitable for beginners with no programming background. Each session consists of one hour of lecture (knowledge explanation) and one hour of lab (code practice), with a total of seven sessions. Although it's a fourteen-hour course, the learning process is fast, and you can complete it in about a day. It feels quite manageable for beginners.
The course content includes:
1. Rapid introduction to fundamental concepts needed for Java: the Java compilation principle, the classic "Hello world" code, and the eight primitive types in the first session.
2. How to maintain good code style: emphasizing naming conventions, indentation, and proper use of spaces in the third session.
3. Debugging techniques: Using Eclipse warnings, assertions in the sixth session, and handling exceptions in the seventh session.
The assignments in the lab are not very difficult, and many of them are discussed in the following lecture after each lab session. The key point to note is that coding is a skill that requires practical experience. For beginners, the most important aspect of learning to code is to practice and write code regularly, whether in lectures or lab sessions.
For those who want to advance after completing this course, you can consider studying [MIT 6.005/6.031](../../软件工程/6031.en.md).
## Course Resources
- Course Website: [Winter 2010](https://ocw.mit.edu/courses/6-092-introduction-to-programming-in-java-january-iap-2010/pages/syllabus/)
- Textbooks: [How to Think Like a Computer Scientist](https://greenteapress.com/wp/think-java/)
- Assignments: <https://ocw.mit.edu/courses/6-092-introduction-to-programming-in-java-january-iap-2010/pages/assignments/>
## Personal Resources
All the resources and assignments used by @SinanTang are maintained in [SinanTang/MIT6092-Introduction-to-Programming-in-Java_problem-sets - GitHub](https://github.com/SinanTang/MIT6092-Introduction-to-Programming-in-Java_problem-sets).
All the resources and assignments used by @sirrice are maintained in [sirrice/6092 - GitHub](https://github.com/sirrice/6092).
All the resources and assignments used by @Harbour-z are maintained in [Harbour-z/MIT6.092 - Github](https://github.com/Harbour-z/Course_learning/tree/main/MIT6.092).

View File

@@ -0,0 +1,35 @@
# MIT 6.092: Introduction To Programming In Java
## 课程简介
- 所属大学MIT
- 先修要求:无
- 编程语言Java
- 课程难度:🌟🌟
- 预计学时:少于 15 小时
MIT 的 Java 入门课程,不需要有任何编程基础也可以开始学习。一节课是一小时 Lec (知识点讲解)+一小时 Lab (代码训练),整个课程是七节课。虽说是十四个小时的课时,真正学起来却很快,一天其实差不多就能结束。感觉是比较适合新手上手的强度。
课程内容包括了:
1. 快速入门 Java 所需的基础知识概念,如第一节课的 Java 编译原理、经典代码 "Hello world" 、八大基础类型等。
2. 如何拥有良好的代码风格,如第三节课强调的命名规范、缩进、空格使用等。
3. 如何 Debug :第六节课的使用 Eclipse warning, Assertion 和第七节课的 Exception 等。
Lab 的 Assignment 倒不是很难,很多前一节课的 Assignment 后一节课 Lec 上就会讲到。唯一需要注意的就是代码是一个很注重实践的技能,新手入门写代码最重要的就是多写多练,无论是 Lec 还是 Lab 上的代码都不要偷懒不写。
学完这门课想要进阶的可以学习 [MIT 6.005/6.031](../../软件工程/6031.md) 。
## 课程资源
- 课程网站:[Winter 2010](https://ocw.mit.edu/courses/6-092-introduction-to-programming-in-java-january-iap-2010/pages/syllabus/)
- 课程教材:[How to Think Like a Computer Scientist - 如何像计算机科学家一样思考](https://greenteapress.com/wp/think-java/)
- 课程作业:<https://ocw.mit.edu/courses/6-092-introduction-to-programming-in-java-january-iap-2010/pages/assignments/>
## 资源汇总
@SinanTang 在学习这门课中用到的所有资源和作业实现都汇总在 [SinanTang/MIT6092-Introduction-to-Programming-in-Java_problem-sets - GitHub](https://github.com/SinanTang/MIT6092-Introduction-to-Programming-in-Java_problem-sets) 中。
@sirrice 在学习这门课中用到的所有资源和作业实现都汇总在 [sirrice/6092 - GitHub](https://github.com/sirrice/6092) 中。
@Harbour-z 在学习这门课中用到的所有资源和作业实现都汇总在 [Harbour-z/MIT6.092 - Github](https://github.com/Harbour-z/Course_learning/tree/main/MIT6.092) 中。

View File

@@ -10,8 +10,8 @@
Just as the course name indicated, this course will teach the missing things in the university courses. It will cover shell programming, git, vim editor, tmux, ssh, sed, awk and even how to beautify your terminal. Trust me, this will be your first step to become a hacker!
## Resources
## Course Resources
- Homepage: <https://missing.csail.mit.edu/>
- Records: <https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J>
- Assignments: Some exercises after each lecture.
- Course Website: <https://missing.csail.mit.edu/>
- Recordings: [IAP 2020](https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J), [IAP 2026](https://www.youtube.com/playlist?list=PLyzOVJj3bHQunmnnTXrNbZnBaCA-ieK4L) in YouTube
- Assignments: Some exercises after each lecture, refer to the course website.

View File

@@ -15,7 +15,7 @@
- 课程网站:<https://missing.csail.mit.edu/2020/>
- 课程中文网站: <https://missing-semester-cn.github.io/>
- 课程视频:<https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J>
- 课程视频:[IAP 2020](https://www.youtube.com/playlist?list=PLyzOVJj3bHQuloKGG59rS43e29ro7I57J), [IAP 2026](https://www.youtube.com/playlist?list=PLyzOVJj3bHQunmnnTXrNbZnBaCA-ieK4L) in YouTube
- 课程中文字幕视频:
- Missing_Semi_中译组未完结<https://space.bilibili.com/1010983811?spm_id_from=333.337.search-card.all.click>
- 刘黑黑a已完结<https://space.bilibili.com/518734451?spm_id_from=333.337.search-card.all.click>

View File

@@ -8,7 +8,7 @@
- Difficulty: 🌟🌟
- Class Hour: 30-40 hours
One of the CS50 families, taught by David J. Malan. You'll learn how to program in Python and "Pythonic" ways to deal with everthing. The course also introduces libraries, code testing, and handling exceptions.
One of the CS50 families, taught by David J. Malan. You'll learn how to program in Python and "Pythonic" ways to deal with everything. The course also introduces libraries, code testing, and handling exceptions.
No programming experiences are assumed. So it may be appropriate for anyone who wants to learn Python.
@@ -21,4 +21,4 @@ No programming experiences are assumed. So it may be appropriate for anyone who
## Personal Resources
All the resources and assignments used by @mancuoj in this course are maintained in [mancuoj/CS50P - GitHub](https://github.com/mancuoj/CS50P).
All the resources and assignments used by @mancuoj in this course are maintained in [mancuoj/CS50P - GitHub](https://github.com/mancuoj/CS50P).

View File

@@ -20,15 +20,20 @@ CS61B and CS61C are both included in this guidebook.
Going back to CS61A, you will note that this is not just a programming language class, but goes deeper into the principles of program construction and operation. Finally you will implement an interpreter for Scheme in Python in Project 4. In addition, abstraction will be a major theme in this class, as you will learn about functional programming, data abstraction, object orientation, etc. to make your code more readable and modular. Of course, learning a programming language is also a big part of this course. You will master three programming languages, Python, Scheme, and SQL, and in learning and comparing them, you will be equiped with the ability to quickly master a new programming language.
Note: If you have no prior programming experience at all, getting started with CS61A requires a relatively high level of learning ability and self-discipline. To avoid the frustration of a struggling experience, you may choose a more friendly introductory programming course at first. For example, [CS10](https://cs10.org/sp22/) at Berkeley or [CS50](https://csdiy.wiki/编程入门/CS50/) at Harvard are both good choices.
Note: If you have no prior programming experience at all, getting started with CS61A requires a relatively high level of learning ability and self-discipline. To avoid the frustration of a struggling experience, you may choose a more friendly introductory programming course at first. For example, [CS10](https://cs10.org/sp22/) at Berkeley or [CS50](https://csdiy.wiki/编程入门/C/CS50/) at Harvard are both good choices.
## Course Resources
- Course Website: <https://inst.eecs.berkeley.edu/~cs61a/su20/>
- Recordings: refer to the course website
- Textbook: <https://www.composingprograms.com/>
- Assignments: refer to the course website
- [Course Website](https://cs61a.org)
- Course Website (backup): [fall2024](https://insideempire.github.io/CS61A-Website-Archive/), [spring2022](https://cs61a.vercel.app/), [fall2022](https://web.archive.org/web/20220913035803/http://cs61a.org/), [fall2020](https://web.archive.org/web/20201219202644/https://cs61a.org/)
- Recordings: [spring2024](https://www.bilibili.com/video/BV1sy411z7nA/), [fall2022](https://www.bilibili.com/video/BV1GK411Q7qp/), [fall2020](https://www.bilibili.com/video/BV1s3411G7yM/)
- [Textbook](https://www.composingprograms.com/)
- [Epub of the Textbook](https://github.com/CC-bit/UCB-CS61A-Textbook/)
- [Textbook(Chinese)](https://composingprograms.netlify.app/)
- Assignments: [fall2024](https://github.com/InsideEmpire/CS61A-Assignments)
## Personal Resources
All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPig/CS61A - GitHub](https://github.com/PKUFlyingPig/CS61A)
All the resources and assignments used by @InsideEmpire in this course are maintained in [InsideEmpire/CS61A - GitHub](https://github.com/InsideEmpire/CS61A-PathwayToSuccess/)

View File

@@ -20,16 +20,20 @@ CS61B 和 CS61C 在本书中均有收录。
回到 CS61A注意这不仅仅是一门编程语言课而是会深入到程序构造与运行的原理。最后你将在第 4 个 Project 中用 Python 实现一个 Scheme 的解释器。此外,抽象将是这门课的一大主题,你将学习到函数式编程、数据抽象、面向对象等等知识来让你的代码更易读,更模块化。当然,学习编程语言也是这门课的一大内容,你将会掌握 Python、Scheme 和 SQL 这三种编程语言,在它们的学习和比较中,相信你会拥有快速掌握一门新的编程语言的能力。
注意:如果此前完全没有编程基础,直接上手 CS61A 需要一定的学习能力和自律要求。为避免课程难度过高而导致的信心挫折,可以选择一个更为友好的入门编程课程。例如伯克利的 [CS10](https://cs10.org/sp22/) 或者哈佛大学的 [CS50](https://csdiy.wiki/编程入门/CS50/)。
注意:如果此前完全没有编程基础,直接上手 CS61A 需要一定的学习能力和自律要求。为避免课程难度过高而导致的信心挫折,可以选择一个更为友好的入门编程课程。例如伯克利的 [CS10](https://cs10.org/sp22/) 或者哈佛大学的 [CS50](https://csdiy.wiki/编程入门/C/CS50/)。
## 课程资源
- 课程网站<https://inst.eecs.berkeley.edu/~cs61a/su20/>
- 课程视频: 参见课程网站链接
- 课程教材:<https://www.composingprograms.com/>
- 课程教材中文翻译:<https://composingprograms.netlify.app/>
- 课程作业:课程网站会有每个作业对应的文档链接以及代码框架的下载链接。
- [课程网站](https://cs61a.org)
- 课程网站 (页面备份): [fall2024](https://insideempire.github.io/CS61A-Website-Archive/), [spring2022](https://cs61a.vercel.app/), [fall2022](https://web.archive.org/web/20220913035803/http://cs61a.org/), [fall2020](https://web.archive.org/web/20201219202644/https://cs61a.org/)
- 课程视频: [spring2024](https://www.bilibili.com/video/BV1sy411z7nA/), [fall2022](https://www.bilibili.com/video/BV1GK411Q7qp/), [fall2020](https://www.bilibili.com/video/BV1s3411G7yM/)
- [课程教材](https://www.composingprograms.com/)
- [课程教材电子书](https://github.com/CC-bit/UCB-CS61A-Textbook/)
- [课程教材中文翻译](https://composingprograms.netlify.app/)
- 课程作业: [fall2024](https://github.com/InsideEmpire/CS61A-Assignments)
## 资源汇总
@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPig/CS61A - GitHub](https://github.com/PKUFlyingPig/CS61A) 中。
@InsideEmpire 在学习这门课中用到的所有资源和作业实现都汇总在 [InsideEmpire/CS61A - GitHub](https://github.com/InsideEmpire/CS61A-PathwayToSuccess/)

View File

@@ -0,0 +1,24 @@
# MIT6.100L: Introduction to CS and Programming using Python
## Descriptions
- Offered by: MIT
- Prerequisites: None
- Programming Languages: Python
- Difficulty: 🌟🌟
- Class Hour: 50 hours+
This course, introduced as part of MIT's 2022 curriculum reform, is a required introductory programming course offered by the Department of Electrical Engineering and Computer Science (EECS). It is designed for students in the [Computer Science and Engineering](https://www.eecs.mit.edu/academics/undergraduate-programs/curriculum/6-3-computer-science-and-engineering/), [Artificial Intelligence and Decision-Making](https://www.eecs.mit.edu/academics/undergraduate-programs/curriculum/6-4-artificial-intelligence-and-decision-making/), and [Electrical Engineering and Computation](https://www.eecs.mit.edu/academics/undergraduate-programs/curriculum/6-5-electrical-engineering-with-computing/) majors (taken as an alternative to 6.100A). The course includes all content from 6.100A and covers fundamental concepts of computation, the Python programming language, basic algorithms and data structures, testing and debugging, and algorithmic complexity.
Professor Ana Bell, who has been a lecturer in the EECS department for many years, delivers clear and engaging explanations. The course consists of 26 lectures. Students are encouraged to download the course code in advance and follow along during the lectures. There is ample practice material both during and after class, with complete solutions provided (except for Problem Sets).With a smooth progression in difficulty, the course's official materials are freely available and open source, making it an excellent choice for beginners to gradually step into the world of Computer Science.
## Course Resources
- Course Website: [fall2022](https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/pages/material-by-lecture/)
- Recordings: refer to the course website
- Textbooks: Whether or not you have the textbook does not significantly impact your ability to follow the course.
- Assignments: refer to the course website
## Personal Resources
All the resources and assignments used by @Alidme in this course are maintained in [Alidme/MIT6.100L - GitHub](https://github.com/Alidme/MIT6.100L).

View File

@@ -0,0 +1,25 @@
# MIT6.100L: Introduction to CS and Programming using Python
## 课程简介
- 所属大学MIT
- 先修要求:无
- 编程语言Python
- 课程难度:🌟🌟
- 预计学时50h+
这门课程是自2022年 MIT 课程改革以来,电气工程与计算机科学系的[计算机科学与工程](https://www.eecs.mit.edu/academics/undergraduate-programs/curriculum/6-3-computer-science-and-engineering/)、[人工智能与决策](https://www.eecs.mit.edu/academics/undergraduate-programs/curriculum/6-4-artificial-intelligence-and-decision-making/)和[电气工程与计算](https://www.eecs.mit.edu/academics/undergraduate-programs/curriculum/6-5-electrical-engineering-with-computing/)专业的入门必修编程课(与 6.100A 二选一)。课程涵盖了 6.100A 的全部内容课程主题包括计算的基本概念、Python 编程语言、简单的算法和数据结构、测试与调试以及算法复杂度等。
授课教师 Ana Bell 教授在 EECS 系做了多年讲师讲解深入浅出。这门课程共有26节课课前提前下载好本课代码与课程同步进行。课上课后作业练习充足答案齐全除 Problem Sets 不提供)。总体难度平滑,官网材料免费开源,适合计算机小白循序渐近地进入 CS 的世界。
## 课程资源
- 课程网站:[fall2022](https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/pages/material-by-lecture/)
- 课程视频原版视频参考官网B站也有正在进行的[中文免费精翻](https://www.bilibili.com/video/BV1WE421V7bL?spm_id_from=333.788.videopod.sections&vd_source=3181deb7fb0c10621dd8dbdf8ab90a04),该版本说明见[此处](https://github.com/Alidme/MIT6.100L?tab=readme-ov-file#%E5%85%B3%E4%BA%8E%E4%B8%AD%E6%96%87%E7%B2%BE%E7%BF%BB%E7%9A%84%E8%AF%B4%E6%98%8E)
- 课程教材:参考课程官网,有无教材基本不影响上课
- 课程作业:课程官网已经将所有材料分类完全
## 资源汇总
@Alidme 在学习这门课时,总结了关于此课程的相关文档 [MIT6.100L 食用指南(持续更新)](https://k14eszn58mj.feishu.cn/docx/NFxmd1JxPodkWjxeuHIcSK5Qnag)。此外,其在学习这门课的 Problem Sets 的实现都汇总在 [Alidme/MIT6.100L - GitHub](https://github.com/Alidme/MIT6.100L) 中。

View File

@@ -0,0 +1,24 @@
# CS220: Programming Principles
## Descriptions
- Offered by: KAIST
- Prerequisites: Any programming language
- Programming Languages: Rust
- Difficulty: 🌟🌟🌟
- Class Hour: 40 hours
[Jeehoon Kang](https://cp.kaist.ac.kr/jeehoon.kang) from KAIST and his [Concurrency and Parallelism Laboratory](https://cp.kaist.ac.kr/) appear to be strong advocates of the Rust programming language. Their contributions include [CS431](https://csdiy.wiki/%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Rust/cs431/) and [CS420](https://csdiy.wiki/%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86/CS420/) in the csdiy curriculum. Naturally, they have developed an introductory course for Rust, which is this course. It covers most of the essential topics needed to get started with Rust.
This course does not have an official textbook. The course homepage recommends using the [Rust book](https://doc.rust-lang.org/book/) for learning and provides a structured learning path in the [slides](https://docs.google.com/presentation/d/17G3SwkE_tq0H3lTt9N0ysIbHhqDZBfHkoWD5LwwAKSo/edit#slide=id.p). Although there are no publicly available lecture videos, the comprehensive testing system makes this course an excellent resource for practicing Rust. Some exercises can serve as a great supplement to [CS110L](https://csdiy.wiki/%E7%BC%96%E7%A8%8B%E5%85%A5%E9%97%A8/Rust/CS110L/). If you still feel the need for more practice after completing CS110L, this course is a good choice. Some exercises are quite challenging, and Jeehoon Kang encourages the use of AI-assisted programming. However, AI is not perfect, and the core work must still be done by yourself.
## Course Resources
- Course Website: [Github Repository](https://github.com/kaist-cp/cs220)
- Recordings: None
- Textbooks: [slides](https://docs.google.com/presentation/d/17G3SwkE_tq0H3lTt9N0ysIbHhqDZBfHkoWD5LwwAKSo/edit#slide=id.p)
- Assignments: [Github Repository](https://github.com/kaist-cp/cs220/tree/main/src/assignments)
## Personal Resources
There are no publicly available answer keys, and it is unclear whether the course instructor supports the idea of sharing solutions. If you encounter difficulties, you can find discussions about the assignments in the [ISSUE](https://github.com/kaist-cp/cs220/issues) section of the repository.

Some files were not shown because too many files have changed in this diff Show More