Design of Algorithms

Subject COMP20007 (2014)

Note: This is an archived Handbook entry from 2014.

Credit Points: 12.50
Level: 2 (Undergraduate)
Dates & Locations:

This subject is not offered in 2014.

Time Commitment: Contact Hours: 48 hours, comprising of two 1-hour lectures and one 2-hour workshop per week
Total Time Commitment:

170 hours


25 points of university-level Mathematics


Study Period Commencement:
Credit Points:
Semester 1, Semester 2


Recommended Background Knowledge:


Non Allowed Subjects:

433-253 Algorithms and Data Structures

433 298 Algorithms and Data Structures

Core Participation Requirements:

For the purposes of considering request for Reasonable Adjustments under the Disability Standards for Education (Cwth 2005), and Student Support and Engagement Policy, academic requirements for this subject are articulated in the Subject Overview, Learning Outcomes, Assessment and Generic Skills sections of this entry.

It is University policy to take all reasonable steps to minimise the impact of disability upon academic study, and reasonable adjustments will be made to enhance a student's participation in the University's programs. Students who feel their disability may impact on meeting the requirements of this subject are encouraged to discuss this matter with a Faculty Student Adviser and Student Equity and Disability Support:



Subject Overview:


Programmers can choose between several representations of data. These will have different strengths and weaknesses, and each will require its own set of algorithms. This subject will cover some of the most frequently used data structures and their associated algorithms. The emphasis will be on justification of algorithm correctness, on analysis of algorithm performance, and on choosing the right data structure for the problem at hand.


Sample projects are: approximate string matching for a translation memory, involving sorting and comparison of dynamic programming, branch-and-bound search and brute-force search using a variety of data structures (e.g. arrays, hash tables, tries); speech synthesis based on a pronouncing dictionary and pre-prepared grapheme-phoneme alignment data, based on parsing of the alignment data, hashing of variable length n-grams, and a variety of models for predicting the phoneme(s) associated with a given phoneme sequence (e.g. a simple unigram baseline or a hidden Markov model).

Learning Outcomes:


On completion of this subject the student is expected to:

  1. Read, write and debug graph algorithms, advanced sorting algorithms, dynamic programs and greedy algorithms
  2. Read, write and debug code using intermediate data structures
  3. Choose between different algorithms for intermediate problems by analysing their complexity
  4. Read, write and debug typical multi-module programs in a system programming language such as C

  • A two stage project work during semester, expected to take about 36 hours, with the first stage due in week 4 and the second stage due in week 10 (30%)
  • One 45 minute mid-semester test (10%)
  • One 3-hour end-of-semester written examination (60%)

Hurdle requirement: To pass the subject, students must obtain at least:

  • 50% overall
  • 15/30 in project work
  • And 35/70 in the mid-semester test and end-of-semester written examination combined.

Intended Learning Outcomes (ILOs) 1 - 4 are addressed through the projects and in workshops. ILOs 1 - 3 are assessed in the mid-semester test and the final exam.

Prescribed Texts: None
Breadth Options:

This subject potentially can be taken as a breadth subject component for the following courses:

You should visit learn more about breadth subjects and read the breadth requirements for your degree, and should discuss your choice with your student adviser, before deciding on your subjects.

Fees Information: Subject EFTSL, Level, Discipline & Census Date
Generic Skills:

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

  • An ability to apply knowledge of basic science and engineering fundamentals
  • An ability to undertake problem identification, formulation and solution
  • The capacity to solve problems, including the collection and evaluation of information
  • The capacity for critical and independent thought and reflection
  • An expectation of the need to undertake lifelong learning, and the capacity to do so



The subject is delivered through a combination of lectures and workshops (combination of tutorial and individual/group work in a computer lab). The subject consolidates the introductory C programming exposure students will have attained through COMP10002 Foundations of Algorithms or COMP20006 Programming the Machine.


Students have access to lecture notes, lecture slides and tutorial worksheets. The subject LMS site also contains links to recommended resources relating to programming and algorithmics, and advanced problems for students who want to extend themselves.


The subject provides students with intermediate-level, multi-module programming experience in C, and hands-on practicum with algorithmic analysis and development. It is highly relevant to any career involving “big data”, and covers the staple of technical interviews by companies such as Google, Microsoft and Amazon. There is every expectation that the subject will incorporate guest lecture(s) from leading figures in algorithmics.

Related Majors/Minors/Specialisations: Computer Science
Science credit subjects* for pre-2008 BSc, BASc and combined degree science courses
Science-credited subjects - new generation B-SCI and B-ENG.
Selective subjects for B-BMED
Related Breadth Track(s): Computing

Download PDF version.