IFQ664 Advanced Algorithms and Computational 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 Outline: Session 2 2024, QUT Online, Online

Unit code:IFQ664
Credit points:12
Pre-requisite:(IFN563 OR IFQ563) and (IFN564 OR IFQ564) or IFN505
Disclaimer - Offer of some units is subject to viability, and information in these Unit Outlines is subject to change prior to commencement of the teaching period.

Overview

This unit builds on the basic level Data Structures and Algorithms unit, progressing to advanced graduate level topics in data structures, algorithms and complexity analysis that would not normally be seen in an undergraduate curriculum. When faced with a challenging software problem to solve, it is important to be familiar with a range of clever, but general algorithms and data structures that others in the field have already developed. When no ready-made solution exists, it is important to understand and be guided by the general principles of algorithm design, and to draw upon the experience of the profession in creating new methods. You will learn how to analyse the computational complexity of new and existing algorithms, to determine their suitability for the task at hand.  And most importantly, you will learn how to apply your knowledge to solve practical real-world problems.

Learning Outcomes

On successful completion of this unit you will be able to:

  1. Discuss the structure and use cases of a range of advanced data structures, algorithms, and complexity.
  2. Analyse the complexity of algorithms using advanced complexity concepts.
  3. Evaluate algorithms for particular applications based on their complexity.
  4. Apply a range of algorithm design techniques to create new algorithms for solving computational problems
  5. Communicate algorithms and complexity analysis according to professional standards to stakeholders.
  6. Create software adapting existing advanced data structures and algorithms to solve practical real-world problems.

Content

  • Advanced complexity analysis including iterative algorithm analysis and recursive algorithm analysis
  • Algorithm design techniques including dynamic programming, randomized algorithms, divide and conquer, greedy and backtracking.
  • Advanced data structures such as graph and heap.
  • Advanced algorithms in a variety of domains, including graph algorithms
  • Computational complexity

Learning Approaches

This unit will make use of readings and examples to help explain complex topics as well as weekly activities to apply the mathematical theory. You will also participate in asynchronous on-line discussions as well as synchronous sessions with your peers and the teaching team to create a community of engaged learners to help and support one another. The weekly practical activities are designed to develop the skills required for a major project that allows you the opportunity to apply and demonstrate your skills solving a more substantial real-world problem.

Feedback on Learning and Assessment

Feedback in this unit is provided in the following ways:

  • You can ask the teaching staff for advice and assistance.

  • You will receive formative peer and academic feedback on the weekly activities.

  • You will receive written feedback on the major project.

Assessment

Overview

The assessment is designed to allow you to demonstrate each of the learning outcomes for this unit.

Unit Grading Scheme

7- point scale

Assessment Tasks

Assessment: Project (Applied)

Implement advanced data structures and algorithms to solve a real-world problem and perform a detailed computational complexity analysis.

This assignment is eligible for the 48-hour late submission period and assignment extensions.

Weight: 60
Length: 30-45 hours
Individual/Group: Individual
Due (indicative): Week 12
Related Unit learning outcomes: 1, 2, 3, 4, 5, 6

Assessment: Timed Online Exam

Final exam

Weight: 40
Individual/Group: Individual
Due (indicative): Central Examination Period
Central exam duration: 2:10 - Including 10 minute perusal
Related Unit learning outcomes: 1, 2

Academic Integrity

Students are expected to engage in learning and assessment at QUT with honesty, transparency and fairness. Maintaining academic integrity means upholding these principles and demonstrating valuable professional capabilities based on ethical foundations.

Failure to maintain academic integrity can take many forms. It includes cheating in examinations, plagiarism, self-plagiarism, collusion, and submitting an assessment item completed by another person (e.g. contract cheating). It can also include providing your assessment to another entity, such as to a person or website.

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.

Further details of QUT’s approach to academic integrity are outlined in the Academic integrity policy and the Student Code of Conduct. Breaching QUT’s Academic integrity policy is regarded as student misconduct and can lead to the imposition of penalties ranging from a grade reduction to exclusion from QUT.

Resources

  • Prescribed Text: Introduction to the design and analysis of algorithms, 3rd edition, by Anany Levitin, Pearson (available as eBook)
  • Visual Studio Software (available free of charge to ICT students)
  • Link to other online resources will also be provided.

Risk Assessment Statement

There are no unusual health or safety risks associated with this unit.