diff --git a/docs/数据结构与算法/Algo.en.md b/docs/数据结构与算法/Algo.en.md new file mode 100644 index 00000000..d1eada4b --- /dev/null +++ b/docs/数据结构与算法/Algo.en.md @@ -0,0 +1,35 @@ +# Coursera: Algorithms I & II + +## Descriptions + +- Offered by: Princeton +- Prerequisites: CS61A +- Programming Languages: Java +- Difficulty: 🌟🌟🌟 +- Class Hour: 60 hours + +This is the highest rated algorithms course on [Coursera](https://www.coursera.org), and Professor Robert Sedgewick has a magic way of making even the most complex algorithms look incredibly vivid and simple. To be honest, the KMP and network flow algorithms that I have been struggling with for years were made clear to me in this course, and I can even write derivations and proofs for both of them two years later. + +Do you think that after learning the algorithm, then you forget it? I think the core of letting you fully grasp an algorithm lies in understanding three points: + +- Why do you do this? (Correctness derivation, or the essence of the entire algorithm.) +- How to implement it? (It is not enough to learn without practices.) +- Use it to solve practical problems (Know how to apply you have learned is real skill.) + +The composition of this course fits the three steps above very well. Watching the course videos and reading the professor's [textbook](https://algs4.cs.princeton.edu/home/) will help you understand the nature of the algorithm and allow you to tell others why the algorithm has to look like this in very vivid and simple terms . + +After understanding algorithms, you can read the professor's [code implementation](https://algs4.cs.princeton.edu/code/) of all the data structures and algorithms taught in the course. +Note that these implementations are not demo, but industrial, efficient implementations. They are high-quality code that have rigorous annotations and variable names, and their modularization is also quite good. I learned a lot from these codes. + +Finally, the most exciting part of the course is the 10 high-quality projects, all with background descriptions of real-world problems, rich test samples, and an automated scoring system (code style is also a part of the scoring). You'll get a taste of algorithms in real life. + +## Course Resources + +- Course Website: [Algorithm I](https://www.coursera.org/learn/algorithms-part1), [Algorithm II](https://www.coursera.org/learn/algorithms-part2) +- Recordings: [Coursera: Algorithm I](https://www.coursera.org/learn/algorithms-part1), [Coursera: lgorithm II](https://www.coursera.org/learn/algorithms-part2), [CUvids: Algorithms, 4th Edition](https://cuvids.io/app/course/2/) +- Textbooks: [Algorithms, 4th Edition](https://algs4.cs.princeton.edu/home/) +- Assignments: 10 Projects, the course website has specific requirements + +## Personal Resources + +All the resources and assignments used by @PKUFlyingPig in this course are maintained in [PKUFlyingPig/Princeton-Algorithm - GitHub](https://github.com/PKUFlyingPig/Princeton-Algorithm).