reorganize intro to system courses

This commit is contained in:
Yinmin Zhong 2024-04-14 14:56:11 +08:00
parent 7a320f474a
commit d003b82e46
4 changed files with 56 additions and 0 deletions

View file

@ -0,0 +1,28 @@
# CS110: Principles of Computer Systems
## Descriptions
- Offered by: Stanford
- Prerequisites: Students should be able to write moderately complex programs, read and understand portions of large code bases, trace memory diagrams, and be fluent with Unix, GDB, Valgrind, and Make.
- Programming Languages: C/C++
- Difficulty: 🌟🌟🌟🌟🌟
- Class Hour: 150 hours
This course builds upon the foundational knowledge gained in CS107 and delves into advanced computer systems and program construction. It focuses on designing large systems, software that spans multiple machines, and parallel computing. The course aims to teach students the principles and practice of engineering of computer software and hardware systems.
The course covers a broad range of topics including how your programs map onto the components of computer systems, understanding of program behavior and execution, understanding the designs and tradeoffs of large systems, writing software that spans multiple machines, and writing software that runs tasks in parallel on a single machine.
The teaching style of this course is engaging and practical. The instructors guide the students to understand the numerous technical challenges and design principles in computer systems by going through the course materials and labs. Weekly labs let you add new features to the projects, which focus on enhancing students' practical skills. There are several labs during the whole semester which give you the chance to understand every aspect of the computer systems.
In addition to the labs, the course also includes assignments that are designed to provide hands-on experience and deepen understanding of the course material. Each assignment has a complete framework for testing.
## Course Resources
- Course Website: [winter20](https://web.stanford.edu/class/archive/cs/cs110/cs110.1204/)
- Lecture Videos: [spring19](https://www.youtube.com/playlist?list=PLai-xIlqf4JmTNR9aPCwIAOySs1GOm8sQ)
- Text Book: [Computer Systems: A Programmers Perspective](https://www.cs.sfu.ca/~ashriram/Courses/CS295/assets/books/CSAPP_2016.pdf)
- Assignments: 7 labs (with solution) and 8 assignments, can be found on the course website.
## Personal Resources
All the resources and assignments used by @xuzheng465 in this course are maintained in [xuzheng465/Stanford_CS110 - GitHub](https://github.com/xuzheng465/Stanford_CS110).

View file

@ -0,0 +1,28 @@
# CS110: Principles of Computer Systems
## 课程简介
- 所属大学Stanford
- 先修要求编程基础、Unix、GDB、Valgrind
- 编程语言C/C++
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时150小时
这门课程在 [CS107](https://web.stanford.edu/class/archive/cs/cs107/cs107.1246/calendar) 的基础知识上进行拓展,深入研究计算机系统和程序构建。它专注于设计大型系统、跨多台机器的软件以及并行计算。课程的目标是教授学生计算机软件和硬件系统工程的原理和实践。
课程涵盖了广泛的主题,包括你的程序如何映射到计算机系统的组件上,理解程序行为和执行,理解大型系统的设计和权衡,编写跨多台机器的软件,以及编写在单台机器上并行运行任务的软件。
这门课程的教学风格是引人入胜且实用的。教师通过理论知识和丰富的编程实验,引导学生理解计算机系统中众多的技术挑战和设计原则。每周的实验让你为项目增加新功能,这些项目专注于提高学生的实践技能,让你有机会初步了解计算机系统的每一个方面,并且会公布答案,让你及时检查自己对关键知识点的掌握情况。
除了实验外,课程还包括旨在提供大量编程实践经验并加深对课程材料理解的项目作业。每项作业配有完整的测试框架。
## 课程资源
- 课程网站:[winter20](https://web.stanford.edu/class/archive/cs/cs110/cs110.1204/)
- 课程视频:[spring19](https://www.youtube.com/playlist?list=PLai-xIlqf4JmTNR9aPCwIAOySs1GOm8sQ)
- 课程教材:[Computer Systems: A Programmers Perspective](https://www.cs.sfu.ca/~ashriram/Courses/CS295/assets/books/CSAPP_2016.pdf)
- 课程作业7 labs + 8 assignments参见课程网站。
## 资源汇总
@xuzheng465 在学习这门课中用到的所有资源和作业实现都汇总在 [xuzheng465/Stanford_CS110 - GitHub](https://github.com/xuzheng465/Stanford_CS110) 中。