CAB301 Algorithms and Complexity
To view more information for this unit, select Unit Outline from the list below. Please note the teaching period for which the Unit Outline is relevant.
| Unit code: | CAB301 |
|---|---|
| Prerequisite(s): | CAB201 or ITD121 |
| Equivalent(s): | CAZ301 |
| Credit points: | 12 |
| Timetable | Details in HiQ, if available |
| Availabilities |
|
| CSP student contribution | $1,192 |
| Domestic tuition unit fee | $4,704 |
| International unit fee | $5,640 |
Unit Outline: Semester 1 2026, Gardens Point, Internal
| Unit code: | CAB301 |
|---|---|
| Credit points: | 12 |
| Pre-requisite: | CAB201 or ITD121 |
| Equivalent: | CAZ301 |
| Coordinator: | Maolin Tang | m.tang@qut.edu.au |
Overview
This unit teaches you classical data structures and algorithms used in software development and the fundamental principles for analysing the time efficiency of algorithms, allowing you to distinguish software solutions that can process large amounts of data or perform complex calculations effectively from those that run unacceptably slowly or not at all. In this unit you will examine a range of different algorithms, review the principles used to predict their efficiency and perform empirical measurements of specific algorithms to confirm the theoretical predictions.
Learning Outcomes
On successful completion of this unit you will be able to:
- Explain the profound importance of algorithms and complexity in software development
- Analyse the time efficiently of algorithms using both theoretical and empirical means
- Integrate a range of classical data structures and algorithms to solve real world software development problems
- Design efficient algorithms for solving complex computational problems
- Write a technical report that meets information technology industry standards for a specialist audience
Content
- Big-O notation and algorithmic analysis
- Linear data structures (Array, linked list, stack and queue)
- Sorting algorithms
- Searching algorithms
- Trees and algorithms
- Graphs and algorithms
- Hashtable
Learning Approaches
This unit is available for you to study in either on-campus or online mode. You can expect to spend 10 - 15 hours per week involved in preparing for and attending scheduled classes, preparing and completing assessment tasks as well as independent study and consolidation of your learning.
This unit provides an engaging mix of theory and artefact-driven practice. Theory is taught in weekly lectures and reinforced in weekly tutorials and through completing problem-solving tasks in assignments.
Feedback on Learning and Assessment
You will receive formative feedback in class. Summative and formative feedback will be supplied for the assignments.
Assessment
Overview
Although founded in theory, this unit emphasises complementary practical skills. In particular, the assignments (problem solving task and project) provide a clear link between theory and practice. You are required to be self-sufficient in implementing computer programs given detailed algorithmic descriptions.
Unit Grading Scheme
7- point scale
Assessment Tasks
Assessment: Assignment 1
This assignment is designed to evaluate your understanding of linear data structures and algorithms, as well as your ability to apply this knowledge in developing reusable Abstract Data Types (ADTs).
You will be provided with two to three ADT specifications in the form of C# interfaces. Your task is to implement these specifications using the appropriate linear data structures and algorithms. Additionally, you will need to design efficient algorithms to solve computational problems related to the ADT operations and analyse the time complexity of your solutions.
This assignment is eligible for the 48-hour late submission period and assignment extensions.
Assessment: Assignment 2
This assignment is designed to assess your understanding of nonlinear data structures and algorithms, as well as your ability to apply this knowledge in developing reusable Abstract Data Types (ADTs).
You will be provided with two to three ADT specifications in the form of C# interfaces. Your task is to implement these ADTs using the specified nonlinear data structures and algorithms. Additionally, you must design efficient algorithms to address computational challenges associated with the ADT operations and analyse the time complexity of your solutions.
This assignment is eligible for the 48-hour late submission period and assignment extensions.
Assessment: Project
This assignment aims to evaluate your understanding of data structures and algorithms, as well as your ability to apply this knowledge in a real-world software development project.
You may be required to use the ADTs you developed in Assignment 1 and/or Assignment 2, as well as develop new ADTs to support the software project. Additionally, you will need to design efficient algorithms to solve computational problems within the project and empirically analyse their time efficiency.
This assignment is eligible for the 48-hour late submission period and assignment extensions.
Academic Integrity
Academic integrity is a commitment to undertaking academic work and assessment in a manner that is ethical, fair, honest, respectful and accountable.
The Academic Integrity Policy sets out the range of conduct that can be a failure to maintain the standards of academic integrity. This includes, cheating in exams, plagiarism, self-plagiarism, collusion and contract cheating. It also includes providing fraudulent or altered documentation in support of an academic concession application, for example an assignment extension or a deferred exam.
You are encouraged to make use of QUT’s learning support services, resources and tools to assure the academic integrity of your assessment. This includes the use of text matching software that may be available to assist with self-assessing your academic integrity as part of the assessment submission process.
Breaching QUT’s Academic Integrity Policy or engaging in conduct that may defeat or compromise the purpose of assessment can lead to a finding of student misconduct (Code of Conduct – Student) and result in the imposition of penalties under the Management of Student Misconduct Policy, ranging from a grade reduction to exclusion from QUT.
Resources
Risk Assessment Statement
There are no unusual health or safety risks associated with this unit.
Disclaimer - Offer of some units is subject to viability, and information in these Unit Outlines is subject to change prior to commencement of semester.
Standards/Competencies
This unit is designed to support your development of the following standards\competencies.
Australian Computer Society Core Body of Knowledge
2: ICT Problem Solving
3: Technology Resources
- Data and information management
Relates to: ULO3
Engineers Australia Stage 1 Competency Standard for Professional Engineer
1: Knowledge and Skill Base
Relates to: Project
Relates to: Assignment 1, Assignment 2, Project
2: Engineering Application Ability
Relates to: Assignment 1, Assignment 2, Project
Relates to: Assignment 1, Assignment 2
Relates to: Project
3: Professional and Personal Attributes
Relates to: Assignment 1, Assignment 2
The Global Skills and Competency framework for a digital world
PROG: Programming/Software Development
Course Learning Outcomes
This unit is designed to support your development of the following course/study area learning outcomes.EN01 Bachelor of Engineering (Honours)
- Engage stakeholders professionally and communicate the outcomes of your work effectively to expert and non-expert audiences using appropriate modes.
Relates to: ULO5, Project - Display leadership, creativity, and initiative in both self-directed and collaborative contexts of professional engineering practice.
Relates to: Project - Manage projects to solve complex engineering problems, using appropriate information, engineering methods, and technologies.
Relates to: ULO2, ULO4, Assignment 1, Assignment 2, Project - Deploy appropriate approaches to engineering design and quality.
Relates to: ULO3, Assignment 1, Assignment 2, Project - Demonstrate a thorough understanding of one engineering discipline, its research directions, and its application in contemporary professional engineering practice.
Relates to: ULO1, Assignment 1, Assignment 2
EV01 Bachelor of Engineering (Honours)
- Engage stakeholders professionally and communicate the outcomes of your work effectively to expert and non-expert audiences using appropriate modes.
Relates to: Project - Display leadership, creativity, and initiative in both self-directed and collaborative contexts of professional engineering practice.
Relates to: Project - Manage projects to solve complex engineering problems, using appropriate information, engineering methods, and technologies.
Relates to: Assignment 1, Assignment 2, Project - Deploy appropriate approaches to engineering design and quality.
Relates to: Assignment 1, Assignment 2, Project - Demonstrate a thorough understanding of one engineering discipline, its research directions, and its application in contemporary professional engineering practice.
Relates to: Assignment 1, Assignment 2
IN01 Bachelor of Information Technology
- Demonstrate a broad theoretical and technical knowledge of well-established and emerging IT disciplines, with in-depth knowledge in at least one specialist area aligned to multiple ICT professional roles.
Relates to: ULO1, Assignment 1, Assignment 2 - Critically analyse and conceptualise complex IT challenges and opportunities using modelling, abstraction, ideation and problem-solving to generate, evaluate and justify recommended solutions.
Relates to: ULO4, Project - Integrate and apply technical knowledge and skills to analyse, design, build, operate and maintain sustainable, secure IT systems using industry-standard tools, technologies, platforms, and processes.
Relates to: ULO2, ULO3, Assignment 1, Assignment 2, Project - Communicate professionally and effectively in written, verbal and visual formats to a diverse range of stakeholders, considering the audience and explaining complex ideas in a simple and understandable manner in a range of IT-related contexts.
Relates to: ULO5, Project
IN05 Bachelor of Games and Interactive Environments
- Demonstrate broad knowledge of games and interactive environments principles and theory, with an in-depth knowledge of one games-related discipline.
Relates to: ULO1, Assignment 1, Assignment 2 - Apply creativity, critical thinking and problem-solving skills to generate solutions to design challenges.
Relates to: ULO2, ULO3, ULO4, Assignment 1, Assignment 2, Project - Create engaging and meaningful games experiences for specific target audiences in partnership with diverse industry and community stakeholders using industry-relevant software and technologies..
Relates to: ULO3, ULO4, Assignment 1, Assignment 2, Project - Communicate complex concepts at all stages of the development cycle to specialist and non-specialist audiences in written, oral and interactive visual formats.
Relates to: ULO5, Project - Evidence the development of your learning, professional capabilities and skills through creating a curated portfolio of work.
Relates to: ULO4, Project
Unit Outline: Semester 1 2026, Online
| Unit code: | CAB301 |
|---|---|
| Credit points: | 12 |
| Pre-requisite: | CAB201 or ITD121 |
| Equivalent: | CAZ301 |
Overview
This unit teaches you classical data structures and algorithms used in software development and the fundamental principles for analysing the time efficiency of algorithms, allowing you to distinguish software solutions that can process large amounts of data or perform complex calculations effectively from those that run unacceptably slowly or not at all. In this unit you will examine a range of different algorithms, review the principles used to predict their efficiency and perform empirical measurements of specific algorithms to confirm the theoretical predictions.
Learning Outcomes
On successful completion of this unit you will be able to:
- Explain the profound importance of algorithms and complexity in software development
- Analyse the time efficiently of algorithms using both theoretical and empirical means
- Integrate a range of classical data structures and algorithms to solve real world software development problems
- Design efficient algorithms for solving complex computational problems
- Write a technical report that meets information technology industry standards for a specialist audience
Content
- Big-O notation and algorithmic analysis
- Linear data structures (Array, linked list, stack and queue)
- Sorting algorithms
- Searching algorithms
- Trees and algorithms
- Graphs and algorithms
- Hashtable
Learning Approaches
This unit is available for you to study in either on-campus or online mode. You can expect to spend 10 - 15 hours per week involved in preparing for and attending scheduled classes, preparing and completing assessment tasks as well as independent study and consolidation of your learning.
This unit provides an engaging mix of theory and artefact-driven practice. Theory is taught in weekly lectures and reinforced in weekly tutorials and through completing problem-solving tasks in assignments.
Feedback on Learning and Assessment
You will receive formative feedback in class. Summative and formative feedback will be supplied for the assignments.
Assessment
Overview
Although founded in theory, this unit emphasises complementary practical skills. In particular, the assignments (problem solving task and project) provide a clear link between theory and practice. You are required to be self-sufficient in implementing computer programs given detailed algorithmic descriptions.
Unit Grading Scheme
7- point scale
Assessment Tasks
Assessment: Assignment 1
This assignment is designed to evaluate your understanding of linear data structures and algorithms, as well as your ability to apply this knowledge in developing reusable Abstract Data Types (ADTs).
You will be provided with two to three ADT specifications in the form of C# interfaces. Your task is to implement these specifications using the appropriate linear data structures and algorithms. Additionally, you will need to design efficient algorithms to solve computational problems related to the ADT operations and analyse the time complexity of your solutions.
This assignment is eligible for the 48-hour late submission period and assignment extensions.
Assessment: Assignment 2
This assignment is designed to assess your understanding of nonlinear data structures and algorithms, as well as your ability to apply this knowledge in developing reusable Abstract Data Types (ADTs).
You will be provided with two to three ADT specifications in the form of C# interfaces. Your task is to implement these ADTs using the specified nonlinear data structures and algorithms. Additionally, you must design efficient algorithms to address computational challenges associated with the ADT operations and analyse the time complexity of your solutions.
This assignment is eligible for the 48-hour late submission period and assignment extensions.
Assessment: Project
This assignment aims to evaluate your understanding of data structures and algorithms, as well as your ability to apply this knowledge in a real-world software development project.
You may be required to use the ADTs you developed in Assignment 1 and/or Assignment 2, as well as develop new ADTs to support the software project. Additionally, you will need to design efficient algorithms to solve computational problems within the project and empirically analyse their time efficiency.
This assignment is eligible for the 48-hour late submission period and assignment extensions.
Academic Integrity
Academic integrity is a commitment to undertaking academic work and assessment in a manner that is ethical, fair, honest, respectful and accountable.
The Academic Integrity Policy sets out the range of conduct that can be a failure to maintain the standards of academic integrity. This includes, cheating in exams, plagiarism, self-plagiarism, collusion and contract cheating. It also includes providing fraudulent or altered documentation in support of an academic concession application, for example an assignment extension or a deferred exam.
You are encouraged to make use of QUT’s learning support services, resources and tools to assure the academic integrity of your assessment. This includes the use of text matching software that may be available to assist with self-assessing your academic integrity as part of the assessment submission process.
Breaching QUT’s Academic Integrity Policy or engaging in conduct that may defeat or compromise the purpose of assessment can lead to a finding of student misconduct (Code of Conduct – Student) and result in the imposition of penalties under the Management of Student Misconduct Policy, ranging from a grade reduction to exclusion from QUT.
Resources
Risk Assessment Statement
There are no unusual health or safety risks associated with this unit.
Disclaimer - Offer of some units is subject to viability, and information in these Unit Outlines is subject to change prior to commencement of semester.
Standards/Competencies
This unit is designed to support your development of the following standards\competencies.
Australian Computer Society Core Body of Knowledge
2: ICT Problem Solving
3: Technology Resources
- Data and information management
Relates to: ULO3
Engineers Australia Stage 1 Competency Standard for Professional Engineer
1: Knowledge and Skill Base
Relates to: Project
Relates to: Assignment 1, Assignment 2, Project
2: Engineering Application Ability
Relates to: Assignment 1, Assignment 2, Project
Relates to: Assignment 1, Assignment 2
Relates to: Project
3: Professional and Personal Attributes
Relates to: Assignment 1, Assignment 2
The Global Skills and Competency framework for a digital world
PROG: Programming/Software Development
Course Learning Outcomes
This unit is designed to support your development of the following course/study area learning outcomes.EN01 Bachelor of Engineering (Honours)
- Engage stakeholders professionally and communicate the outcomes of your work effectively to expert and non-expert audiences using appropriate modes.
Relates to: ULO5, Project - Display leadership, creativity, and initiative in both self-directed and collaborative contexts of professional engineering practice.
Relates to: Project - Manage projects to solve complex engineering problems, using appropriate information, engineering methods, and technologies.
Relates to: ULO2, ULO4, Assignment 1, Assignment 2, Project - Deploy appropriate approaches to engineering design and quality.
Relates to: ULO3, Assignment 1, Assignment 2, Project - Demonstrate a thorough understanding of one engineering discipline, its research directions, and its application in contemporary professional engineering practice.
Relates to: ULO1, Assignment 1, Assignment 2
EV01 Bachelor of Engineering (Honours)
- Engage stakeholders professionally and communicate the outcomes of your work effectively to expert and non-expert audiences using appropriate modes.
Relates to: Project - Display leadership, creativity, and initiative in both self-directed and collaborative contexts of professional engineering practice.
Relates to: Project - Manage projects to solve complex engineering problems, using appropriate information, engineering methods, and technologies.
Relates to: Assignment 1, Assignment 2, Project - Deploy appropriate approaches to engineering design and quality.
Relates to: Assignment 1, Assignment 2, Project - Demonstrate a thorough understanding of one engineering discipline, its research directions, and its application in contemporary professional engineering practice.
Relates to: Assignment 1, Assignment 2
IN01 Bachelor of Information Technology
- Demonstrate a broad theoretical and technical knowledge of well-established and emerging IT disciplines, with in-depth knowledge in at least one specialist area aligned to multiple ICT professional roles.
Relates to: ULO1, Assignment 1, Assignment 2 - Critically analyse and conceptualise complex IT challenges and opportunities using modelling, abstraction, ideation and problem-solving to generate, evaluate and justify recommended solutions.
Relates to: ULO4, Project - Integrate and apply technical knowledge and skills to analyse, design, build, operate and maintain sustainable, secure IT systems using industry-standard tools, technologies, platforms, and processes.
Relates to: ULO2, ULO3, Assignment 1, Assignment 2, Project - Communicate professionally and effectively in written, verbal and visual formats to a diverse range of stakeholders, considering the audience and explaining complex ideas in a simple and understandable manner in a range of IT-related contexts.
Relates to: ULO5, Project
IN05 Bachelor of Games and Interactive Environments
- Demonstrate broad knowledge of games and interactive environments principles and theory, with an in-depth knowledge of one games-related discipline.
Relates to: ULO1, Assignment 1, Assignment 2 - Apply creativity, critical thinking and problem-solving skills to generate solutions to design challenges.
Relates to: ULO2, ULO3, ULO4, Assignment 1, Assignment 2, Project - Create engaging and meaningful games experiences for specific target audiences in partnership with diverse industry and community stakeholders using industry-relevant software and technologies..
Relates to: ULO3, ULO4, Assignment 1, Assignment 2, Project - Communicate complex concepts at all stages of the development cycle to specialist and non-specialist audiences in written, oral and interactive visual formats.
Relates to: ULO5, Project - Evidence the development of your learning, professional capabilities and skills through creating a curated portfolio of work.
Relates to: ULO4, Project