Algorithms on Graphs

Taught by Prof. Alexander Kulikov, Prof. Daniel M Kane, Lecturer Neil Rhodes, and Lecturer Michael Levin from University of California San Diego & HSE University

Course Topics:

A course dealing with graphs and algorithms for graphs, with a focus on exploring graphs and finding shortest paths. Graphs can represent many real-world situations, from road to computer to social networks.

Topics in the first 5 weeks include:

  • Graphs (both directed & undirected and weighted & unweighted)
  • Trees aka directed acyclic graphs
  • Both strongly and weakly connected components and algorithms to find them
  • Topological order and sorts
  • Breadth- and depth-first search
  • Shortest paths and shortest-path trees
  • Dijkstra's and Bellman-Ford algorithms
  • Arbitrage and negative cycles
  • Greedy algorithms, the cut property, and Prim's & Kruskal's algorithms
  • Proofs of correctness

Final Week

The final week, quiz, and set of projects dealing with advanced shortest path algorithms were optional, but were completed.

Topics include:

  • Bidirectional Dijkstra algorithm
  • Potential functions, the A* algorithm, and it's bidirectional varient
  • Landmarks
  • Contraction hierarches algorithm, including subcomponents such as preprocessing, node ordering, and witness search, as well as a proof of correctness
  • Implementing a small-scale Traveling Salesman solver


Course Statistics:

  • Final Grade: 100% (from project autograder)
  • University: University of California San Diego and HSE University (through Coursera.org)
  • Instructors: Prof. Alexander Kulikov, Prof. Daniel M Kane, Lecturer Neil Rhodes, and Lecturer Michael Levin
  • Textbook: Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne
Class Link:
  • coursera.org/learn/algorithms-on-graphs

    Projects (Click to Download):
  • Algorithms on Graphs Code - a selection of shortest-path programs and algorithms


  • Copyright © Samantha S. 2020