diff --git a/Computer Network/CS144/index.html b/Computer Network/CS144/index.html index 4591ec4..30de598 100755 --- a/Computer Network/CS144/index.html +++ b/Computer Network/CS144/index.html @@ -1,4 +1,4 @@ - Stanford CS144: Computer Network - Scheme MkDocs
跳转至

CS144: Computer Network

CS144: Computer Network

课程简介

  • 所属大学:Stanford
  • 先修要求:一定的计算机系统基础,CS106L
  • 编程语言:C++
  • 课程难度:🌟🌟🌟🌟🌟
  • 预计学时:100 小时

这门课的主讲人之一是网络领域的巨擘 Nick McKeown 教授。这位拥有自己创业公司的学界业界双巨佬会在他慕课每一章节的最后采访一位业界的高管或者学界的高人,非常开阔眼界。

在这门课的 Project 中,你将用 C++ 循序渐进地搭建出整个 TCP/IP 协议栈,实现 IP 路由以及 ARP 协议,最后利用你自己的协议栈代替 Linux Kernel 的网络协议栈和其他学生的计算机进行通信,非常 amazing!

课程资源

资源汇总

UMich EECS 498-007 / 598-005: Deep Learning for Computer Vision

UMich EECS 498-007 / 598-005: Deep Learning for Computer Vision

课程简介

  • 所属大学:UMich
  • 先修要求:Python基础,矩阵论(熟悉矩阵求导即可),微积分
  • 编程语言:Python
  • 课程难度:🌟🌟🌟🌟
  • 预计学时:60~80 小时

UMich 的 Computer Vision 课,课程视频和作业质量极高,涵盖的主题非常全,同时 Assignments 的难度由浅及深,覆盖了 CV 主流模型发展的全阶段,是一门非常好的 Computer Vision 入门课。

你在每个 Assignment 里会跟随 Handouts 搭建与训练 Lectures 中提到的模型/框架。

你不需要有任何的深度学习框架的使用经验,在开始的 Assignment 里,这门课会从零开始教导每个学生如何使用 Pytorch,后续也可以当成工具书,随时翻阅。

同时由于每个 Assignment 之间涉及到的主题都不同,你在递进式的 Assignment 中不仅可以亲身体会到 CV 主流模型的发展历程,领略到不同的模型和训练的方法对最终效果/准确率的影响,同时也能 Hands On 地实现它们。

在 A1 中,你会学习 Pytorch 和 Google Colab 的使用。

在 A2 中你会亲自搭建 Linear Classifier 以及一个两层的神经网络,最后你有机会亲自接触 MNIST 数据集并在此基础上训练并评估你搭建起的神经网络。

在 A3 中,你会接触到最为经典的 Convolutional Neural Network (A.K.A. CNN),亲自感受卷积神经网络的魅力。

而在 A4 中,你将实际触及搭建物体检测模型的全流程,同时跟随 Handout 实现两篇论文中的 One-Stage Detector 和 Two-Stage Detector。

到了 A5,就是从 CNN 到 RNN 的时刻了,你将有机会亲自搭建起两种不同的基于注意力的模型,RNNs (Vanilla RNN & LSTM) 和大名鼎鼎的 Transfomer。

在最后一个 Assignment(A6)中,你将有机会实现两种更为 Fancy 的模型,VAE 和 GAN,并应用在 MINST 数据集上。最后,你会实现网络可视化和风格迁移这两个非常酷炫的功能。

在 Assignments 之外,你还可以自己实现一个 Mini-Project,亲自搭建起一个完整的深度学习 Pipeline,具体可以参考课程主页。

课程所涉及的资源,如 Lectures/Notes/Assignments 都是开源的,美中不足的是 Autograder 只对本校 Enrolled 的学生开放,但因为在提供的 *.ipynb(也就是 Handout) 中已经可以确定实现的正确性,以及预期的结果,所以我个人觉得 Autograder 的缺失没有任何影响。

