Algorithms: Design and Analysis, Part 1

Coursera online course offered by Stanford University.

July 17, 2014 - 1 minute read -
algorithms

I have recently completed Coursera online course “Algorithms: Design and Analysis” (Part I) offered by Stanford University. Instructed by Tim Roughgarden, the course was well-structured and explained. Similar courses are offered to Stanford sophomore, junior, and senior-level computer science majors.

The main topics covered:

  • asymptotic analysis
  • divide and conquer algorithms
  • sorting and searching
  • basic randomized algorithms
  • graph search
  • shortest paths
  • heaps
  • search trees
  • hash tables

Though it’s not mandatory to know or use a specific programming language (like C, Java, or Python) to complete the course, some familiarity with proofs, including proofs by induction and by contradiction, is required. For programming assignments I used Clojure, which is my favorite programming language at the moment. You can find the code for completed assignments in my repository on GitHub.

In general I enjoyed the course very much and highly recommend it to all practicing developers. Though for experienced developers some topics might not be new, but it’s a good refreshment of theoretical basics.