Algorithm Design & Data Structures

Undergraduate | 2026

Course page banner
area/catalogue icon
Area/Catalogue
COMP 2036
Course ID icon
Course ID
205787
Level of study
Level of study
Undergraduate
Unit value icon
Unit value
6
Course level icon
Course level
2
Study abroad and student exchange icon
Inbound study abroad and exchange
Inbound study abroad and exchange
The fee you pay will depend on the number and type of courses you study.
No
University-wide elective icon
University-wide elective course
No
Single course enrollment
Single course enrolment
No
alt
Note:
Course data is interim and subject to change

Course overview

The course is structured to take students from an introductory knowledge of C++ to a higher level, as well as addressing some key areas of computer programming and algorithm design. Topics include: review of class hierarchies, inheritance, friends, polymorphism and type systems; recursion; OO design principles, abstract data types, testing and software reuse; introductory data structures: linked lists, stacks, queues, trees, heaps, algorithmic strategies for searching and sorting data in these structures; introductory complexity analysis.

Course learning outcomes

  • Program C++ in the OO paradigm
  • Explain fundamental computing algorithms
  • Analyse algorithms and identify key algorithmic strategies
  • Demonstrate familiarity with fundamental software engineering practices
  • Demonstrate knowledge of programming language design issues
  • Work competently in a group to learn software concepts
  • Use abstract data types to help solve programming problems

Prerequisite(s)

N/A

Corequisite(s)

N/A

Antirequisite(s)

N/A