值得一提的是,这门课的主讲教授 Justin Johnson 正是 Fei-Fei Li 的博士毕业生,现在在 UMich 当 Assistant Professor。

而现在开源的 2017 年版本的 Stanford CS231N 的主讲人就是 Justin Johnson。

同时因为 CS231N 主要是由 Justin Johnson 和 Andrej Karpathy 建设起来的,这门课也沿用了 CS231N 的一些材料,所以学过 CS231N 的同学可能会觉得这门课的某些材料比较熟悉。

最后,我推荐每一个 Enroll 这门课的同学都去看一看 Youtube 上面的 Lectures,Justin Johnson 的讲课方式和内容都非常清晰和易懂,是非常棒的参考。

课程资源

CMU 15-445: Database Systems

课程简介

  • 所属大学:CMU
  • 先修要求:C++,数据结构与算法,CMU 15-213 (A.K.A. CS:APP,这也是 CMU 内部对每年 Enroll 同学的先修要求)
  • 编程语言:C++
  • 课程难度:🌟🌟🌟🌟
  • 预计学时:100 小时

作为 CMU 数据库的入门课,这门课由数据库领域的大牛 Andy Pavlo 讲授(“这个世界上我只在乎两件事,一是我的老婆,二就是数据库”)。

这是一门质量极高,资源极齐全的 Database 入门课,这门课的 Faculty 和背后的 CMU Database Group 将课程对应的基础设施 (Autograder, Discord) 和课程资料 (Lectures, Notes, Homework) 完全开源,让每一个愿意学习数据库的同学都可以享受到几乎等同于 CMU 本校学生的课程体验。

这门课的亮点在于 CMU Database Group 专门为此课开发了一个教学用的关系型数据库 bustub,并要求你对这个数据库的组成部分进行修改,实现上述部件的功能。

具体来说,在 15-445 中你需要在四个 Project 的推进中,实现一个面向磁盘的传统关系型数据库 Bustub 中的部分关键组件。

包括 Buffer Pool Manager (内存管理), B Plus Tree (存储引擎), Query Executors & Query Optimizer (算子们 & 优化器), Concurrency Control (并发控制),分别对应 Project #1Project #4

值得一提的是,同学们在实现的过程中可以通过 shell.cpp 编译出 bustub-shell 来实时地观测自己实现部件的正确与否,正反馈非常足。

此外 bustub 作为一个 C++ 编写的中小型项目涵盖了程序构建、代码规范、单元测试等众多要求,可以作为一个优秀的开源项目学习。

课程资源

在 Fall 2019 中,Project #2 是做哈希索引,Project #4 是做日志与恢复。

在 Fall 2020 中,Project #2 是做 B 树,Project #4 是做并发控制。

在 Fall 2021 中,Project #1 是做缓存池管理,Project #2 是做哈希索引,Project #4 是做并发控制。

在 Fall 2022 中,与 Fall 2021 相比只有哈希索引换成了 B+ 树索引,其余都一样。

在 Spring 2023 中,大体内容和 Fall 2022 一样(缓存池,B+ 树索引,算子,并发控制),只不过 Project #0 换成了 Copy-On-Write Trie,同时增加了很好玩的注册大小写函数的 Task,可以直接在编译出的 bustub-shell 中看到自己写的函数的实际效果,非常有成就感。

值得注意的是,现在 bustub 在 2020 年以前的 version 都已经停止维护。

Fall 2019 的最后一个 Logging & Recovery 的 Project 已经 broken 了(在19年的 git head 上也许还可以跑,但尽管如此 Gradescope 应该也没有提供公共的版本,所以并不推荐大家去做,只看看代码和 Handout 就可以了)。

或许在 Fall 2023 的版本 Recovery 相关的功能会被修复,届时也可能有全新的 Recovery Project,让我们试目以待吧🤪

如果大家有精力的话可以都去尝试一下,或者在对书中内容理解不是很透彻的时候,尝试做一做对应的 Project 会加深你的理解(个人建议还是要全部做完,相信一定对你有帮助)。

