Skip to main content

We are aiming for an incremental return to campus in accordance with guidelines provided by NSW Health and the Australian Government. Until this time, learning activities and assessments will be planned and scheduled for online delivery where possible, and unit-specific details about face-to-face teaching will be provided on Canvas as the opportunities for face-to-face learning become clear.

Unit of study_

COMP3027: Algorithm Design

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.

Code COMP3027
Academic unit Computer Science
Credit points 6
Prerequisites:
? 
COMP2123 OR COMP2823 OR INFO1105 OR INFO1905
Corequisites:
? 
None
Prohibitions:
? 
COMP2007 OR COMP2907 OR COMP3927
Assumed knowledge:
? 
MATH1004 OR MATH1904 OR MATH1064

At the completion of this unit, you should be able to:

  • LO1. produce a clear account of an algorithm, that would allow others to understand and implement it
  • LO2. learn about a novel algorithm, by searching for descriptions in textbooks or online
  • LO3. read, understand, analyze and modify a given algorithm, as well as design efficient algorithmic solutions for given problems and evaluate the proposal
  • LO4. draw from basic experience of implementing algorithms
  • LO5. analyze the complexity of a given algorithm
  • LO6. demonstrate knowledge of fundamental algorithms for several problems, especially graph problems, testing graph properties and solving optimization problems on graphs, as well as knowledge of fundamental general algorithmic design techniques, such as greedy, dynamic programming and divide-and-conquer
  • LO7. understand the fundamental concepts of computational hardness
  • LO8. understand NP-hardness and the ways of dealing with hardness as well as demonstrate knowledge of randomized algorithms and approximation algorithms
  • LO9. demonstrate knowledge of basic complexity classes and understanding of reductions between problems.

Unit outlines

Unit outlines will be available 2 weeks before the first day of teaching for 1000-level and 5000-level units, or one week before the first day of teaching for all other units.

There are no unit outlines available online for previous years.