Bachelor of Advanced Computing
Majors
Compulsory Major
All students in the Bachelor of Advanced Computing undertake one of the following four majors.
Computational Data Science
The Computational Data Science major will develop your mathematical, analytical and technical skills to create solutions to guide data-driven decision making. Data scientists build intelligent systems to manage, interpret, understand and derive key knowledge from big data sets.
Leveraging the University of Sydney's research strengths, you will explore the latest in computational statistics, large-scale data processing, data mining, machine learning and data visualisation, while also developing the skills to effectively communicate data insights to key stakeholders.
Learning Outcomes
On successful completion of the Computational Data Science major students will be able to:
- Develop a broad and coherent body of knowledge in computational data science, describing the relationships between context-specific knowledge and data and evaluating how these can guide data analytics.
- Develop deep knowledge of the underlying concepts and principles of experimental design, analysis and data outputs, of the relationships between these concepts, and of potential pitfalls.
- Use quantitative models or visualisation methods on multiple types of data.
- Identify data analytical approaches appropriate to a specific problem in data analysis, simulation-based modelling or equation-based modelling.
- Manage data, metadata and derived knowledge, using appropriate storage, access and administration tools.
- Communicate concepts and findings in computational data science through a range of modes for a variety of purposes and audiences, using evidence-based arguments that are robust to critique.
- Identify data analytical approaches appropriate to a specific problem in data analysis, simulation-based modelling or equation-based modelling.
- Create and use databases and graphical information systems using programming skills.
- Address authentic problems in computational data science, working professionally and ethically and with consideration of cross-cultural perspectives, within collaborative, interdisciplinary teams.
Computer Science
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 IT solutions to future challenges.
Learning Outcomes
On successful completion of the Computer Science major students will be able to:
- Develop a broad and coherent body in knowledge in computer science, including algorithms and related sub-fields, and apply an integrated understanding of these concepts to solve relevant problems.
- Construct models of a computational process in appropriate formalisms at appropriate levels of abstraction and relate models in different formalisms to one another.
- 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.
- 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.
- Evaluate the correctness and efficiency of algorithms, both standard and novel, and communicate the evaluation effectively.
- 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.
- 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.
- 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.
Cybersecurity
Cybersecurity is a fast-growing area with significant national importance. It is also an area where there is a global shortage of highly skilled graduates. The Cybersecurity major will equip you with theoretical and technical knowledge and skillsets to become leaders in various cybersecurity job roles. Also, the major offers an opportunity for you to become politically and socially minded leaders in the cybersecurity space. Leveraging the University of Sydney's research strengths and leadership in cybersecurity, you will learn about state-of-the-art attack and defence techniques, assess networked systems' security, and apply cybersecurity strategies at the organizational level.
Learning Outcomes
On successful completion of the Cybersecurity major students will be able to:
- Develop a broad and coherent body of knowledge in cybersecurity, including concepts and skills covering software security, information security, network security, and systems security, and apply an integrated understanding of these concepts to solve relevant problems.
- Understand the balance between risk, achieved security, and cost; experience with threat modelling and risk analysis as tools to choose this balance for a given system
- Understand different ways in which security of computer systems can be compromised, e.g. physically, remotely, operationally (esp. social engineering); and relate specific attack scenarios to the major security goals such as authentication, integrity, secrecy, non-repudiation
- Demonstrate knowledge of security principles to follow in designing a system, including implications for usability and performance
- Understand the key representatives of security technologies today, and the security goals they achieve
- Understand common tools to explore a security setup and analyse it.
- Identify and understand ethical, legal, and professional issues in security
- Communicate concepts and findings in cybersecurity through a range of modes for a variety of purposes and audiences, using evidence-based arguments that are robust to critique.
- Work effectively with clients to evaluate and improve the security of computing activities, working individually and as part of collaborative teams, with consideration of differences in social and cultural perspectives.
Software Development
A major in software development provides the understanding and skill that allow a team to reliably produce high-quality working software that meets client needs. From a foundation of individual programming skill, you will learn the theory and practices involved in determining requirements, designing software solutions, and delivering the outcomes.
Learning Outcomes
On successful completion of the Software Development major students will be able to:
- Develop a broad and coherent body of knowledge in software development, learning new tools, languages, processes and technologies as they arise, from tutorial/expository resources.
- Recognise and describe a diversity of programming paradigms and platforms.
- Use and apply contemporary software development tools and practices.
- Communicate concepts and findings in software development through a range of modes for a variety of audiences and purposes, using evidence-based arguments that are robust to critique.
- Apply foundational computer science knowledge of algorithms and data structures in the design and construction of software artefacts.
- Follow and apply process to ensure the delivery of quality artefacts within resource constraints, working individually and as a team.
- Evaluate and report on the quality and utility of software generated by both themselves and others.
- Explain their decisions about software functionality, structure and design choices to influence others in evaluating the software artefacts.
- Design, construct and deliver usable software artefacts of small- to medium-scale, that meet users’ requirements and are well-structured, working both individually and as part of a team.
- Address authentic problems in software development, working professionally, ethically responsibly within diverse, collaborative and interdisciplinary teams.
- Work effectively, productively and ethically as a software developer in a medium-scale team, with consideration of cross-cultural perspectives.
Optional Major
Students in the Bachelor of Advanced Computing may also undertake a second major or a minor. This may be either a second major from those listed above, or any major or minor from Table S.