Algorithms and Data Structures

Subject COMP20003 (2015)

Note: This is an archived Handbook entry from 2015.

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

This subject has the following teaching availabilities in 2015:

Semester 2, Parkville - Taught on campus.
Pre-teaching Period Start not applicable
Teaching Period 27-Jul-2015 to 25-Oct-2015
Assessment Period End 20-Nov-2015
Last date to Self-Enrol 07-Aug-2015
Census Date 31-Aug-2015
Last date to Withdraw without fail 25-Sep-2015

Timetable can be viewed here. For information about these dates, click here.
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 AND one of the following:

Study Period Commencement:
Credit Points:
Semester 1, Semester 2
Not offered in 2015
Semester 1, Semester 2


Recommended Background Knowledge:


Non Allowed Subjects:

Students cannot enrol in and gain credit for this subject and:

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:


Dr Nir Lipovetzky



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. Students will be introduced to 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. Leading up to an exam with a programming component, quality implementation of algorithms and data structures is emphasized.

This subject, or its cognate COMP20007 Design of Algorithms, is a prerequisite for many 300-level subjects in the Computing and Software Systems major.


Topics include: justification of algorithm correctness; asymptotic and empirical analysis of algorithm performance; algorithms for sorting and searching, including fundamental data structures such as trees and hash tables; and graph algorithms.

Learning Outcomes:


On completion of this subject the student is expected to:

  1. Present arguments for the correctness or incorrectness of a given algorithm
  2. Reason about and evaluate the efficiency behaviour of a given algorithm
  3. Choose appropriate data structures and algorithms for a given problem
  4. Implement the chosen data structures and algorithms

  • Programming project work during semester, due around weeks 5 and 11, requiring approximately 35 - 40 hours of work (30%)
  • One 30-minute mid-semester test (10%)
  • A 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; 35/70 in the mid-semester test and end-of-semester examination combined.

Intended Learning Outcomes (ILOs) 2, 3 and 4 are addressed in all assessment components. ILO 1 is primarily addressed in the second programming project and the final examination.

Prescribed Texts:


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:

  • Application of knowledge of basic science and engineering fundamentals
  • Effective communication about computational efficiency
  • Capacity to reason and solve problems
  • Ability to undertake problem identification, formulation and solution
  • Programming competency
  • Capacity for creativity and innovation
  • Profound respect for truth and intellectual integrity, and for the ethics of scholarship.



This subject involves two 1-hour lectures and one 2-hour workshop each week. Although lectures are largely delivered directly based on the slides, often there are in-class discussions and development of computer code. The workshops are a blend of tutorial theory questions and implementation of algorithms and data structures in C.


Students are provided with lecture slides, and sample and scaffolding computer code in the C language.


With Big Data at the forefront of modern computing solutions, industry is ever-more focused on efficient computational analysis methods. Software engineers, developers and data analysts will find not only the analysis techniques, but also the fundamental algorithmic design concepts, highly applicable to the handling of significant datasets.

Related Majors/Minors/Specialisations: B-ENG Software Engineering stream
Computer Science
Computer Science
Science-credited subjects - new generation B-SCI and B-ENG.
Selective subjects for B-BMED

Download PDF version.