Computer Science major

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; and (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.

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

BP004 Bachelor of Science
BH005 Bachelor of Philosophy (Honours)

Overview of unit sequence

Computer Science is a degree-specific single major comprising:

  • three Level 1 units
  • three Level 2 units
  • six Level 3 units
Key to availability of units:
S1 = Semester 1; S2 = Semester 2; N/A = not available in 2021

Note: Units that are indicated as N/A may be available in 2022 or 2023.

Level 1

Degree-specific major units
Take all units (18 points):
Availability Unit code Unit name unit requirements
S1, S2 CITS1001 Software Engineering with Java
Prerequisites:
Mathematics Applications ATAR
or
MATH1720 Mathematics Fundamentals
or
equivalent
or
higher
Incompatibility:
CITS1200 Java Programming, CITS1220 Software Engineering
S2 CITS1003 Introduction to Cybersecurity
Incompatibility:
CITS3004 Cybersecurity (ID 6150)
S2 CITS1402 Relational Database Management Systems
Prerequisites:
Mathematics Applications ATAR
or
MATH1720 Mathematics Fundamentals
or
equivalent
or
higher
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
Mathematics Methods ATAR (with a scaled score of less than 50)
or
equivalent .
Incompatibility:
WACE Mathematics: Specialist 3A/3B; MATH1038 Calculus and its Applications; MATH1045 Intermediate Calculus; Mathematics Specialist ATAR; MATH1001 Mathematical Methods 1; MATH1002 Mathematical Methods 2; MATH1011 Multivariable Calculus; MATH1012 Mathematical Theory and Methods;
or
STAT1520 Economics and Business Statistics.

Level 2

Degree-specific major units
Take all units (18 points):

Students taking the Computer Science major in conjunction with the Engineering Science major substitute CITS2401 Computer Analysis and Visualisation (Engineering Science major) with CITS2002 System Programming (Computer Science major). Students replace CITS2211 Discrete Structures (Computer Science major) with MATH1011 and MATH1012 (Engineering Science major)

Availability Unit code Unit name unit requirements
S2 CITS2002 Systems Programming
Prerequisites:
Mathematics Methods ATAR
or
MATH1721 Mathematics Foundations: Methods
Incompatibility:
CITS1210 C Programming, CITS2230 Operating Systems, CITS1002 Programming and Systems
S1 CITS2200 Data Structures and Algorithms
Prerequisites:
CITS1001 Software Engineering with Java and (Mathematics Methods ATAR
or
MATH1721 Mathematics Foundations: Methods
or
equivalent
or
higher)
S2 CITS2211 Discrete Structures
Prerequisites:
Mathematics Methods ATAR
or
MATH1721 Mathematics Methods
or
equivalent
or
higher
Co-requisites:
at least one Level 1 unit in computing
or
mathematics

Level 3

Degree-specific major units
Take all units (24 points):
Availability Unit code Unit name unit requirements
S2 CITS3001 Algorithms, Agents and Artificial Intelligence
Prerequisites:
CITS2200 Data Structures and Algorithms
S1 CITS3002 Computer Networks
Prerequisites:
CITS1002 Programming and Systems
or
CITS2002 Programming and Systems
Incompatibility:
CITS3230 Computer Networks, CITS3231 Security and Privacy
S2 CITS3200 Professional Computing
Prerequisites:
completion of at least 84 points, including (CITS1401 Computational Thinking with Python
or
CITS1001 Software Engineering with Java) and (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:
CITS1001 Software Engineering with Java
or
CITS1401 Computational Thinking with Python
or
CITS2002 Systems Programming
or
equivalent
Incompatibility:
CITS5505 Agile Web Development
Degree-specific major units
Take unit(s) to the value of 12 points:
Availability Unit code Unit name unit requirements
S1 CITS3003 Graphics and Animation
Prerequisites:
CITS1001 Software Engineering with Java
or
CITS2002 Programming and Systems
or
equivalent
Incompatibility:
CITS2231 Graphics, CITS4242 Game Design and Multimedia
N/A CITS3005 Knowledge Representation
Prerequisites:
CITS3001 Algorithms, Agents and Artificial Intelligence
N/A CITS3007 Secure Coding
Prerequisites:
12 points of programming-based units
N/A CITS3402 High Performance Computing
Prerequisites:
CITS2002 Systems Programming
Incompatibility:
CITS5507 High Performance Computing and SHPC4002 Advanced Computational Physics

Choosing your degree-specific major

General degrees

You must satisfy the requirements of a degree-specific major before you complete your course. The flexible structure of an undergraduate course allows you to try out a number of different subjects to see what interests you before nominating your degree-specific major. You have the choice to either nominate your degree-specific major when you first enrol in the course or delay nominating it until your second year.

To plan the first year of your study without nominating a degree-specific major, you are advised to choose units that will pave the way to two or more degree-specific majors that are of interest to you. For examples of the choice of units available in first year, search the first-year study plans .

To fully understand the structure of an undergraduate course, read the course structure information and the Undergraduate Degree Course Rules.

The following example illustrates how the Computer Science degree-specific major can be included in the Bachelor of Science course.

Example: Course Study Plan: CSP004-CMPSC

There are more choices open to you. For more examples, search the study plans .

If you are unsure what else to study alongside this major, please read our Faculty and Industry recommended electives and second majors.
Specialised degrees – Bachelor of Advanced Computer Science (Honours), Bachelor of Automation and Robotics, Bachelor of Environmental Design, Bachelor of Music

You must satisfy the requirements of the degree-specific major in your degree before you complete your course.

Bachelor of Philosophy, Politics and Economics

This comprehensive degree does not require you to choose a degree-specific major.

Choosing a second major

You also have the option to choose a second major from those available in the Bachelor of Arts, Bachelor of Biomedical Science, Bachelor of Commerce, Bachelor of Design Only available to re-enrolling students. and Bachelor of Science courses, giving you the opportunity to pursue your interests no matter how different they are.

The following example illustrates how the Computer Science degree-specific major can be combined with a second major in the Bachelor of Science course.

Example: Course Study Plan: CSP004-CMPSC-Generic

For more examples of combinations of majors, search the study plans .