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.
Faculty
Chief examiner(s)
Professor Maria Garcia de la Banda
Unit guides
Synopsis
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.
Outcomes
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.
Assessment
Examination (3 hours): 60%; In-semester assessment: 40%
Workload requirements
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