The Computer Science Foundations minor provides principles, theories and practical skills which are required to complete demanding, practical Computer Science tasks or to build a further, deeper Computer Science understanding by adding further Computer Science advanced courses afterwards. This could for instance be a major in Cyber Security. Students will learn how to design and analyze Computer Science Systems from first principles. The minor spans the whole width of Computer Science in terms of theory, physical implementations (hardware), programming as well as foundations of computer networks and a selection of current, common, practical algorithms.

## Learning Outcomes

Understand the basic principles of Computer Science across all major Computer Science areas including theory, hardware and software.

Design and analyze basic Computer Science systems from first principles

Understand and apply a selection of current, common algorithms to a variety of practical problems.

Be able to migrate in analysis and design between all abstraction levels of Computer Science systems - from mathematical models to execution on hardware, including all the intermediate stages.

## Requirements

This minor requires the completion of 24 units, which must consist of:

18 units from completion of the following compulsory courses:

COMP1130 Programming as Problem Solving (Advanced)

COMP1600 Foundations of Computing

COMP2300 Computer Organisation and Program Execution

6 units from the completion of one course from the following list:

MATH1005 Discrete Mathematical Models

MATH2222 **I**ntroduction to Mathematical Thinking: Problem-Solving and Proofs