6 points, SCA Band 2, 0.125 EFTSL
Undergraduate - Unit
Refer to the specific census and withdrawal dates for the semester(s) in which this unit is offered.
- First semester 2017 (Day)
- Second semester 2017 (Day)
This unit introduces students to core problem-solving, analytical skills, and methodologies useful for developing flexible, robust, and maintainable software. In doing this it covers a range of conceptual levels, from high level algorithms and data-structures, down to the machine models and simple assembly language programming. Topics include data types; data structures; algorithms; algorithmic complexity; recursion; and translation to assembly language.
At the completion of this unit, students should be able to:
- translate problem statements into algorithms and implement them in a high level programming language;
- summarise and compare the properties of basic abstract data types such as stacks, queues, lists, trees, priority queues, heaps and hash tables;
- theoretically and experimentally evaluate different implementations of basic abstract data types;
- analyse algorithms by determining their best case and worst case big O time complexity;
- implement and evaluate different strategies for solving a given problem;
- recognise the limitations - both theoretical and practical - of algorithms;
- de-construct simple high-level code into assembly code such as MIPS R2000.
Examination (2 hours plus 30 minutes reading and noting time): 60%; In-semester assessment: 40%
Minimum total expected workload equals 12 hours per week comprising:
- Contact hours for on-campus students:
- Three 1-hour lectures
- One 1-hour tutorial
- One 3-hour laboratory
- Additional requirements (all students):
- A minimum of 5 hours of personal study per week in order to satisfy the reading and assignment expectations.
See also Unit timetable information
This unit applies to the following area(s) of study