Data Structures and Patterns
Duration
- One Semester or equivalent
Contact hours
- 48 hours face to face + blended
On-campus unit delivery combines face-to-face and digital learning.
Prerequisites
or
or
Aims and objectives
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?
Unit Learning Outcomes (ULO)
On successful completion of this unit students will be able to:
1 Apply object oriented design and implementation techniques (K1, K3, K4, K6, S1, S2, S3)
2 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)
3 Design, implement, and evaluate software solutions using behavioural, creational, and structures software design patterns (K3, K4, K6, S1, S2, S3)
4 Explain the purpose and answer questions about data structures and design patterns that illustrate strengths and weaknesses with respect to resource consumption (K1, K3, K6, S1, S2, S3, A2)
5 Assess the impact of data structures on algorithms (K1, K2, K3, K4, K6, S1, S2, S3)6 Analyse algorithm designs and perform best-, average-, and worst-case analysis (K1, K2, K3, K4, K6, S1, S2)
Swinburne Engineering Competencies (A1-7, K1-6, S1-4): find out more about Engineering Skills and Competencies including the Engineers Australia Stage 1 Competencies.
Unit information in detail
- Teaching methods, assessment and content.
Teaching methods
Hawthorn
Type | Hours per week | Number of Weeks | Total |
On Campus Lecture | 2 | 12 | 24 |
On Campus Class in Computer Lab | 2 | 12 | 24 |
Unspecified Activities Independent Learning | 8.5 | 12 | 102 |
TOTAL | 150 hours |
Assessment
Types | Individual/Group Role | Weighting | Unit Learning Outcomes (ULOs) |
Assignment | Individual | 25-25% | 1,2,3,4,5,6 |
Examination | Individual | 50-50% | 1,2,3,4,5,6 |
Weekly Exercises | Individual | 25-25% | 1,2,3,4,5,6 |
Content
- Introduction
- Basic concepts;
- 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.
Reading materials
A list of reading materials and/or required textbooks will be made available in the Unit Outline.