Instructors
This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.
While this course was originally designed for first- and second-year undergraduates, it is appropriate not only for college students but also for professionals. Two-thirds of our learners are college graduates working in industry.
How to Enroll
Course Status
In Session
What Learners Say
"Very useful! Very interesting! Very good lectures, quite hard assignments, very smart auto-grader. Wide and friendly community!"
"Challenging, but rewarding. This is the state of the art when it comes to online courses. It doesn't get much better than this. Topics can be a bit hard to crack at a first glance, but explanations are done in such a way that complexity is built up appropriately and incrementally. With the right amount of diligence, you are able to wrap your head around eventually."
"One of the best courses out there. The lectures are very concise and precise. They demand your full attention but reward you with a deep understanding. The homework exercises are very enjoyable with a great mix between implementing your own algorithms and carefully selecting appropriate algorithms and using them correctly to yield the correct solution with the optimal performance characteristics. By the end of the course, you will have a great understanding and appreciation for the most important algorithms in computer science."
"Prof. Sedgewick does an amazing job in explaining the mechanics of the fundamental algorithms and data structures. I have thoroughly enjoyed this course (and Part I)."