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
Requisites
Prerequisite
Prohibition
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