University of Sydney Handbooks - 2019 Archive

Download full 2019 archive Page archived at: Tue, 05 Nov 2019 02:36:07 +0000

Computer Science

The School of Information Technologies aims to teach fundamental principles and practical skills in information technology, and to establish the foundations for an entire career. Units of study in the Computer Science major are available at standard and advanced level.

About the major

A major in computer science covers the key concepts of computation. You will learn the principles and techniques needed to solve tasks efficiently with computation, and how to express those solutions in software. You will also discover how computation can be modelled and how to reason about the limits of what computation can achieve.

A major in computer science will provide you with the knowledge and skills needed to innovate in information technology, and create fundamentally new information technology solutions to future challenges.

Requirements for completion

A major in Computer Science requires 48 credit points from this table including:

(i) 12 credit points of 1000-level core units
(ii) 18 credit points of 2000-level core units
(iii) 6 credit points of 3000-level core units
(iv) 6 credit points of 3000-level interdisciplinary project units according to the following rules:
(a) for students in the Bachelor of Advanced Computing or Bachelor of Computing they must complete the COMP coded interdisciplinary project units
(b) all other students may complete either the COMP or SCPU coded units
(iv) 6 credit points of 3000-level selective units

A minor in Computer Science requires 36 credit points, consisting of:

(i) 12 credit points of 1000-level core units
(ii) 18 credit points of 2000-level core units
(iii) 6 credit points of 3000-level selective units

First year

Core: INFO1110 Introduction to Programming and INFO1113 Object-Oriented Programming.

Second year

Core: COMP2X23 Data Structures and Algorithms, COMP2017 Systems Programming, COMP2X22 Programming Languages, Logic and Models.

Third year

COMP3615/3600 Computer Science Project and COMP3X27 Algorithm Design and 6 credit points from a selection of COMP3221 Distributed Systems, COMP3308 Introduction to Artificial Intelligence, COMP3608 Introduction to Artificial Intelligence (Adv), COMP3419 Graphics and Multimedia, COMP3520 Operating Systems Internals.

In your third year you must take at least one designated project unit.

Fourth year

The fourth year is only offered within the combined Bachelor of Science/Bachelor of Advanced Studies course.

Advanced coursework
The Bachelor of Advanced Studies advanced coursework option consists of 48 credit points, with a minimum of 24 credit points at 4000-level or above. Of these 24 credit points, you must complete a project unit of study worth at least 12 credit points. Advanced coursework will be included in the table for 2020.

Meritorious students in the Bachelor of Science/Bachelor of Advanced Studies may apply for admission to Honours within a subject area of the Bachelor of Advanced Studies. Admission to Honours requires the prior completion of all requirements of the Bachelor of Science, including Open Learning Environment (OLE) units. If you are considering applying for admission to Honours, ensure your degree planning takes into account the completion of a second major and all OLE requirements prior to Honours commencement.

Unit of study requirements for Honours in the area of Computer Science: completion of 24 credit points of project work and 24 credit points of coursework. Honours units of study will be available in 2020.

Contact and further information


T +61 2 9351 3423

School of Information Technologies J12
University of Sydney NSW 2006

Dr. Caren Han
T +61 2 9036 9759

Learning Outcomes

Students who graduate from Computer Science will be able to:

  1. Exhibit a broad and coherent body of knowledge in computer science, including algorithms and one other subfield, and apply an integrated understanding of these concepts to solve relevant problems.
  2. Construct models of a computational process in appropriate formalisms (that is, styles of precise notation) at appropriate levels of abstraction and relate models in different formalisms to one another.
  3. Design and code programs that can work with the capabilities of the hardware and software stack; understand and explain to others how the underlying infrastructure affects application performance.
  4. Evaluate the correctness and efficiency of algorithms, both standard and novel, and communicate the evaluation effectively.
  5. Communicate concepts and findings in computer science through a range of modes for a variety of purposes and audiences, using evidence-based arguments that are robust to critique.
  6. Apply key ideas from the theory of computation and its limits, recognise tasks where efficient perfect solutions should not be expected and where approximate solutions are appropriate and communicate the implications for users who want to solve such tasks.
  7. Design, construct, and explain efficient solutions to a wide range of computational tasks, both by applying known data structures and algorithms, including those found in the literature of the field, and by designing new algorithms using a range of algorithm design techniques to produce runnable implementations of these solutions.
  8. Work effectively with clients to achieve an efficient computational solution to a task, working individually and as part of collaborative teams, with consideration of differences in social and cultural perspectives.