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 fundamental algorithms and data structures, down to their efficient implementation as well as complexity. Topics include data types, data structures, … For more content click the Read More button below.

Offerings

S2-01-CLAYTON-ON-CAMPUS

Contacts

Chief Examiner(s)

Associate Professor Markus Wagner

Unit Coordinator(s)

Associate Professor Markus Wagner

Notes

Optional Peer Assisted Study Sessions (PASS) run in this unit.

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.

Determine appropriate basic abstract data types, including; stacks, queues, lists, binary trees, priority queues, heaps and hash tables; for specific contexts;

3.

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

4.

Analyse the efficiency of algorithms by determining their best-case and worst-case big-O time complexity;

5.

Work in teams to analyse algorithms and write programs.

Teaching approach

Peer assisted learning

Assessment

1 - Assignment 1
2 - Assignment 2
3 - Assignment 3
4 - Weekly Quizzes

Scheduled and non-scheduled teaching activities

Applied sessions
Workshops

Workload requirements

Workload

Learning resources

Recommended resources
Technology resources

Availability in areas of study

Advanced computer science