From 67de683f2f6aeddc54adf5fb6562a90c480c399d Mon Sep 17 00:00:00 2001 From: Lingkang Date: Fri, 30 Sep 2022 01:21:16 +0800 Subject: [PATCH 1/6] [TRANSLATE] translate N2T.en.md (#254) * Create N2T.en.md * Update N2T.en.md --- docs/体系结构/N2T.en.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 docs/体系结构/N2T.en.md diff --git a/docs/体系结构/N2T.en.md b/docs/体系结构/N2T.en.md new file mode 100644 index 00000000..83ce6c06 --- /dev/null +++ b/docs/体系结构/N2T.en.md @@ -0,0 +1,38 @@ +# Coursera: Nand2Tetris + +## Descriptions + +- Offered by: Hebrew University of Jerusalem +- Prerequisites: None +- Programming Languages: Chosen by the course taker +- Difficulty: 🌟🌟🌟 +- Class Hour: 40 hours + +As one of the most popular courses on [Coursera](https://www.coursera.org), tens of thousands of people give it a full score, and over four hundred colleges and high schools teach it. It guides the students who may have no preparatory knowledge in computer science to build a whole computer from Nand logic gates and finally run the Tetris game on it. + +Sounds cool, right? It's even cooler when you implement it! + +The course is divided into hardware modules and software modules respectively. + +In the hardware modules, you will dive into a world based on 0 and 1, create various logic gates from Nand gates, and construct a CPU step by step to run a simplified instruction set designed by the course instructors. + +In the software modules, you will first write a compiler to compile a high-level language *Jack* which is designed by the instructors into byte codes that can run on virtual machines. Then you will further translate the byte codes into assembly language that can run on the CPU you create in the hardware modules. You will also develop a simple operating system that enables your computer to support GUI. + +Finally, you can use *Jack* to create the Tetris game, compile it into assembly language, run it on your self-made CPU, and interact with it through the OS built by yourself. After taking this course, you will have a comprehensive and profound understanding of the entire computer architecture, which might be extremely helpful to your subsequent learning. + +You may think that the course is too difficult. Don't worry, because it is completely designed for laymen. In the instructors' expectations, even high school students can understand the content. So as long as you keep pace with the syllabus, you can finish it within a month. + +This course extracts the essence of computers while omitting the tedious and complex details in modern computer systems that are designed for efficiency and performance. Surely you will enjoy the elegance and magic of computers in a relaxing and jolly journey. + +## Course Resources + +- Course Website:[Nand2Tetris I](https://www.coursera.org/learn/build-a-computer/home/week/1), [Nand2Tetris II](https://www.coursera.org/learn/nand2tetris2/home/welcome) +- Recordings:Refer to course website +- Textbook: [The Elements of Computing Systems: Building a Modern Computer from First Principles (CN-zh version)](book) +- Assignments:10 projects to construct a computer, refer to course website for more details + +[book]: https://github.com/PKUFlyingPig/NandToTetris/blob/master/%5B%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%B3%BB%E7%BB%9F%E8%A6%81%E7%B4%A0%EF%BC%9A%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8B%E6%9E%84%E5%BB%BA%E7%8E%B0%E4%BB%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%5D.(%E5%B0%BC%E8%90%A8).%E5%91%A8%E7%BB%B4.%E6%89%AB%E6%8F%8F%E7%89%88.pdf + +## Personal Resources + +All the resources and assignments used by @PKUFlyingPig are maintained in [PKUFlyingPig/NandToTetris - GitHub](https://github.com/PKUFlyingPig/NandToTetris). From 0322c2363a2e51f9df8fc87f11dd9ead11f96855 Mon Sep 17 00:00:00 2001 From: Erkai Yu <71617260+silkrow@users.noreply.github.com> Date: Thu, 29 Sep 2022 23:36:20 -0500 Subject: [PATCH 2/6] [TRANSLATE] Translated MIT6.S081.md (#255) * [TRANSLATION] Translated MIT6.S081.md * [TRANSLATE] Modified MIT6.S081.en.md according to pr review. --- docs/操作系统/MIT6.S081.en.md | 54 +++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 docs/操作系统/MIT6.S081.en.md diff --git a/docs/操作系统/MIT6.S081.en.md b/docs/操作系统/MIT6.S081.en.md new file mode 100644 index 00000000..e33843da --- /dev/null +++ b/docs/操作系统/MIT6.S081.en.md @@ -0,0 +1,54 @@ +# MIT 6.S081: Operating System Engineering + +## Descriptions + +- Offered by: MIT +- Prerequisites: Computer Architecture + Solid C Programming Skills + RISC-V Assembly +- Programming Languages: C, RISC-V +- Difficulty:🌟🌟🌟🌟🌟 +- Class Hour:150 hours + +This is the undergraduate operating system course at MIT, offered by the well-known PDOS Group. One of the instructors, Robert Morris, was once a famous hacker who created 'Morris', the first worm virus in the world. + +The predecessor of this course was the famous MIT6.828. The same instructors at MIT created an educational operating system called JOS based on x86, which has been adopted by many other famous universities. While after the birth of RISC-V, they implemented it based on RISC-V, and offered MIT 6.S081. RISC-V is lightweight and user-friendly, so students don't have to struggle with the confusing legacy features in x86 as in JOS, but focus on the operating system design and implementation. + +The instructors have also written a [tutorial](https://pdos.csail.mit.edu/6.828/2021/xv6/book-riscv-rev2.pdf), elaborately explaining the ideas of design and details of the implementation of xv6 operating system. + +The teaching style of this course is also interesting, the instructors guided the students to understand the numerous technical challenges and design principles in the operating systems by going through the xv6 source code, instead of merely teaching theoretical knowledge. Weekly Labs will let you add new features to xv6, which focus on enhancing students' practical skills. There are 11 labs in total during the whole semester which give you the chance to understand every aspect of the operating systems, bringing a great sense of achievement. Each lab has a complete framework for testing, some tests are more than a thousand lines of code, which shows how much effort the instructors have made to teach this course well. + +In the second half of the course, the instructors will discuss a couple of classic papers in the operating system field, covering file systems, system security, networking, virtualization, and so on, giving you a chance to have a taste of the cutting edge research directions in the academic field. + +## Course Resources + +- Course Website: +- Lecture Videos:, videos for each lecture can be found on the course website. +- Translated documentation(Chinese) of Lecture videos: +- Text Book: +- Assignments: , 11 labs, can be found on the course website. + +## xv6 Resources + +- [Detailed Explanation of xv6](https://space.bilibili.com/1040264970/) +- [xv6 Documentation(Chinese)](https://th0ar.gitbooks.io/xv6-chinese/content/index.html) + +## Complementary Resources + +All resources used and assignments implemented by @PKUFlyingPig when learning this course are in [PKUFlyingPig/MIT6.S081-2020fall - GitHub][github_pkuflyingpig]. + +@[KuangjuX][KuangjuX] documented his [solutions][solution_kuangjux] with detailed explanations and complementary knowledge. Moreover, @[KuangjuX][KuangjuX] has reimplemented [the xv6 operating system in Rust][xv6-rust] which contains more detailed reviews and discussions about xv6. + +[github_pkuflyingpig]: https://github.com/PKUFlyingPig/MIT6.S081-2020fall +[KuangjuX]: https://github.com/KuangjuX +[solution_kuangjux]: https://github.com/KuangjuX/xv6-riscv-solution +[xv6-rust]: https://github.com/Ko-oK-OS/xv6-rust + +### Some Blogs for References + +- [doraemonzzz](http://doraemonzzz.com/tags/6-S081/) +- [Xiao Fan (樊潇)](https://fanxiao.tech/posts/MIT-6S081-notes/) +- [Miigon's blog](https://blog.miigon.net/categories/mit6-s081/) +- [Zhou Fang](https://walkerzf.github.io/categories/6-S081/index.html) +- [Yichun's Blog](https://www.yichuny.page/tags/Operating%20System) +- [解析Ta](https://blog.csdn.net/u013577996/article/details/108679997) +- [PKUFlyingPig](https://github.com/PKUFlyingPig/MIT6.S081-2020fall) +- [星遥见](https://www.cnblogs.com/weijunji/tag/XV6/) From a2fe5618e627d549ce1521f7e3ca5b0bbdbac8b7 Mon Sep 17 00:00:00 2001 From: smxm <695335574@qq.com> Date: Fri, 30 Sep 2022 14:31:21 +0800 Subject: [PATCH 3/6] [TRANSLATE] translate Duke-Coursera-Intro-C.md (#256) * translate Duke-Coursera-Intro-C.md --- docs/编程入门/Duke-Coursera-Intro-C.en.md | 29 +++++++++++++++++++++++ docs/编程入门/Duke-Coursera-Intro-C.md | 1 - 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 docs/编程入门/Duke-Coursera-Intro-C.en.md diff --git a/docs/编程入门/Duke-Coursera-Intro-C.en.md b/docs/编程入门/Duke-Coursera-Intro-C.en.md new file mode 100644 index 00000000..995f5820 --- /dev/null +++ b/docs/编程入门/Duke-Coursera-Intro-C.en.md @@ -0,0 +1,29 @@ +# Introductory C Programming Specialization + +## Descriptions + +- Offered by: Duke +- Prerequisites: None +- Programming Languages: C +- Difficulty: 🌟🌟🌟🌟 +- Class Hour: 110 hours + +This is an excellent course which I benefited a lot from. + +- The course teaches fundamental concepts such as frame, stack memory, heap memory, etc. +- There are great programming assignments to deepen and reinforce your understanding of the hardest part in C, like pointers. +- The course provides excellent practice in GDB, Valgrind, and the assignments will cover some basic Git exercises. +- The course instructor recommends using Emacs for homework, so it's a good opportunity to learn Emacs. If you already know how to use Vim, I suggest you use Evil. This way you don't lose the editing capabilities of Vim, and you get to experience the power of Emacs. Having both Emacs and Vim in your kit will increase your efficiency considerably. Emacs' org-mode, smooth integration of GDB, etc., are convenient for developers. +- It may require payment, but I think it's worth it. +- Although this is an introductory course, it has both breadth and depth. + +## Course Resources + +- Course Website: +- Recordings: refer to course website +- Textbook: refer to course website +- Assignments: refer to course website + +## Personal Resources + +All the resources and assignments used by in this course are maintained in [Duke Coursera Intro C](https://code.haidongji.com/Duke_Coursera_Intro_C/). Several assignments have not been completed so far for time reasons. diff --git a/docs/编程入门/Duke-Coursera-Intro-C.md b/docs/编程入门/Duke-Coursera-Intro-C.md index f9097263..c83c3035 100644 --- a/docs/编程入门/Duke-Coursera-Intro-C.md +++ b/docs/编程入门/Duke-Coursera-Intro-C.md @@ -15,7 +15,6 @@ - 非常好的 GDB,Valgrind 上手训练,作业也会涉及一些基本的 Git 练习。 - 老师建议作业用 Emacs,所以对 Emacs 小白来说,是个不错的入门。如果你会用 Vim ,我建议你用 Evil 插件。这样你不会丢掉 Vim 的编辑功能,同时可以体会 Emacs 的强大。工具箱里同时有 Emacs 和 Vim 时,效率会有不少提高。Emacs 的 org-mode,和 GDB 的顺滑整合,等等等等,都会让你如虎添翼。 - 虽然可能需要付费,但我觉得值。 -- Coursera 把这一大课分成了四个小课,但小课之间的作业文件的转移并不顺利。这是个有点讨厌的地方。幸运的是,后面的小课可以给以前小课的作业打分,所以我是接着把前面的作业又做了一遍。权当巩固,效果不错。 - 虽说课名是入门,但兼具广度和深度。 ## 课程资源 From ee32cc8acea9da63ccbe7a6b9b2c46a9769379c3 Mon Sep 17 00:00:00 2001 From: smxm <695335574@qq.com> Date: Sat, 1 Oct 2022 07:17:12 +0800 Subject: [PATCH 4/6] [TRANSLATION] translate CS110L.md and correct a tiny error (#257) * translate CS110L.md * Update CS126.en.md * Update CS61A.md * Update CS61A.en.md * Update CS110L.en.md * Update CS110L.en.md --- docs/数学进阶/CS126.en.md | 2 +- docs/编程入门/CS110L.en.md | 28 ++++++++++++++++++++++++++++ docs/编程入门/CS61A.en.md | 2 +- docs/编程入门/CS61A.md | 2 +- 4 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 docs/编程入门/CS110L.en.md diff --git a/docs/数学进阶/CS126.en.md b/docs/数学进阶/CS126.en.md index f372ca78..fef930d7 100644 --- a/docs/数学进阶/CS126.en.md +++ b/docs/数学进阶/CS126.en.md @@ -24,4 +24,4 @@ In addition to the Homework, nine Labs will allow you to use probability theory ## Personal Resources -All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPic/EECS126 - GitHub](https://github.com/PKUFlyingPig/EECS126) +All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPig/EECS126 - GitHub](https://github.com/PKUFlyingPig/EECS126) diff --git a/docs/编程入门/CS110L.en.md b/docs/编程入门/CS110L.en.md new file mode 100644 index 00000000..41104de3 --- /dev/null +++ b/docs/编程入门/CS110L.en.md @@ -0,0 +1,28 @@ +# CS110L: Safety in Systems Programming + +## Descriptions + +- Offered by: Stanford +- Prerequisites: basic knowledge about programming and computer system +- Programming Languages: Rust +- Difficulty: 🌟🌟🌟 +- Class Hour: 30 hours + +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 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 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 Website: +- Recordings: +- Textbook: None +- Assignments:6 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. + +## Personal Resources + +All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPig/CS110L - GitHub](https://github.com/PKUFlyingPig/CS110L) diff --git a/docs/编程入门/CS61A.en.md b/docs/编程入门/CS61A.en.md index c1416804..838be938 100644 --- a/docs/编程入门/CS61A.en.md +++ b/docs/编程入门/CS61A.en.md @@ -31,4 +31,4 @@ Note: If you have no prior programming experience at all, getting started with C ## Personal Resources -All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPic/CS61A - GitHub](https://github.com/PKUFlyingPig/CS61A) +All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPig/CS61A - GitHub](https://github.com/PKUFlyingPig/CS61A) diff --git a/docs/编程入门/CS61A.md b/docs/编程入门/CS61A.md index 3b94bfa2..dc99cc70 100644 --- a/docs/编程入门/CS61A.md +++ b/docs/编程入门/CS61A.md @@ -31,4 +31,4 @@ CS61B 和 CS61C 在本书中均有收录。 ## 资源汇总 -@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPic/CS61A - GitHub](https://github.com/PKUFlyingPig/CS61A) 中。 +@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPig/CS61A - GitHub](https://github.com/PKUFlyingPig/CS61A) 中。 From 014536171e06a2d84481c5e303a08ddefd3a2fec Mon Sep 17 00:00:00 2001 From: smxm <695335574@qq.com> Date: Sun, 2 Oct 2022 00:06:19 +0800 Subject: [PATCH 5/6] [TRANSLATION] translate signal.md (#258) * translate signal.md * Update signal.en.md --- docs/电子基础/signal.en.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 docs/电子基础/signal.en.md diff --git a/docs/电子基础/signal.en.md b/docs/电子基础/signal.en.md new file mode 100644 index 00000000..e9aebf58 --- /dev/null +++ b/docs/电子基础/signal.en.md @@ -0,0 +1,21 @@ +# UCB EE120: Signal and Systems + +## Descriptions + +- Offered by: UC Berkeley +- Prerequisites: CS61A, CS70, Calculus, Linear Algebra +- Programming Languages: Python +- Difficulty: 🌟🌟🌟🌟🌟 +- Class Hour: 100 hours + +The highlight of this course is the six exciting labs that will allow you to use signals and systems theory to solve practical problems in Python. For example, in lab3 you will implement the FFT algorithm and compare the performance with Numpy's official implementation. In lab4 you will infer the heart rate by processing the video of fingers. Lab5 is the most awesome one where you will reduce the noise in the photos taken by the Hubble telescope to recover the brilliant and bright starry sky. In lab6 you will build a feedback system to stabilize the pole on the cart. + +## Course Resources + +- Course Website: +- Recordings: refer to course website +- Assignments: refer to course website + +## Personal Resources + +All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPig/UCB-EE120 - GitHub](https://github.com/PKUFlyingPig/UCB-EE120) From 33240b7274a86ede48b4a5f9b14b1bb576c491c8 Mon Sep 17 00:00:00 2001 From: BarbarossaWang <40034814+BarbarossaWang@users.noreply.github.com> Date: Sun, 2 Oct 2022 17:20:02 +0800 Subject: [PATCH 6/6] [TRANSLATION] translate CS186.md (#259) * [TRANSLATION] translate CS186.md * fix descriptions --- docs/数据库系统/CS186.en.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 docs/数据库系统/CS186.en.md diff --git a/docs/数据库系统/CS186.en.md b/docs/数据库系统/CS186.en.md new file mode 100644 index 00000000..735b7fce --- /dev/null +++ b/docs/数据库系统/CS186.en.md @@ -0,0 +1,23 @@ +# UCB CS186: Introduction to Database System + +## Descriptions + +- Offered by: UC Berkeley +- Prerequisites: CS61A, CS61B, CS61C +- Programming Languages: Java +- Difficulty: 🌟🌟🌟🌟🌟 +- Class Hour: 150 hours + +How to write SQL queries? How are SQL commands disassembled, optimized, and transformed into on-disk query commands step by step? How to implement a high-concurrency database? How to implement database failure recovery? What is NoSQL? This course elaborates on the internal details of relational databases. Besides the theoretical knowledge, you will use Java to implement a real relational database that supports SQL concurrent query, B+ tree index, and failure recovery. + +From a practical point of view, you will have the opportunity to write SQL queries and NoSQL queries in course projects, which is very helpful for building full-stack projects. + +## Course Resources + +- Course Website: +- Recordings: +- Assignments: + +## Personal Resources + +All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPig/CS186 - GitHub](https://github.com/PKUFlyingPig/CS186).