diff --git a/docs/数据结构与算法/Algo.en.md b/docs/数据结构与算法/Algo.en.md new file mode 100644 index 0000000..597434f --- /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 Robert Sedgewick has the magic to make even the most complex algorithms incredibly easy to understand. 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 feel that you forget the algorithms quickly after learning them? I think the key to fully grasping an algorithm lies in understanding the three points as follows: + +- Why should do this? (Correctness derivation, or the essence of the entire algorithm.) +- How to implement it? (Talk is cheap. Show me the code.) +- How to use it to solve practical problems? (Bridge the gap between theory and real life.) + +The composition of this course covers the three points above very well. Watching the course videos and reading the professor's [textbook](https://algs4.cs.princeton.edu/home/) will help you understand the essence of the algorithm and allow you to tell others why the algorithm should look like this in very simple and vivid terms. + +After understanding the 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 codes are not demos, but production-ready, time-efficient implementations. They have extensive annotations and comments, and the modularization is also quite good. I learned a lot by just reading the codes. + +Finally, the most exciting part of the course is the 10 high-quality projects, all with real-world backgrounds, rich test cases, 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).