此外,CMU数据库团队还有一个DB with ML的公开讲座系列:ML⇄DB Seminar Series

资源汇总

非官方的 Discord 是一个很好的交流平台,过往的聊天记录几乎记载了其他同学踩过的坑,你也可以提出你的问题,或者帮忙解答别人的问题,相信这是一份很好的参考。

关于 Spring 2023 的通关指南,可以参考 @xzhseh 的这篇CMU 15-445/645 (Spring 2023) Database Systems 通关指北,里面涵盖了全部你需要的通关道具,和通关方式建议,以及最重要的,我自己在做 Project 的过程中遇到的,看到的,和自己亲自踩过的坑。

@ysj1173886760 在学习这门课中用到的所有资源和作业实现都汇总在 ysj1173886760/Learning: db - GitHub 中。

由于 Andy 的要求,仓库中没有 Project 的实现,只有 Homework 的 Solution。特别的,对于 Homework1,@ysj1173886760 还写了一个 Shell 脚本来帮大家执行自动判分。

另外在课程结束后,推荐阅读一篇论文 Architecture Of a Database System,对应的中文版也在上述仓库中。论文里综述了数据库系统的整体架构,让大家可以对数据库有一个更加全面的视野。

后续课程

CMU15-721 主要讲主存数据库有关的内容,每节课都有对应的 paper 要读,推荐给希望进阶数据库的小伙伴。@ysj1173886760 目前也在跟进这门课,完成后会在这里提 PR 以提供进阶的指导。

CMU 15-445: Database Systems

课程简介

  • 所属大学:CMU
  • 先修要求:C++,数据结构与算法,CMU 15-213 (A.K.A. CS:APP,这也是 CMU 内部对每年 Enroll 同学的先修要求)
  • 编程语言:C++
  • 课程难度:🌟🌟🌟🌟
  • 预计学时:100 小时

作为 CMU 数据库的入门课,这门课由数据库领域的大牛 Andy Pavlo 讲授(“这个世界上我只在乎两件事,一是我的老婆,二就是数据库”)。

这是一门质量极高,资源极齐全的 Database 入门课,这门课的 Faculty 和背后的 CMU Database Group 将课程对应的基础设施 (Autograder, Discord) 和课程资料 (Lectures, Notes, Homework) 完全开源,让每一个愿意学习数据库的同学都可以享受到几乎等同于 CMU 本校学生的课程体验。

这门课的亮点在于 CMU Database Group 专门为此课开发了一个教学用的关系型数据库 bustub,并要求你对这个数据库的组成部分进行修改,实现上述部件的功能。

具体来说,在 15-445 中你需要在四个 Project 的推进中,实现一个面向磁盘的传统关系型数据库 Bustub 中的部分关键组件。

包括 Buffer Pool Manager (内存管理), B Plus Tree (存储引擎), Query Executors & Query Optimizer (算子们 & 优化器), Concurrency Control (并发控制),分别对应 Project #1Project #4

值得一提的是,同学们在实现的过程中可以通过 shell.cpp 编译出 bustub-shell 来实时地观测自己实现部件的正确与否,正反馈非常足。

此外 bustub 作为一个 C++ 编写的中小型项目涵盖了程序构建、代码规范、单元测试等众多要求,可以作为一个优秀的开源项目学习。

课程资源

在 Fall 2019 中,Project #2 是做哈希索引,Project #4 是做日志与恢复。

在 Fall 2020 中,Project #2 是做 B 树,Project #4 是做并发控制。

在 Fall 2021 中,Project #1 是做缓存池管理,Project #2 是做哈希索引,Project #4 是做并发控制。

在 Fall 2022 中,与 Fall 2021 相比只有哈希索引换成了 B+ 树索引,其余都一样。

