Skip to Content

Future Students - Courses

click here for a printable version of this page  

Data Structures and Patterns

Unit Code: HIT8303




Duration

Contact Hours

Campus

Prerequisite

Corequisite

1 Semester

4 hours per week

Hawthorn

Credit Points: 12.5 Credit Points


Related Course/s:

Aims & Objectives:

This unit studies 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?
 
Learning Objectives
Students who successfully complete this unit will be able to:
• Solve problems using object oriented design and implementation techniques.
• Interpret the tradeoffs and issues involved in the design, implementation, and application of various data structures with respect to a given problem.
• Design, implement, and evaluate software solutions using behavioural, creational, and structural software design patterns.
• Explain the purpose and answer questions about data structures and design patterns that illustrate strengths and weaknesses with respect to resource consumption.
• Assess the impact of data structures on algorithms.
• Evaluate algorithm designs and perform best-, average-, and worst-case analysis.

Teaching Methods:

Lecture (24 hrs), Laboratory (24 hrs)

Assessment:

Examination, Tests, Assignments

Generic Skills Outcomes:

The graduate attributes which relate to this unit of study help to produce graduates who:

  • Are capable in their chosen professional, vocational or study areas.
  • Are adaptable and manage change.
  • Are aware of environments.
  • Operate effectively and ethically in work and community situations.
  • Are entrepreneurial in contributing to innovation and development within their business, workplace, and community.

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

Reading Materials:

Bruno R. Preiss: Data Structures and Algorithms with Object-Oriented Design Patterns in C++/Java/C#/Python/Ruby.
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns.
 
Other texts and resources to be advised.