COMP3010: Algorithm Theory and Design

Daniel Sutantyo, Department of Computing, Macquarie University

13.0 - Revision

List of Topics

13.0 - Revision

  1. Complexity
  2. Correctness
  3. Brute Force
  4. Dynamic Programming
  5. Greedy 
  6. Divide and Conquer (Recursion Tree)
  7. Strings
  8. Graphs
  9. Probabilistic Methods
  10. P vs NP (Reduction)
  11. P vs NP (Approximation Algorithms)

Class Test 2

13.0 - Revision

  1. Complexity
  2. Correctness
  3. Brute Force
  4. Dynamic Programming
  5. Greedy
  6. Divide and Conquer (Recursion Tree)
  7. Strings
  8. Graphs
  9. Probabilistic Methods
  10. P vs NP (Reduction)
  11. P vs NP (Approximation Algorithms)

Final Exam

13.0 - Revision

  1. Complexity
  2. Correctness
  3. Brute Force
  4. Dynamic Programming
  5. Greedy
  6. Divide and Conquer (Recursion Tree)
  7. Strings
  8. Graphs
  9. Probabilistic Methods
  10. P vs NP (Reduction)
  11. P vs NP (Approximation Algorithms)

Final Exam

13.0 - Revision

  1. Complexity
  2. Correctness
  3. Brute Force
  4. Dynamic Programming (25 marks ~ 14%)
  5. Greedy (30 marks ~ 16%)
  6. Divide and Conquer (Recursion Tree) 
  7. Strings
  8. Graphs (35 marks ~ 19%)
  9. Probabilistic Methods
  10. P vs NP (Reduction) (25 marks ~ 14%)
  11. P vs NP (Approximation Algorithms) (45 marks ~ 25%)

Class Test 2

13.0 - Revision

  1. Complexity
  2. Correctness
  3. Brute Force
  4. Dynamic Programming
  5. Greedy
  6. Divide and Conquer (Recursion Tree)
  7. Strings
  8. Graphs
  9. Probabilistic Methods
  10. P vs NP (Reduction)
  11. P vs NP (Approximation Algorithms)

Major Topics not in the Final Exam:

13.0 - Revision

  1. String Algorithms (Huffman Coding, Edit Distance)
    • as in you would not be required to do them, but you may still need to know the basic principles
  2. Substitution method
    • as above

Week 1-3, 6: Complexity, Correctness, Brute Force

13.0 - Revision

  • induction
  • complexity notation (\(O\)-notation, \(\Theta\)-notation, \(\Omega\)-notation)
  • recursion-tree method, master-method
  • permutations and combinations for brute force
    • \(O(2^n)\) and \(O(n!)\)
  • recursive backtracking

Week 4-5: Greedy and Dynamic Programming

13.0 - Revision

  • recursive relation (recursion tree)
    • decompose problems into subproblems
  • optimal substructure, cut and paste technique
  • dynamic programming:
    • overlapping subproblems
    • no need for bottom-up if you cannot spot it
  • greedy algorithm:
    • greedy choice, explain why it is safe
  • time complexities

Week 8: Graph Algorithms

13.0 - Revision

  • mostly straightforward
  • make sure you understand the algorithms:
    • Bellman-Ford
    • Matrix Multiplication Method
    • Floyd-Warshall

Week 11-12: P vs NP

13.0 - Revision

  • may have some brute-force questions 
  • understand what reductions are
  • understand how to do approximation algorithms

Extra Support Sessions

13.0 - Revision

  • Can organise a zoom class on Tuesday or Wednesday, Q&A session
    • but please don't use this to ask questions about the assignment ...
  • Discord

COMP3010 - 13.0 - Summary

By Daniel Sutantyo

COMP3010 - 13.0 - Summary

  • 146