CS14-计算机系统基础

CMU CS15213: CSAPP

课程简介

  • 所属大学:CMU
  • 先修要求:CS61A, CS61B
  • 编程语言:C
  • 课程难度:🌟🌟🌟🌟🌟
  • 预计学时:150 小时

CMU 大名鼎鼎的镇系神课,以其内容庞杂,Project 巨难而闻名遐迩。课程内容覆盖了汇编语言、体系结构、操作系统、编译链接、并行、网络等,作为系统入门课,兼具深度和广度,如果自学确实需要相当的毅力和代码功底。

这门课配合的教材由 CMU 计算机系主任 Bryant 教授执笔,也即所谓的 CSAPP。这也是我第一本认认真真一页一页读过去的计算机教材,虽然很难啃,但着实收获良多。

北大购买了这门课的版权并开设了 Introduction to Computer System 这门课,但其实 CSAPP 所有的课程资源和实验代码都能在它的官方主页上访问到(具体参见下方链接)。

这门课由于过于出名,全世界的码农争相学习,导致其 Project 的答案在网上几乎唾手可得。但如果你真的想锻炼自己的代码能力,希望你不要借鉴任何第三方代码。

认真学完这一门课,你对计算机系统的理解绝对会上升一个台阶。

课程资源

英语有困难的同学可以参考B站UP主九曲阑干对 CSAPP 的中文讲解(据说CMU的中国留学生也在CMU的课堂上看这个视频呢)。另外如果大家在看完 CSAPP 后对书中的第七章链接有一定的疑问,推荐阅读《程序员的自我修养》这本书,书的副标题是链接,装载与库。这本书能够帮助我们完善对程序链接的理解,相信你在看完这本书以后可以对程序的链接,ELF 文件,动态库都将有一个更加深入的理解。十分推荐在读完 CSAPP,对计算机系统有一定的了解以后作为补充资料来阅读。

有关 Lab 部分,同学们亦可参考 Arthals 在北大计算机系统导论(ICS)课程中所做的详尽笔记:

 

 

Stanford CS110: Principles of Computer Systems

课程简介

  • 所属大学:Stanford
  • 先修要求:编程基础、Unix、GDB、Valgrind
  • 编程语言:C/C++
  • 课程难度:🌟🌟🌟🌟🌟
  • 预计学时:150小时

这门课程在 CS107 的基础知识上进行拓展,深入研究计算机系统和程序构建。它专注于设计大型系统、跨多台机器的软件以及并行计算。课程的目标是教授学生计算机软件和硬件系统工程的原理和实践。

课程涵盖了广泛的主题,包括你的程序如何映射到计算机系统的组件上,理解程序行为和执行,理解大型系统的设计和权衡,编写跨多台机器的软件,以及编写在单台机器上并行运行任务的软件。

这门课程的教学风格是引人入胜且实用的。教师通过理论知识和丰富的编程实验,引导学生理解计算机系统中众多的技术挑战和设计原则。每周的实验让你为项目增加新功能,这些项目专注于提高学生的实践技能,让你有机会初步了解计算机系统的每一个方面,并且会公布答案,让你及时检查自己对关键知识点的掌握情况。

除了实验外,课程还包括旨在提供大量编程实践经验并加深对课程材料理解的项目作业。每项作业配有完整的测试框架。

课程资源

资源汇总

在学习这门课中用到的所有资源和作业实现都汇总在 xuzheng465/Stanford_CS110 – GitHub 中。

 

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...