在 Spring 2023 中,大体内容和 Fall 2022 一样(缓存池,B+ 树索引,算子,并发控制),只不过 Project #0 换成了 Copy-On-Write Trie,同时增加了很好玩的注册大小写函数的 Task,可以直接在编译出的 bustub-shell 中看到自己写的函数的实际效果,非常有成就感。

值得注意的是,现在 bustub 在 2020 年以前的 version 都已经停止维护。

Fall 2019 的最后一个 Logging & Recovery 的 Project 已经 broken 了(在19年的 git head 上也许还可以跑,但尽管如此 Gradescope 应该也没有提供公共的版本,所以并不推荐大家去做,只看看代码和 Handout 就可以了)。

或许在 Fall 2023 的版本 Recovery 相关的功能会被修复,届时也可能有全新的 Recovery Project,让我们试目以待吧🤪

如果大家有精力的话可以都去尝试一下,或者在对书中内容理解不是很透彻的时候,尝试做一做对应的 Project 会加深你的理解(个人建议还是要全部做完,相信一定对你有帮助)。

此外,CMU数据库团队还有一个DB with ML的公开讲座系列:ML⇄DB Seminar Series

资源汇总

非官方的 Discord 是一个很好的交流平台,过往的聊天记录几乎记载了其他同学踩过的坑,你也可以提出你的问题,或者帮忙解答别人的问题,相信这是一份很好的参考。

关于 Spring 2023 的通关指南,可以参考 @xzhseh 的这篇CMU 15-445/645 (Spring 2023) Database Systems 通关指北,里面涵盖了全部你需要的通关道具,和通关方式建议,以及最重要的,我自己在做 Project 的过程中遇到的,看到的,和自己亲自踩过的坑。

@ysj1173886760 在学习这门课中用到的所有资源和作业实现都汇总在 ysj1173886760/Learning: db - GitHub 中。

由于 Andy 的要求,仓库中没有 Project 的实现,只有 Homework 的 Solution。特别的,对于 Homework1,@ysj1173886760 还写了一个 Shell 脚本来帮大家执行自动判分。

另外在课程结束后,推荐阅读一篇论文 Architecture Of a Database System,对应的中文版也在上述仓库中。论文里综述了数据库系统的整体架构,让大家可以对数据库有一个更加全面的视野。

后续课程

CMU15-721 主要讲主存数据库有关的内容,每节课都有对应的 paper 要读,推荐给希望进阶数据库的小伙伴。@ysj1173886760 目前也在跟进这门课,完成后会在这里提 PR 以提供进阶的指导。

CS224n: Natural Language Processing

CS224n: Natural Language Processing

课程简介

  • 所属大学:Stanford
  • 先修要求:深度学习基础 + Python
  • 编程语言:Python
  • 课程难度:🌟🌟🌟🌟
  • 预计学时:80 小时

Stanford 的 NLP 入门课程,由自然语言处理领域的巨佬 Chris Manning 领衔教授(word2vec 算法的开创者)。内容覆盖了词向量、RNN、LSTM、Seq2Seq 模型、机器翻译、注意力机制、Transformer 等等 NLP 领域的核心知识点。

5 个编程作业难度循序渐进,分别是词向量、word2vec 算法、Dependency parsing、机器翻译以及 Transformer 的 fine-tune。

最终的大作业是在 Stanford 著名的 SQuAD 数据集上训练 QA 模型,有学生的大作业甚至直接发表了顶会论文。

课程资源

资源汇总

@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 PKUFlyingPig/CS224n - GitHub 中。

CS189: Introduction to Machine Learning

CS189: Introduction to Machine Learning

课程简介

  • 所属大学:UC Berkeley
  • 先修要求:CS188, CS70
  • 编程语言:Python
  • 课程难度:🌟🌟🌟🌟
  • 预计学时:100 小时

这门课我没有系统上过,只是把它的课程 notes 作为工具书查阅。不过从课程网站上来看,它比 CS229 好的是开源了所有 homework 的代码以及 gradescope 的 autograder。同样,这门课讲得相当理论且深入。

课程资源