CMU CS15213: CSAPP
课程简介
- 所属大学:CMU
- 先修要求:CS61A, CS61B
- 编程语言:C
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时:150 小时
CMU 大名鼎鼎的镇系神课,以其内容庞杂,Project 巨难而闻名遐迩。课程内容覆盖了汇编语言、体系结构、操作系统、编译链接、并行、网络等,作为系统入门课,兼具深度和广度,如果自学确实需要相当的毅力和代码功底。
这门课配合的教材由 CMU 计算机系主任 Bryant 教授执笔,也即所谓的 CSAPP。这也是我第一本认认真真一页一页读过去的计算机教材,虽然很难啃,但着实收获良多。
北大购买了这门课的版权并开设了 Introduction to Computer System 这门课,但其实 CSAPP 所有的课程资源和实验代码都能在它的官方主页上访问到(具体参见下方链接)。
这门课由于过于出名,全世界的码农争相学习,导致其 Project 的答案在网上几乎唾手可得。但如果你真的想锻炼自己的代码能力,希望你不要借鉴任何第三方代码。
认真学完这一门课,你对计算机系统的理解绝对会上升一个台阶。
课程资源
- 课程网站:http://csapp.cs.cmu.edu/
- 课程视频:https://www.bilibili.com/video/BV1iW411d7hd
- 课程教材:Computer Systems: A Programmer's Perspective, 3/E
- 课程作业:11 个 Project,代码框架全部开源
英语有困难的同学可以参考B站UP主九曲阑干对 CSAPP 的中文讲解(据说CMU的中国留学生也在CMU的课堂上看这个视频呢)。另外如果大家在看完 CSAPP 后对书中的第七章链接有一定的疑问,推荐阅读《程序员的自我修养》这本书,书的副标题是链接,装载与库。这本书能够帮助我们完善对程序链接的理解,相信你在看完这本书以后可以对程序的链接,ELF 文件,动态库都将有一个更加深入的理解。十分推荐在读完 CSAPP,对计算机系统有一定的了解以后作为补充资料来阅读。
CMU CS15213: CSAPP
Descriptions
- Offered by: CMU
- Prerequisites: CS61A, CS61B
- Programming Languages: C
- Difficulty: 🌟🌟🌟🌟🌟
- Class Hour: 150 hours
This course is one of CMU's most reputable courses, and is known for its extensive content and difficult projects. The course covers assembly language, computer architecture, operating systems, compilation and linking, parallelism, networking, etc. As an introductory course of computer system, it has both breadth and depth, and does require considerable perseverance and coding skills if you learn it on your own.
The textbook for this course, known as CSAPP, was written by Professor Bryant, Dean of the School of Computer Science at CMU. This is also the first computer textbook that I read carefully from the start to the end, although it was tough, I gained a lot from it.
Peking University purchased the copyright of the course and opened a similar one, but you can have access to all of the course resources on its official homepage (see the link below for details).
This course is so famous that you can easily have access to the project solutions on the Internet. But if you really want to practice your coding skills, it is highly recommended to implement the projects on your own.
After completing this course, your understanding of computer systems will definitely go up a notch.
Course Resources
- Course Website: http://csapp.cs.cmu.edu/
- Recordings: https://scs.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx#folderID=%22b96d90ae-9871-4fae-91e2-b1627b43e25e%22
- Textbook: Computer Systems: A Programmer's Perspective, 3/E
- Assignments:11 Projects, skeleton code all open source
If you have trouble with Chapter 7 Linking, I recommend reading the book Programmer's Self-Cultivation, subtitled link. load and library. This book can complete our understanding of program linking, and I believe after reading this book you will have a deeper comprehension of program linking, ELF files, and dynamic libraries. It is highly recommended to be read as a supplementary material after reading CSAPP and having a certain understanding of computer systems.
<4fPIXv3
z3rS^XA%TB%7OGC}Z01eA+%K;u ^y494L
zeVuWC+_@c94u6hyq{%LyhTJQ9PD|C=N1=O3Pp%;|{W|0R$a6a?0pBLujoRv6wRB%#
z&MSVSMmt#N4Fp75s64peQZ~P(SifbZeoZ77UlWPcYocoLG|BKZp?F%Qc(^4O9&U-m
z!>#J@YX+ZxN<>G~h=R-1F3e^rHhIwXQ4ws!`Q%xzr`2W`xx8^e;0hIolpFcifjf)Y
zhZIJ4apKM6vGe_#M3_${6y=+%A4u|;H6W4jDv&5pUilJ!4pwk`wPdHq0mh2cr?u%1
zn4N+sJxk&GlVAoJe?0}SPk88HcB~q$KEOHi0C5(n4vCi@x4VTU^4mlbMaXZUjADnL
zQgnM^fZ2&G=?t#58Z^jkkJ+~$HKKf7E-23uU4WwwWYZjoWgJxMry