[TRANSLATION] Translate CS61A.md, CS106B.md and CS106L.md (#235)
* translate MITLA.md * Translate MITLA.md * Translate MITLA.md * Translate MITLA.md * Translate CS61B.md * Translate CS61B.md * [TRANSLATION] * TRANSLATION * Correct an error in CS106L.en.md
This commit is contained in:
parent
2abf62f04d
commit
d5a6477f1a
|
|
@ -0,0 +1,17 @@
|
|||
# Stanford CS106B/X: Programming Abstractions in C++
|
||||
|
||||
## Descriptions
|
||||
|
||||
- Offered by: Stanford
|
||||
- Prerequisites: CS50/CS106A/CS61A or equivalent
|
||||
- Programming Languages: C++
|
||||
- Difficulty: 🌟🌟
|
||||
- Class Hour: 50-70 hours
|
||||
|
||||
CS106B/X are advanced programming courses at Stanford. CS106X is more difficult and in-depth than CS106B, but the main content is similar. Based on programming assignments in C++ language, students will develop the ability to solve real-world problems through programming abstraction. It also covers some simple data structures and algorithms, but is generally not as systematic as a specialized data structures course.
|
||||
|
||||
## Resources
|
||||
|
||||
- Course Website: [CS106B](https://web.stanford.edu/class/cs106b/), [CS106X](https://web.stanford.edu/class/cs106x/)
|
||||
- Textbook: <https://web.stanford.edu/class/cs106x/res/reader/CS106BX-Reader.pdf>
|
||||
- Recordings: <https://www.bilibili.com/video/BV1G7411k7jG>
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
# CS106L: Stanford C++ Programming
|
||||
|
||||
## Descriptions
|
||||
|
||||
- Offered by: Stanford
|
||||
- Prerequisites: better if you are already proficient in a programming language
|
||||
- Programming Languages: C++
|
||||
- Difficulty: 🌟🌟🌟
|
||||
- Class Hour: 20 hours
|
||||
|
||||
I've been writing C++ code since freshman year, and it wasn't until I finished this class that I realized the C++ code I was writing was probably just C + `cin`/`cout`.
|
||||
|
||||
This class will dive into a lot of standard C++ features and syntax that will allow you to write quality C++ code. Techniques such as auto binding, uniform initialization, lambda function, move semantics, RAII, etc. have been used repeatedly in my coding career since then and are very useful.
|
||||
|
||||
It is worth mentioning that in this class, you will implement a HashMap (similar to `unordered_map` in STL), which almost ties the whole course together and is a great test of coding skills. Especially after the implementation of `iterator`, I started to understand why Linus is so sarcastic about C/C++, because it is really hard to write correctly.
|
||||
|
||||
In short, the course is not difficult but very informative which requires you to consolidate repeatedly in later practice. The reason why Stanford offers a single C++ programming class is that many of the subsequent CS courses' projects are based on C++. For example, CS144 Computer Networks and CS143 Compilers. Both of these courses are included in this book.
|
||||
|
||||
## Course Resources
|
||||
|
||||
- Course Website: <http://web.stanford.edu/class/cs106l/>
|
||||
- Recordings: <https://www.youtube.com/channel/UCSqr6y-eaQT_qZJVUm_4QxQ/playlists>
|
||||
- Textbook: <http://web.stanford.edu/class/cs106l/full_course_reader.pdf>
|
||||
- Assignment1 Download: <https://github.com/snme/cs106L-assignment1>
|
||||
- Assignment2 Download: <https://github.com/snme/cs106L-assignment2>
|
||||
- Assignments: refer to course website
|
||||
|
||||
## Personal Resources
|
||||
|
||||
All the resources and assignments used by @PKUFlyingPig are maintained in [PKUFlyingPig/CS106L - GitHub](https://github.com/PKUFlyingPig/CS106L).
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
# CS61A: Structure and Interpretation of Computer Programs
|
||||
|
||||
## Descriptions
|
||||
|
||||
- Offered by: UC Berkeley
|
||||
- Prerequisites: None
|
||||
- Programming Languages: Python, Scheme, SQL
|
||||
- Difficulty: 🌟🌟
|
||||
- Class Hour: 50 hours
|
||||
|
||||
This is the first course in the Berkeley CS61 series, and my introductory course to Python.
|
||||
|
||||
The CS61 series is composed of introductory courses to the CS major at Berkeley, where
|
||||
|
||||
- CS61A: Emphasizes abstraction and equips students to use programs to solve real-world problems without focusing on the underlying hardware details.
|
||||
- CS61B: Focuses on algorithms and data structures and the construction of large-scale programs, where students combine knowledge of algorithms and data structures with the Java language to build large-scale projects at the thousand-line code level (such as a simple Google Maps, a two-dimensional version of Minecraft).
|
||||
- CS61C: Focusing on computer architecture, students will understand how high-level languages (e.g. C) are converted step-by-step into machine-understandable bit strings and executed on CPUs. Students will learn about the RISC-V architecture and implement a CPU on their own by using Logism.
|
||||
|
||||
CS61B and CS61C are both included in this guidebook.
|
||||
|
||||
Going back to CS61A, you will note that this is not just a programming language class, but goes deeper into the principles of program construction and operation. Finally you will implement an interpreter for Scheme in Python in Project 4. In addition, abstraction will be a major theme in this class, as you will learn about functional programming, data abstraction, object orientation, etc. to make your code more readable and modular. Of course, learning a programming language is also a big part of this course. You will master three programming languages, Python, Scheme, and SQL, and in learning and comparing them, you will be equiped with the ability to quickly master a new programming language.
|
||||
|
||||
Note: If you have no prior programming experience at all, getting started with CS61A requires a relatively high level of learning ability and self-discipline. To avoid the frustration of a struggling experience, you may choose a more friendly introductory programming course at first. For example, [CS10](https://cs10.org/sp22/) at Berkeley or [CS50](https://csdiy.wiki/编程入门/CS50/) at Harvard are both good choices.
|
||||
|
||||
## Course Resources
|
||||
|
||||
- Course Website: <https://inst.eecs.berkeley.edu/~cs61a/su20/>
|
||||
- Recordings: refer to the course website
|
||||
- Textbook: <http://composingprograms.com/>
|
||||
- Assignments: refer to the course website
|
||||
|
||||
## Personal Resources
|
||||
|
||||
All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPic/CS61A - GitHub](https://github.com/PKUFlyingPig/CS61A)
|
||||
Loading…
Reference in New Issue