diff --git a/docs/编程入门/CS110L.md b/docs/编程入门/CS110L.md new file mode 100644 index 00000000..fe3c07fd --- /dev/null +++ b/docs/编程入门/CS110L.md @@ -0,0 +1,23 @@ +# CS110L: Safety in Systems Programming +## 课程简介 +- 所属大学:Stanford +- 先修要求:最好有一定的编程背景并对计算机系统有初步的认识。 +- 编程语言:Rust +- 课程难度:🌟🌟🌟 +- 预计学时:30小时 + +在这门课中你将会学习Rust这门神奇的语言。 + +如果你学过C并接触过一些系统编程的话,应该对C的内存泄漏以及指针的危险有所耳闻,但C的底层特性以及高效仍然让它在系统级编程中无法被例如Java等自带垃圾收集机制的高级语言所替代。而Rust的目标则是希望在C的高效基础上,弥补其安全不足的缺点。因此Rust在设计之初,就有带有很多系统编程的观点。学习Rust,也能让你之后能用C语言编写出更安全更优雅的系统级代码(例如操作系统等)。 + +这门课的后半部分关注在并发(concurrency)这一主题上,你将会系统地掌握多进程、多线程、基于事件驱动的并发等若干并发技术,并在第二个project中比较它们各自的优劣。Rust中“futures”的概念非常有趣和优雅,这些基础知识对你后续对计算机系统相关课程的学习很有帮助。另外,清华大学的操统实验rCore就是基于Rust编写的,具体参见[文档](https://rcore-os.github.io/rCore-Tutorial-Book-v3/index.html)。 +## 课程资源 +- 课程网站:https://reberhardt.com/cs110l/spring-2020/ +- 课程视频:https://youtu.be/j7AQrtLevUE +- 课程教材:无 +- 课程作业:共6个lab和2个project,作业文档和代码框架详见课程网站。其中两个project非常有趣,分别是: + - (1)用Rust实现一个类似于gdb的debugger + - (2)用Rust实现一个负载均衡器 + +## 资源汇总 +我在学习这门课中的用到的所有资源和作业实现都汇总在[这个Github仓库](https://github.com/PKUFlyingPig/CS110L)中。 \ No newline at end of file