Overview

This unit of study aims to study the design, implementation, and application of data structures as a means for algorithmic problem solving. Each problem exhibits specific characteristics with respect to resource requirements, data representation, and software architecture. The study of data structures is primarily concerned with the following questions: How can a given problem be effectively expressed? What are suitable data representations for specifying computational processes? What is the impact of data and its representation with respect to time and space consumption? What are the reoccurring structural artefacts in software and how can we identify them in order to facilitate problem solving?

Requisites

Prerequisites

OR
COS20011 Software Development in Java
OR
COS20007 Object Oriented Programming

Teaching periods
Location
Start and end dates
Last self-enrolment date
Census date
Last withdraw without fail date
Results released date
Semester 1
Location
Hawthorn
Start and end dates
03-March-2025
01-June-2025
Last self-enrolment date
16-March-2025
Census date
31-March-2025
Last withdraw without fail date
24-April-2025
Results released date
08-July-2025

Learning outcomes

Students who successfully complete this unit will be able to:

  • Solve problems using object-oriented design and implementation techniques. (K1, K3, K4, K6, S1, S2, S3)
  • Document the impact of data structures on algorithms. (K1, K2, K3, K4, K6, S1, S2, S3)
  • Interpret the trade-offs and issues involved in the design, implementation, and application of various data structures with respect to a given problem. (K1, K2, K4, K6, S1, S2, S3)
  • Summarise the purpose of data structures and design patterns and compare their strengths and weaknesses with respect to resource consumption. (K1, K3, K6, S1, S2, S3, A2)
  • Evaluate algorithm designs and perform best-, average-, and worst-case analysis. (K1, K2, K3, K4, K6, S1, S2)
  • Design, construct, and compose software solutions using behavioural, creational, and structural software design patterns. (K3, K4, K6, S1, S2, S3)
  • Plan and produce a complex software solution in an industry-based context, combining multiple non-trivial data structures and algorithms, and relate solution alternatives. (K1, K2, K3, K4, K6, S1, S2, S3, A2)

Teaching methods

Type Hours per week Number of weeks Total (number of hours)
On-campus
Lecture
2.00  9 weeks  18
Online
Lecture
2.00      3 weeks  6
On-campus
Class
2.00 12 weeks 24
Unspecified Activities 
Independent Learning
8.50  12 weeks  102
TOTAL     150

Assessment

Type Task Weighting ULO's
Assignment Individual  25%  1,2,3,4,6,7
Examination Individual  50%  1,2,3,4,5,6 
Weekly Exercises Individual  25%  1,2,3,4,5,6,7 

Content

  • Introduction
    • Basic concepts and data type construction;
    • Sets, arrays, indexer, and iterators;
    • Asymptotic algorithm analysis
  • Fundamental Data Structures
    • Dynamic arrays;
    • Single linked lists
  • Data Types and Abstraction
    • Abstract data types;
    • Design patterns;
    • Pointers;
    • Memory management
  • Basic Container Types
    • Stacks;
    • Queues;
    • Ordered lists;
    • Hash tables
  • Hierarchical Data Types
    • Trees;
    • Graphs;
    • Tree traversals;
  • Algorithmic Patterns and Problem Solvers
    • Basics;
    • Performance analysis;
    • Greedy algorithms;
    • Backtracking;
    • Divide and Conquer

Study resources

Reading materials

A list of reading materials and/or required textbooks will be available in the Unit Outline on Canvas.