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 |
|
Unit Outline: Semester 1 2027, Gardens Point, Internal
| Unit code: | CAB301 |
|---|---|
| Credit points: | 12 |
| Pre-requisite: | CAB201 or ITD121 |
| Equivalent: | CAZ301 |
| Assumed Knowledge: | This unit uses the C# programming language. Students are expected to have a reasonable level of skill in the language. |
| 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: Algorithm Application Presentation
This assignment is designed to evaluate your understanding of linear data structures and algorithms.
You will be provided with a scenario wherein you are required to make choices about algorithms and linear data structures. You will need to implement efficient algorithms to solve problems within the scenario and analyse time complexity of your solutions.
You will give a short informal oral presentation in which you explain your solution, and answer questions related to your solution, and its efficiency.
The implementation component of this assignment is eligible for the 48-hour late submission period and assignment extensions.
The use of generative artificial intelligence (GenAI) tools is prohibited during this assessment.
Assessment: Implementation of Algorithms Project
This assignment is designed to assess your understanding of techniques for developing efficient algorithms.
You will be a scenario and with a problem related to algorithm techniques discussed in the unit. You will need to design and implement a solution to this problem, using appropriate data structures and custom algorithms, that is correct and efficient.
You will write a report detailing your solution, and how you used appropriate data structures and algorithm techniques to achieve a high efficiency.
This assignment is eligible for the 48-hour late submission period and assignment extensions.
The use of generative artificial intelligence (GenAI) tools is prohibited during this assessment.
Assessment: Final exam
Final examination (theory), based on all lectures and practicals. Written theory paper evaluating students' understanding of algorithms, algorithm design techniques, complexity, linear data structures and non-linear data structures. Students will be assessed on both theoretical and practical topics.
The use of generative artificial intelligence (GenAI) tools is prohibited during this assessment.
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: Final exam
Relates to: Algorithm Application Presentation, Implementation of Algorithms Project, Final exam
2: Engineering Application Ability
Relates to: Algorithm Application Presentation, Implementation of Algorithms Project, Final exam
Relates to: Algorithm Application Presentation, Implementation of Algorithms Project
Relates to: Final exam
3: Professional and Personal Attributes
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, Final exam - Display leadership, creativity, and initiative in both self-directed and collaborative contexts of professional engineering practice.
Relates to: Final exam - Manage projects to solve complex engineering problems, using appropriate information, engineering methods, and technologies.
Relates to: ULO2, ULO4, Algorithm Application Presentation, Implementation of Algorithms Project, Final exam - Deploy appropriate approaches to engineering design and quality.
Relates to: ULO3, Algorithm Application Presentation, Implementation of Algorithms Project, Final exam - Demonstrate a thorough understanding of one engineering discipline, its research directions, and its application in contemporary professional engineering practice.
Relates to: ULO1, Algorithm Application Presentation, Implementation of Algorithms Project
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: Final exam - Display leadership, creativity, and initiative in both self-directed and collaborative contexts of professional engineering practice.
Relates to: Final exam - Manage projects to solve complex engineering problems, using appropriate information, engineering methods, and technologies.
Relates to: Algorithm Application Presentation, Implementation of Algorithms Project, Final exam - Deploy appropriate approaches to engineering design and quality.
Relates to: Algorithm Application Presentation, Implementation of Algorithms Project, Final exam - Demonstrate a thorough understanding of one engineering discipline, its research directions, and its application in contemporary professional engineering practice.
Relates to: Algorithm Application Presentation, Implementation of Algorithms Project
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, Algorithm Application Presentation, Implementation of Algorithms Project - 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, Final exam - 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, Algorithm Application Presentation, Implementation of Algorithms Project, Final exam - 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, Final exam
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, Algorithm Application Presentation, Implementation of Algorithms Project - Apply creativity, critical thinking and problem-solving skills to generate solutions to design challenges.
Relates to: ULO2, ULO3, ULO4, Algorithm Application Presentation, Implementation of Algorithms Project, Final exam - 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, Algorithm Application Presentation, Implementation of Algorithms Project, Final exam - 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, Final exam - Evidence the development of your learning, professional capabilities and skills through creating a curated portfolio of work.
Relates to: ULO4, Final exam
Unit Outline: Semester 1 2027, Online
| Unit code: | CAB301 |
|---|---|
| Credit points: | 12 |
| Pre-requisite: | CAB201 or ITD121 |
| Equivalent: | CAZ301 |
| Assumed Knowledge: | This unit uses the C# programming language. Students are expected to have a reasonable level of skill in the language. |
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: Algorithm Application Presentation
This assignment is designed to evaluate your understanding of linear data structures and algorithms.
You will be provided with a scenario wherein you are required to make choices about algorithms and linear data structures. You will need to implement efficient algorithms to solve problems within the scenario and analyse time complexity of your solutions.
You will give a short informal oral presentation in which you explain your solution, and answer questions related to your solution, and its efficiency.
The implementation component of this assignment is eligible for the 48-hour late submission period and assignment extensions.
The use of generative artificial intelligence (GenAI) tools is prohibited during this assessment.
Assessment: Implementation of Algorithms Project
This assignment is designed to assess your understanding of techniques for developing efficient algorithms.
You will be a scenario and with a problem related to algorithm techniques discussed in the unit. You will need to design and implement a solution to this problem, using appropriate data structures and custom algorithms, that is correct and efficient.
You will write a report detailing your solution, and how you used appropriate data structures and algorithm techniques to achieve a high efficiency.
This assignment is eligible for the 48-hour late submission period and assignment extensions.
The use of generative artificial intelligence (GenAI) tools is prohibited during this assessment.
Assessment: Final exam
Final examination (theory), based on all lectures and practicals. Written theory paper evaluating students' understanding of algorithms, algorithm design techniques, complexity, linear data structures and non-linear data structures. Students will be assessed on both theoretical and practical topics.
The use of generative artificial intelligence (GenAI) tools is prohibited during this assessment.
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: Final exam
Relates to: Algorithm Application Presentation, Implementation of Algorithms Project, Final exam
2: Engineering Application Ability
Relates to: Algorithm Application Presentation, Implementation of Algorithms Project, Final exam
Relates to: Algorithm Application Presentation, Implementation of Algorithms Project
Relates to: Final exam
3: Professional and Personal Attributes
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, Final exam - Display leadership, creativity, and initiative in both self-directed and collaborative contexts of professional engineering practice.
Relates to: Final exam - Manage projects to solve complex engineering problems, using appropriate information, engineering methods, and technologies.
Relates to: ULO2, ULO4, Algorithm Application Presentation, Implementation of Algorithms Project, Final exam - Deploy appropriate approaches to engineering design and quality.
Relates to: ULO3, Algorithm Application Presentation, Implementation of Algorithms Project, Final exam - Demonstrate a thorough understanding of one engineering discipline, its research directions, and its application in contemporary professional engineering practice.
Relates to: ULO1, Algorithm Application Presentation, Implementation of Algorithms Project
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: Final exam - Display leadership, creativity, and initiative in both self-directed and collaborative contexts of professional engineering practice.
Relates to: Final exam - Manage projects to solve complex engineering problems, using appropriate information, engineering methods, and technologies.
Relates to: Algorithm Application Presentation, Implementation of Algorithms Project, Final exam - Deploy appropriate approaches to engineering design and quality.
Relates to: Algorithm Application Presentation, Implementation of Algorithms Project, Final exam - Demonstrate a thorough understanding of one engineering discipline, its research directions, and its application in contemporary professional engineering practice.
Relates to: Algorithm Application Presentation, Implementation of Algorithms Project
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, Algorithm Application Presentation, Implementation of Algorithms Project - 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, Final exam - 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, Algorithm Application Presentation, Implementation of Algorithms Project, Final exam - 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, Final exam
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, Algorithm Application Presentation, Implementation of Algorithms Project - Apply creativity, critical thinking and problem-solving skills to generate solutions to design challenges.
Relates to: ULO2, ULO3, ULO4, Algorithm Application Presentation, Implementation of Algorithms Project, Final exam - 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, Algorithm Application Presentation, Implementation of Algorithms Project, Final exam - 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, Final exam - Evidence the development of your learning, professional capabilities and skills through creating a curated portfolio of work.
Relates to: ULO4, Final exam