Overview

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 … For more content click the Read More button below.

Offerings

S1-01-CLAYTON-ON-CAMPUS
S1-01-MALAYSIA-ON-CAMPUS
S2-01-CLAYTON-ON-CAMPUS
S2-01-MALAYSIA-ON-CAMPUS

Contacts

Chief Examiner(s)

Dr Pierre Le Bodic

Unit Coordinator(s)

Dr Muhammad Fermi Pasha

Learning outcomes

On successful completion of this unit, you should be able to:
1.

Translate problem statements into algorithms and implement them in a high level programming language;

2.

Summarise and compare the properties of basic abstract data types such as stacks, queues, lists, trees, priority queues, heaps and hash tables;

3.

Theoretically and experimentally evaluate different implementations of basic abstract data types;

4.

Analyse algorithms by determining their best case and worst case big O time complexity;

5.

Implement and evaluate different strategies for solving a given problem;

6.

Recognise the limitations - both theoretical and practical - of algorithms;

7.

De-construct simple high-level code into assembly code such as MIPS R20

Teaching approach

Peer assisted learning

Assessment summary

This unit has threshold mark hurdles. You must achieve at least 45% of the available marks in the final scheduled assessment, at least 45% in total for in-semester assessments, and an overall unit mark of 50% or more to be able to pass the unit. If you do not achieve the threshold mark, you will receive a fail grade (NH) and a maximum mark of 45 for the unit.

Assessment

1 - Interview Pracs
2 - Solo/Colab Pracs
3 - Scheduled final assessment (3 hours and 10 minutes)

Scheduled and non-scheduled teaching activities

Laboratories
Tutorials
Workshops

Workload requirements

Workload

Learning resources

Recommended resources
Technology resources

Availability in areas of study

Software engineering