This unit provides an introduction to the design techniques that are used to find efficient algorithmic solutions for given problems. The techniques covered include greedy, divide-and-conquer, dynamic programming, and adjusting flows in networks. Students will extend their skills in algorithm analysis. The unit also provides an introduction to the concepts of computational complexity and reductions between problems.
through semester assessment (40%), final exam (60%)
MATH1004 OR MATH1904 OR MATH1064
COMP2123 OR COMP2823 OR INFO1105 OR INFO1905Prohibitions
COMP2007 OR COMP2907 OR COMP3027