📅 2015-Apr-05 ⬩ ✍️ Ashwin Nanjappa ⬩ 📚 Archive

The **Algorithms (Part 1)** online course at **Coursera** taught by **Sedgewick** had been on my radar since I discovered his fantastic **Algorithms (4th Edition)** textbook. This course is offered every few months and I had enrolled once before in it, only to drop out due to laziness. This second time I joined it a month late, but was able to finish within the hard deadline time.

This course is a must if you liked Sedgewick's Algorithms book. I loved this textbook for the intuitive explanations of the algorithms and their complexity, the elegant Java code and what is easily the best illustrations of algorithms and data structures I have seen so far. However, as I self-studied this textbook, I did not do any exercises or program any assignments. This is where Sedgewick's online courses beautifully complement the book.

The course consists of lectures, exercises and assignments. Since I had studied the textbook and Sedgewick speaks pretty slowly, I was able to breeze through the **lectures** at a 1.5x speed. It acts as an excellent revision of the material in the textbook. Also note that there are lectures on some topics that are **not in the textbook**. For example, the geometric applications of BSTs. Another advantage of the lecture videos, is that you can see the algorithms in action in beautiful animations. These are many times better than viewing static illustrations in a book. This is especially true for operations on trees.

The hard work in the course is in the exercises and assignments, both of which are graded by online programs. Problems in a typical **exercise** will present the input values to an algorithm or values in the middle of the operation of an algorithm. Using pencil and paper you need to work out something interesting about this input. I found this working out of sorting or trees on paper to be extremely illuminating. It adds on another dimension to your understanding of the algorithm. The **assignments** in this course are no pushover. Each can take anywhere from a day to two days to finish and get full score. In each assignment, a full blown problem is presented where you will need to design a new algorithm to solve the problem. The online score keeper is beautifully designed to take you from simple brute-force solutions to the final solution that is optimal in time and space. You will be expected to discover new algorithms and techniques to solve these interesting problems.

In conclusion, I have been extremely satisfied with the Algorithms (Part 1) course by Sedgewick. Working through the course has added new dimensions to my understanding of these fundamental algorithms. The Algorithms course in my undergrad was badly taught, its tests and assignments very superficial and my self-study of textbooks did not involve exercises or assignments. With this course I think I have now gained a good understanding of this beautiful topic. The logical next step is the Algorithms (Part 2) course, which I plan to take sometime soon.