I would appreciate some advise/mentoring on self-study of algorithms. Based on my several years of work as a software developer (non CS background), I have some good grip on standard data structures (linked lists, stacks etc.) and basic sorting and searching algorithm characteristics (time/space complexity).

My goal of learning is to take my knowledge to next level (learning graph theory and advanced algorithm techniques such as dynamic and linear programming) to be able to use it in a variety of situations incl. AI and computationally complex domain problems.

So I purchased 2 books -- Algorithm Design Manual from Skiena and Algorithms by Dasgupta et al. I am aware of the usual advice of CLRS, but decided to skip it for now as my goal at this stage is not proofs.

Now my question is: even though I found the style of writing of Dasgupta book rather appealing, topic is often difficult for unguided, unsupervised learning.

Are there any recommendable online courses (free or otherwise) which would cover topics from Dasgupta book? In general, I found the topics covered in Stanford Algorithm specialization (coursera and edX) rather good, but any further options would be helpful!


While I cannot answer your question (MOOC for Dasgupta et al), I will make a different recommendation.

Since you seem to like the more intuitive and slightly informal approaches to learning, rather than the more formal and proof oriented approach, I think you might like the algorithms book series by Tim Roughgarden, Algorithms Illuminated.

Algorithms Illuminated is a book series of four books,

  1. Part 1: The Basics
  2. Part 2: Graph Algorithms and Data Structures
  3. Part 3: Greedy Algorithms and Dynamic Programming
  4. Part 4: Algorithms for NP-Hard Problems

The books are reasonably priced, and on the plus side, Roughgarden has made a series of videos that can be found on the aforementioned website for the books.

In addition, he has a series of lectures that have appeared as edX and coursera courses on his videos site.

  • $\begingroup$ your suggestion makes sense, I think I am beginning to believe that book from Dasgupta et al. could be a reference and I may have to go with Tim's courses to wet the feet $\endgroup$ – senseiwu Apr 27 at 9:42

I would like to share the fruits of my course research for any future references.

If you are an absolute beginner and don't mind doing implementation in Java, then two free courses from Princeton Uni. in Coursera are a good start. Part 2 covers more advanced topics. Instructor Sedgewick is a well known author of an Algorithm book. The book has an accompanying website.

Another good option would be the course from Stanford mentioned in the answer provided above, though that one costs a 40$ subscription per month if you want full features. The advantage is also that you can code in any language you want.

A third option from Coursera is a specialization from UC San Diego which is also a paid course.

MIT OCW also has an algorithm course, using CLRS as the textbook.

If you are reading Dasgupta et al. and want to be supported, then check nowhere else than https://cs170.org/


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.