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 develops 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) develop and implement systems level software in the procedural language C; (2) understand software engineering principles of problem decomposition, and design and implement solutions in the object oriented language Java; (3) understand the role played by databases for persistent storage in networked systems; (4) design appropriate schemas for storing information in databases, and access, sort and join data using query languages; (5) understand the mechanics of, and be able to implement, the primary data structures and associated algorithms that underly computer solutions; (6) understand the computational complexity and correctness of algorithms and operations on data structures, and use this knowledge to be able to choose algorithms and structures appropriate to the task; (7) understand how algorithms can be extended with heuristics to solve problems, the issues of algorithms interacting autonomously with the environment, and the complexity and correctness of those algorithms; (8) understand how those algorithms form the basis of search, problem solving, learning and decision-making in intelligent agents, and be able to implement examples of those agents; (9) understand the interconnected components that comprise computing systems and networks, the principles and standards through which they interact, and alternative algorithms and their trade-offs for controlling the interactions; (10) understand the technologies that allow humans and computers to interact through the medium of visual data, including graphics and animation that underpin the computer games and multimedia industries; (11) work in teams to carry out projects in a professional setting for an industry or third party client, including requirements analysis, design, implementation, testing and documentation; (12) appreciate the ethical responsibilities of professional practice in computing; (13) communicate effectively in various media, including writing and oral presentations; and (14) demonstrate basic research skills that can be applied in higher level studies.

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
  • two Level 2 complementary units
Key to availability of units:
S1 = Semester 1; S2 = Semester 2; SS = summer teaching period

Level 1

Degree-specific major units
Take all units (12 points):
Availability Unit code Unit name unit requirements
S1, S2 CITS1001 Object-oriented Programming and Software Engineering
Prerequisites:
Mathematics Applications ATAR
or
WACE Mathematics 2C/2D
or
MATH1720 Mathematics Fundamentals
or
equivalent
or
higher
Incompatibility:
CITS1200 Java Programming, CITS1220 Software Engineering
S2, SS 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
Complementary units
Take complementary unit (6 points) — not required for students who have Mathematics Methods ATAR or WACE Mathematics: Specialist 3A/3B or equivalent or higher. Note students with Mathematics Applications ATAR will be required to complete an additional bridging maths unit, MATH1720 Mathematics Fundamentals, before enrolling in MATH1721:
Availability Unit code Unit name unit requirements
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

Degree-specific major units
Take all units (12 points):
Availability Unit code Unit name unit requirements
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 and (Mathematics Methods ATAR
or
WACE Mathematics Specialist 3A/3B2
or
MATH1721 Mathematics Foundations: Methods
or
equivalent
or
higher)
Complementary units
Take all complementary units (12 points):
Availability Unit code Unit name unit requirements
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
S1, S2 ENSC2011 Global Challenges in Engineering
Incompatibility:
ENSC1001 Global Challenges in Engineering

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
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.

Example: Course Study Plan: CSP004-CMPSC

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 Biomedical Science, Bachelor of Commerce, Bachelor of Design Only available to re-enrolling students. 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.

Example: Course Study Plan: CSP004-CMPSC-Generic

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:

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; SS = summer teaching period

Level 1

Second major units
Take all units (12 points):
Availability Unit code Unit name unit requirements
S1, S2 CITS1001 Object-oriented Programming and Software Engineering
Prerequisites:
Mathematics Applications ATAR
or
WACE Mathematics 2C/2D
or
MATH1720 Mathematics Fundamentals
or
equivalent
or
higher
Incompatibility:
CITS1200 Java Programming, CITS1220 Software Engineering
S2, SS 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
Second major units
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 requirements
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

Second major units
Take all units (12 points):
Availability Unit code Unit name unit requirements
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 and (Mathematics Methods ATAR
or
WACE Mathematics Specialist 3A/3B2
or
MATH1721 Mathematics Foundations: Methods
or
equivalent
or
higher)

Level 3

Second 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
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.

Example: Course Study Plan: CSPGeneric-DSMGeneric-CMPSC

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

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