## Degree-specific major

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:

- two Level 1 units
- two Level 2 units
- four Level 3 units
- two Level 1 complementary units
- one Level 2 complementary unit

**Key to availability of units:** |

S1 = Semester 1; S2 = Semester 2 |

#### Level 1

Take all units (12 points): |

Availability |
Unit code |
Unit name |
Unit rules |

S1 |
CITS1001 |
Object-oriented Programming and Software Engineering |
*Prerequisites*: Mathematics Methods ATAR or WACE Mathematics 3A/3B or MATH1721 Mathematics Methodsor equivalent or higher
*Incompatibility*: CITS1200 Java Programming, CITS1220 Software Engineering |

S2 |
CITS1402 |
Relational Database Management Systems |
*Prerequisites*: Mathematics Applications ATAR or WACE Mathematics 2C/2D or MATH1720 Mathematics Fundamentals or equivalent or higher
*Incompatibility*: CITS2232 Databases |

Take all complementary units (12 points) or, for students who have Mathematics: Methods ATAR or WACE Mathematics: Specialist 3A/3B or equivalent or higher, take only ENSC1001 (6 points): |

Availability |
Unit code |
Unit name |
Unit rules |

S1, S2 |
ENSC1001 |
Global Challenges in Engineering |
None |

S1, S2 |
MATH1721 |
Mathematics Foundations: Methods |
*Prerequisites*: WACE Mathematics 3A/3B or WACE Mathematics 3C/3D or MATH1720 Mathematics Fundamentals or ECON1111 Quantitative Methods for Business and Economics or MATH0038 Mathematical Analysis or equivalent
*Incompatibility*: ATAR Mathematics Methods; WACE Mathematics: Specialist 3A/3B; MATH1038 Calculus and its Applications; MATH1045 Intermediate Calculus; or equivalent or higher |

#### Level 2

Take all units (12 points): |

Availability |
Unit code |
Unit name |
Unit rules |

S2 |
CITS2002 |
Systems Programming |
*Incompatibility*: CITS1210 C Programming, CITS2230 Operating Systems, CITS1002 Programming and Systems |

S1 |
CITS2200 |
Data Structures and Algorithms |
*Prerequisites*: CITS1001 Object-oriented Programming and Software Engineering; or CITS1200 Java Programming; or CITS1220 Software Engineering |

Take the following complementary unit: |

Availability |
Unit code |
Unit name |
Unit rules |

S2 |
CITS2211 |
Discrete Structures |
*Prerequisites*: Mathematics Methods ATAR or WACE Mathematics 3A/3B or MATH1721 Mathematics Methods or equivalent or higher
*Co-requisites*: at least one Level 1 unit in computing or mathematics |

#### Level 3

Take all units (24 points): |

Availability |
Unit code |
Unit name |
Unit rules |

S2 |
CITS3001 |
Algorithms, Agents and Artificial Intelligence |
*Prerequisites*: CITS2200 Data Structures and Algorithms
*Incompatibility*: CITS4211 Artificial Intelligence, CITS3210 Algorithms |

S1 |
CITS3002 |
Networks and Security |
*Prerequisites*: CITS1002 Programming and Systems or CITS2002 Programming and Systems or (CITS1210 C Programming and CITS2230 Operating Systems)
*Incompatibility*: CITS3230 Computer Networks, CITS3231 Security and Privacy |

S1 |
CITS3003 |
Graphics and Animation |
*Prerequisites*: CITS1002 Programming and Systems or CITS2002 Programming and Systems or CITS1210 C Programming or CITS1200 Java Programming or CITS1220 Software Engineering or CITS1001 Object-oriented Programming and Software Engineering
*Incompatibility*: CITS2231 Graphics, CITS4242 Game Design and Multimedia |

S2 |
CITS3200 |
Professional Computing |
*Prerequisites*: completion of 12 points from: CITS2002 Systems Programming; CITS2200 Data Structure and Algorithms; or CITS2401 Computer Analysis and Visualisation |

#### Choosing your degree-specific major

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.

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

#### Choosing a second major

You also have the option to choose a second major from those available in the Bachelor of Arts, Bachelor of Commerce, Bachelor of Design or Bachelor of Science course, 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.

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

