Update CS110L.en.md

This commit is contained in:
smxm 2022-09-30 23:07:52 +08:00 committed by GitHub
parent b3f5ae42c7
commit d293b1b2db
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -8,20 +8,20 @@
- Difficulty: 🌟🌟🌟 - Difficulty: 🌟🌟🌟
- Class Hour: 30 hours - Class Hour: 30 hours
In this course you will learn about a fantastic language, Rust. In this course, you will learn a fantastic language, Rust.
If you have studied C and have some knowledge of systems programming, you should have heard about memory leaks and the danger of pointers, but the fundamental features of C and its efficiency still make it impossible to replace it in systems-level programming by other higher-level languages such as Java, which have embedded garbage collection mechanisms. Whereas Rust aims to build on the efficiency of C and make up for its lack of security. Therefore, Rust was designed with much ideology of system programming. By learning Rust, you will also be able to write a safer and more elegant system-level code (e.g., operating systems, etc.) in C afterwards. If you have studied C and have some knowledge of systems programming, you should have heard about memory leaks and the danger of pointers, but C's high efficiency makes it impossible to be replaced by other higher-level languages with garbage collection such as Java in system-level programming. Whereas Rust aims to make up for C's lack of security while having competitive efficiency. Therefore, Rust was designed from a system programmer's point of view. By learning Rust, you will learn the principles to write safer and more elegant system code (e.g., operating systems, etc.).
The latter part of this course focuses on the topic of concurrency, where you will systematically master multi-processing, multi-threading, event-driven concurrency, and several other concurrency techniques, and in the second project will compare the advantages and disadvantages of each. The concept of "futures" in Rust is fascinating and elegant, and those basics will help you in your following studies in computer systems-related courses. In addition, Tsinghua University's operating system experiment rCore is based on Rust, see the [documentation](https://rcore-os.github.io/rCore-Tutorial-Book-v3/index.html) for details. The latter part of this course focuses on the topic of concurrency, where you will systematically learn multi-processing, multi-threading, event-driven programming, and several other techniques. In the second project, you will compare the pros and cons of each method.
Personally, I find the concept of "futures" in Rust fascinating and elegant, and mastering this idea will help you in your following systems-related courses. In addition, Tsinghua University's operating system lab, rCore is based on Rust. You can see the [documentation](https://rcore-os.github.io/rCore-Tutorial-Book-v3/index.html) for more details.
## Course Resources ## Course Resources
- Course Website: https://reberhardt.com/cs110l/spring-2020/ - Course Website: <https://reberhardt.com/cs110l/spring-2020/>
- Recordings: <https://youtu.be/j7AQrtLevUE> - Recordings: <https://youtu.be/j7AQrtLevUE>
- Textbook: None - Textbook: None
- Assignments6 Labs, 2 Projects, the course website has specific requirements. There are two interesting Projects for the course, which are - Assignments6 Labs, 2 Projects, the course website has specific requirements. The projects are quite interesting where you will Implement a GDB-like debugger and a load balancer in Rust.
1. Implement a GDB-like debugger in Rust
2. Implement a Balancebeam in Rust
## Personal Resources ## Personal Resources