COMP 2009 Data Structures and Algorithms
Credit Points 10
Legacy Code 300103
Coordinator Dongmo Zhang Opens in new window
Description This subject introduces students to fundamental data structures and algorithms used in computing. The material covered forms the basis for further studies in programming and software engineering in later subjects and for further training in programming skills. The subject focuses on the ideas of data abstraction and algorithm efficiency. The issues of computational complexity of algorithms are addressed throughout the semester. The topics covered include the fundamental abstract data types (lists, stacks, queues, trees, hash tables, graphs), recursion, complexity of algorithms, sorting and searching algorithms, binary search trees and graphs.
School Computer, Data & Math Sciences
Discipline Data Structures
Student Contribution Band HECS Band 2 10cp
Check your HECS Band contribution amount via the Fees page.
Level Undergraduate Level 2 subject
Pre-requisite(s) COMP 2014 OR
COMP 2015 OR
COMP 2016 OR
ENGR 1045
Learning Outcomes
On successful completion of this subject, students should be able to:
- Select appropriate data structures to solve moderately complex programming problems.
- Discuss time and space tradeoffs among different data structures that could be used to represent specific information.
- Perform time-complexity analysis against multiple implementations of various abstract data types.
- Write programs that use the fundamental abstract data types: linked list, stack, queue, hash table, binary search tree, heap, graph.
- Select efficient sorting and searching algorithms to solve moderately complex programming problems.
Subject Content
- Basic concepts: abstract data types, Big-O concept and Complexity analysis.
- Stacks and queues: ADT specification, implementation strategies and applications.
- variations of linked lists: Doubly linked lists and circular lists.
- recursion: recursive functions and divide-and-conquer approach.
- trees: Binary trees, Binary search trees, AVL trees, and heaps.
- Graphs: Adjacency matrix and Adjacency list implementations, depth-first search, breadth-first search, and minimum spanning tree algorithms.
- Searching: Sequential search, Binary search and hashing.
- Elementary sorting algorithms: insertion sort, selection sort, and bubble sort.
- advanced sorting algorithms: quick sort, heap sort, and shell sort.
Assessment
The following table summarises the standard assessment tasks for this subject. Please note this is a guide only. Assessment tasks are regularly updated, where there is a difference your Learning Guide takes precedence.
Type | Length | Percent | Threshold | Individual/Group Task |
---|---|---|---|---|
Practical | 2 hours (each practical) | 14 | N | Individual |
Quiz | 30 minutes each | 6 | N | Individual |
Applied Project | Around 600-800 lines of code and up to 4 A4 pages of algorithm description and analysis for each assignment | 30 | N | Individual |
Final Exam | Two-hour | 50 | N | Individual |
Prescribed Texts
- Malik, D.S. (2010). Data Structures Using C++ . (2nd ed.). Cengage Learning/Course Technology
Teaching Periods
Autumn (2022)
Penrith (Kingswood)
Day
Subject Contact Dongmo Zhang Opens in new window
View timetable Opens in new window
Parramatta - Victoria Rd
Day
Subject Contact Dongmo Zhang Opens in new window
View timetable Opens in new window
Autumn (2023)
Penrith (Kingswood)
On-site
Subject Contact Dongmo Zhang Opens in new window
View timetable Opens in new window
Parramatta - Victoria Rd
On-site
Subject Contact Dongmo Zhang Opens in new window