Major Overview

Description

Computing software and systems are becoming increasingly integral to our lives, revolutionising the world in which we live, work and communicate. This major provides its students with the knowledge and skills required to participate in this revolution. Your studies develop your knowledge of theoretical, algorithmic, implementation and systems principles that underpin computer languages and networks. If you wish to play a role in developing new computing technologies or specialise in enterprise-level programming, systems, software engineering or research careers, then Computer Science is the major for you.

Outcomes

Students are able to:

  1. identify appropriate data structures and algorithms to solve computational problems
  2. design, implement, verify, test, and document robust and secure computer programs
  3. apply the knowledge of design and operation of core computer system components to the development of computer systems
  4. explain ethical, social and security aspects and constraints of contemporary computer science practice
  5. apply team-based software development processes
  6. communicate software and systems requirements analysis, design, implementation, testing and documentation clearly in oral and written formats.
Broadening guidelines

All students studying towards a Bachelor's Degree at UWA are required to Broaden their studies by completing a minimum of four units (24 points) of study outside their degree specific major. Broadening is your opportunity to explore other areas of interest, investigate new disciplines and knowledge paradigms and to shape your degree to suit your own aspirations and interests. Many of you will be able to undertake more than this minimum amount of broadening study and we encourage you to do so if this suits your aspirations. Over the next few months you will find here some broadening suggestions related to your degree-specific major. While we know that many students value guidance of this sort, these are only suggestions and students should not lose sight of the opportunity to explore that is afforded by your Broadening Choices. Advice can also be sought from your Allocated Student Advising Office.

Prerequisites

Mathematics Methods ATAR or Mathematics Applications ATAR with a mathematics unit taken in the first year.

Students without ATAR Mathematics will take two first-year mathematics units.

Incompatibilities

MJD-ESOFT Software Engineering

Courses

Computer Science can be taken as a degree-specific major in the following degree courses:

Example Study Plan

See study plans for more information.

Units

Key to availability of units:
S1
Semester 1
S2
Semester 2

Level 1

Degree-specific major units

Take all units (18 points):

Availability Unit code Unit name unit requirements
S1, S2 CITS1003 Introduction to Cybersecurity
Incompatibility
CITS3004 Cybersecurity
S1, S2 CITS1401 Computational Thinking with Python
Prerequisites
Successful completion of
Mathematics Methods ATAR or equivalent
or MATH1721 Mathematics Foundations: Methods
or MATX1721 Mathematics Foundations
or
Enrolment in
62510 Master of Information Technology
or 62530 Master of Data Science
or BH011 Bachelor of Engineering (Honours)
Incompatibility
Successful completion of
CITS2401 Computer Analysis and Visualisation
or CITS1501 Introduction to Programming with Python
S1, S2 CITS1402 Relational Database Management Systems
Prerequisites

Successful completion of
Mathematics Applications ATAR or equivalent
or MATH1720 Mathematics Fundamentals or equivalent
or MATX1720 Mathematics Fundamentals

or Enrolment in 62510 Master of Information Technology
or 62530 Master of Data Science
Incompatibility
CITS2232 Databases
Bridging units

Take units if applicable:

Availability Unit code Unit name unit requirements
S1, S2 MATH1721 Mathematics Foundations: Methods
Prerequisites
Mathematics Applications ATAR
or MATH1720 Mathematics Fundamentals
or MATX1720 Mathematics Fundamentals
or Mathematics Methods ATAR (with a scaled score of less than 50) or equivalent
Incompatibility
MATH1001 Mathematical Methods 1
and MATH1002 Mathematical Methods 2 and
MATH1011 Multivariable Calculus
or MATX1011 Multivariable Calculus
and
MATH1012 Mathematical Theory and Methods
or MATX1012 Mathematical Theory and Methods
and
STAT1520 Economic and Business Statistics
or STAX1520 Economic and Business Statistics

Level 2

Degree-specific major units

Take all units (24 points):

Availability Unit code Unit name unit requirements
S2 CITS2002 Systems Programming
Prerequisites
Successful completion of
CITS1401 Computational Thinking with Python
or CITX1401 Computational Thinking with Python
or CITS2401 Computer Analysis and Visualisation

or
Enrolment in
62510 Master of Information Technology
and Successful completion of
CITS1401 Computational Thinking with Python
Incompatibility
CITS1002 Programming and System
S1 CITS2005 Object Oriented Programming
Prerequisites
ATAR Mathematics Methods
or MATH1721 Mathematics Foundations: Methods or equivalent
or MATX1721 Mathematics Foundations
or Enrolment in
62510 Master of Information Technology
and CITS1401 Computational Thinking with Python
or CITX1401 Computational Thinking with Python
or CITS2401 Computer Analysis and Visualisation
Incompatibility
CITS1001 Software Engineering with Java
or CITX1001 Software Engineering with Java
S1 CITS2200 Data Structures and Algorithms
Prerequisites
CITS1401 Computational Thinking with Python
or CITX1401 Computational Thinking with Python
and
Mathematics Methods ATAR
or MATH1721 Mathematics Foundations: Methods or equivalent
or MATX0721 Mathematics Foundations: Methods
S2 CITS2211 Discrete Structures
Prerequisites
MATH1721 Mathematics Foundations: Methods or equivalent
or MATX1721 Mathematics Foundations
(
and CITS1401 Computational Thinking with Python or equivalent )

Level 3

Degree-specific major units

Take all units (24 points):

Availability Unit code Unit name unit requirements
S2 CITS3001 Advanced Algorithms
Prerequisites
Successful completion of
CITS2200 Data Structures and Algorithms
S1 CITS3002 Computer Networks
Prerequisites
CITS1002 Programming and System
or CITS2002 Systems Programming
S2 CITS3200 Professional Computing
Prerequisites
completion of at least 84 points, including
CITS2002 Systems Programming
or CITS2200 Data Structures and Algorithms
or CITS2402 Introduction to Data Science
Incompatibility
CITS5206 Professional Computing
S1 CITS3403 Agile Web Development
Prerequisites
CITS1401 Computational Thinking with Python
or CITX1401 Computational Thinking with Python or equivalent
Incompatibility
CITS5505 Agile Web Development
Degree-specific major units

Take unit(s) to the value of 6 points:

Availability Unit code Unit name unit requirements
S1 CITS3003 Graphics and Animation
Prerequisites
CITS1401 Computational Thinking with Python
or CITS2002 Systems Programming
or CITS2401 Computer Analysis and Visualisation
or CITX1401 Computational Thinking with Python
S2 CITS3005 Knowledge Representation
Prerequisites
CITS2200 Data Structures and Algorithms
and CITS2211 Discrete Structures
S1 CITS3007 Secure Coding
Prerequisites
Successful completion of
CITS2200 Data Structures and Algorithms
or CITS2002 Systems Programming
or CITS2005 Object Oriented Programming
or CITS2402 Introduction to Data Science
S1, S2 CITS3009 Computer Science WIL Internship
Prerequisites
Enrolment in
BH008 Bachelor of Advanced Computer Science [Honours]
or Enrolment in
MJD-CMPSC Computer Science

and Successful completion of
96 points
Incompatibility
WILG3001 Work Integrated Learning Internship Program
or WILG2201 Work Integrated Learning Internship Program
S2 CITS3011 Intelligent Agents
Prerequisites
Successful completion of
CITS2200 Data Structures and Algorithms
S2 CITS3402 High Performance Computing
Prerequisites
CITS2002 Systems Programming
Incompatibility
CITS5507 High Performance Computing
or PHYS4022 Advanced Quantum Computing
or SHPC4002 Advanced Computational Physics