Coursera

Data Structures and Algorithms / Course 3 of 6: Algorithms on Graphs

Programming Assignment 1: Decomposition of Graphs

Programming Assignment 2: Decomposition of Graphs

  • Problem: Checking Consistency of CS Curriculum / acyclicity
  • Problem: Determining an Order of Courses / toposort
  • Advanced Problem: Checking Whether Any Intersection in a City is Reachable from Any Other / strongly_connected

Programming Assignment 3: Paths in Graphs

  • Problem: Computing the Minimum Number of Flight Segments / bfs
  • Problem: Checking whether a Graph is Bipartite / bipartite

Programming Assignment 4: Paths in Graphs

  • Problem: Computing the Minimum Cost of a Flight / dijkstra
  • Problem: Detecting Anomalies in Currency Exchange Rates / negative cycle
  • Advanced Problem: Exchanging Money Optimally / shortest paths

Programming Assignment 5:

Data Structures and Algorithms / Course 4 of 6: Algorithms on Strings

Programming Assignment 1: Suffix Trees

Programming Assignment 2: Burrows-Wheeler Transform and Suffix Arrays

  • Problem: Construct the Burrows–Wheeler Transform of a String / bwt
  • Problem: Reconstruct a String from its Burrows–Wheeler Transform / bwtinverse
  • Problem: Implement BetterBWMatching / bwmatching
  • Problem: Construct the Suffix Array of a String / suffix_array

Programming Assignment 3:

Data Structures and Algorithms / Course 5 of 6: Advanced Algorithms and Complexity

Programming Assignment 1: Flows in Networks

Programming Assignment 2: Linear Programming

Programming Assignment 3: NP-completeness