Computer Science can also be taken as a second major.

## Second major

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

**BP001 Bachelor of Arts**

**BP002 Bachelor of Commerce**

**BP003 Bachelor of Design**

**BP004 Bachelor of Science**

**BH005 Bachelor of Philosophy (Honours)**

#### Overview of unit sequence

The Computer Science second major is a single major comprising:

- two Level 1 units
- two Level 2 units
- four Level 3 units
- one Level 1 additional unit

**Key to availability of units:** |

S1 = Semester 1; S2 = Semester 2 |

#### Level 1

Take all units (12 points): |

Availability |
Unit code |
Unit name |
Unit rules |

S1 |
CITS1001 |
Object-oriented Programming and Software Engineering |
*Prerequisites*: Mathematics Methods ATAR or WACE Mathematics 3A/3B or MATH1721 Mathematics Methodsor equivalent or higher
*Incompatibility*: CITS1200 Java Programming, CITS1220 Software Engineering |

S2 |
CITS1402 |
Relational Database Management Systems |
*Prerequisites*: Mathematics Applications ATAR or WACE Mathematics 2C/2D or MATH1720 Mathematics Fundamentals or equivalent or higher
*Incompatibility*: CITS2232 Databases |

Take the additional unit (6 points) (not required for students who have Mathematics: Methods ATAR or equivalent or higher) |

Availability |
Unit code |
Unit name |
Unit rules |

S1, S2 |
MATH1721 |
Mathematics Foundations: Methods |
*Prerequisites*: WACE Mathematics 3A/3B or WACE Mathematics 3C/3D or MATH1720 Mathematics Fundamentals or ECON1111 Quantitative Methods for Business and Economics or MATH0038 Mathematical Analysis or equivalent
*Incompatibility*: ATAR Mathematics Methods; WACE Mathematics: Specialist 3A/3B; MATH1038 Calculus and its Applications; MATH1045 Intermediate Calculus; or equivalent or higher |

#### Level 2

Take all units (12 points): |

Availability |
Unit code |
Unit name |
Unit rules |

S2 |
CITS2002 |
Systems Programming |
*Incompatibility*: CITS1210 C Programming, CITS2230 Operating Systems, CITS1002 Programming and Systems |

S1 |
CITS2200 |
Data Structures and Algorithms |
*Prerequisites*: CITS1001 Object-oriented Programming and Software Engineering; or CITS1200 Java Programming; or CITS1220 Software Engineering |

#### Level 3

Take all units (24 points): |

Availability |
Unit code |
Unit name |
Unit rules |

S2 |
CITS3001 |
Algorithms, Agents and Artificial Intelligence |
*Prerequisites*: CITS2200 Data Structures and Algorithms
*Incompatibility*: CITS4211 Artificial Intelligence, CITS3210 Algorithms |

S1 |
CITS3002 |
Networks and Security |
*Prerequisites*: CITS1002 Programming and Systems or CITS2002 Programming and Systems or (CITS1210 C Programming and CITS2230 Operating Systems)
*Incompatibility*: CITS3230 Computer Networks, CITS3231 Security and Privacy |

S1 |
CITS3003 |
Graphics and Animation |
*Prerequisites*: CITS1002 Programming and Systems or CITS2002 Programming and Systems or CITS1210 C Programming or CITS1200 Java Programming or CITS1220 Software Engineering or CITS1001 Object-oriented Programming and Software Engineering
*Incompatibility*: CITS2231 Graphics, CITS4242 Game Design and Multimedia |

S2 |
CITS3200 |
Professional Computing |
*Prerequisites*: completion of 12 points from: CITS2002 Systems Programming; CITS2200 Data Structure and Algorithms; or CITS2401 Computer Analysis and Visualisation |

#### Choosing a second major

The flexible structure of an undergraduate course allows you the option of including a second major. You have the choice to either nominate your second major when you first enrol in the course or delay it until your second year. For a major to be recorded on your academic record it must be nominated before the requirements of the course are completed.

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 Computer Science can be included as a second major in an undergraduate degree course.

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

Computer Science can also be taken as a degree-specific major.