1. Handbook
  2. Subjects
  3. Foundations of Algorithms

Foundations of Algorithms (COMP10002)

Undergraduate level 1Points: 12.5On Campus (Parkville)

You’re viewing the 2019 Handbook:
Or view archived Handbooks


Year of offer2019
Subject levelUndergraduate Level 1
Subject codeCOMP10002
Semester 1
Semester 2
FeesSubject EFTSL, Level, Discipline & Census Date


In many projects, it is important for programmers to have fine control over low-level details of program execution, and to be able to assess the cost of a design decision on likely overall program performance. This subject introduces students to a system programming language that gives programmers this kind of control, explores a range of standard data structures and algorithmic techniques, and shows how to apply them to frequently encountered problems.


  • Introduction to computer organization
  • Machine level representation of data
  • Programming in a system programming language
  • Pointers and dynamic memory allocation
  • Program semantics and arguments about correctness
  • Induction and recursion
  • Basic searching algorithms (linear and binary)
  • Basic sorting algorithms (such as selection sort, insertion sort, quicksort)
  • Basic data structures (binary search trees and hash tables)
  • Asymptotic complexity
  • Standard software development tools such as debuggers.

Intended learning outcomes


On completion of this subject the student is expected to:

  1. Read, write and debug typical small-scale programs in a system programming language such as C
  2. Discuss, analyse, implement, and apply standard data structures such as linked lists, binary search trees, and hash tables
  3. Discuss, analyse, and apply a range of sorting and searching algorithms
  4. Present logical arguments for the correctness of a given algorithm
  5. Choose between different algorithms for simple problems by analysing their complexity
  6. Use a command line interface and standard development tools for programming

Generic skills

On completion of this subject students should have developed the following skills:

  • Ability to undertake problem identification, formulation and solution
  • Capacity for independent critical thought, rational inquiry and self-directed learning
  • Profound respect for truth and intellectual integrity, and for the ethics of scholarship
  • An ability to apply knowledge of basic science and engineering fundamentals.

Last updated: 10 August 2019