Foundations of Computer Science

Postgraduate | 2026

Course page banner
area/catalogue icon
Area/Catalogue
COMP 5080
Course ID icon
Course ID
205845
Level of study
Level of study
Postgraduate
Unit value icon
Unit value
12
Course level icon
Course level
5
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

This course will develop your coding and problem-solving skills with a focus on data and data science. You will learn algorithm design as well as fundamental programming concepts such as data, selection, iteration and functional decomposition, data abstraction and organisation. You will explore Object-Oriented programming fundamentals, including the use of classes and inheritance. You will build effective problem-solving skills, including exposure to problem solving processes and strategies, simple Searching and Sorting algorithms (linear and binary search, selection and insertion sort). You will build fundamental software development skills including the use of programming environments and tools, debugging, testing and fundamentals of good programming practice, style and design.

Course learning outcomes

  • Design, implement and test algorithms using fundamental programming constructs and data structures.
  • Translate between machine level representations and demonstrate how data is represented in computers.
  • Identify, evaluate and use information sources to support the practice of programming, including APIs, tutorials and documentation.
  • Calculate and compare the runtime complexity of common searching and sorting techniques and their implementations – both iterative and recursive.
  • Identify and apply searching and sorting techniques (linear and binary search, selection, insertion, merge, quick, bucket sorts).
  • Identify and apply basic data structures: linked list, stack, queue, qraph, tree (ordered, binary, balanced).
  • Design, implement and test solutions to problems selecting appropriate data structures and basic algorithmic techiques (brute force, divide and conquer, transform and conquer, greedy).

Prerequisite(s)

N/A

Corequisite(s)

N/A

Antirequisite(s)

N/A