|Year of offer||2019|
|Subject level||Undergraduate Level 2|
|Fees||Subject EFTSL, Level, Discipline & Census Date|
Programmers can choose between several representations of data. These will have different strengths and weaknesses, and each will require its own set of algorithms. Students will be introduced to the most frequently used data structures and their associated algorithms. The emphasis will be on justification of algorithm correctness, on analysis of algorithm performance, and on choosing the right data structure for the problem at hand. Leading up to an exam with a programming component, quality implementation of algorithms and data structures is emphasized.
This subject, or its cognate COMP20007 Design of Algorithms, is a prerequisite for many 300-level subjects in the Computing and Software Systems major.
Topics include: justification of algorithm correctness; asymptotic and empirical analysis of algorithm performance; algorithms for sorting and searching, including fundamental data structures such as trees and hash tables; and graph algorithms.
Intended learning outcomes
INTENDED LEARNING OUTCOMES (ILO)
On completion of this subject the student is expected to:
- Present arguments for the correctness or incorrectness of a given algorithm
- Reason about and evaluate the efficiency behaviour of a given algorithm
- Choose appropriate data structures and algorithms for a given problem
- Implement the chosen data structures and algorithms.
On completion of this subject, students should have developed the following skills:
- Application of knowledge of basic science and engineering fundamentals
- Effective communication about computational efficiency
- Capacity to reason and solve problems
- Ability to undertake problem identification, formulation and solution
- Programming competency
- Capacity for creativity and innovation
- Profound respect for truth and intellectual integrity, and for the ethics of scholarship.