You can major in this discipline through the Bachelor of Science at Melbourne. You can also complete a sequence in Computing and Software Systems through the Bachelor of Commerce.
Computing and Software Systems draws on technologies and practices from computer science, engineering and project management to provide you with the knowledge and skills to enter a career in the software industry.
The Computing and Software Systems major is designed for students who wish to develop considerable technical expertise, including exposure to a variety of programming paradigms, an understanding of the systematic processes underpinning the software development lifecycle, and an appreciation of advanced topics in computing.
Studies in computer science are also available through the Diploma in Informatics.
This major can lead to the Master of Engineering (Software), and professional registration as an engineer.
Our graduates are highly regarded by industry and are employed in a variety of software development roles both locally and internationally. Typical careers include mobile app development, code development in major IT companies, and medical and environmental research.
Subjects you could take in this major
Over the last half-century, computers have improved at a faster rate than almost any other technology on the planet, yet the principles on which they work have remained mostly constant. In this subject, students will learn how computer systems work "under the hood".
The specific aim of this subject is for the students to develop an understanding of the basic concepts underlying computer systems. A key focus of this subject is the introduction of operating systems principles and computer network protocols. This knowledge is essential for writing secure software, for writing high performance software, and for writing network-based services and applications.
Topics covered include:
- Introduction to computer organization
- The hardware/software interface
- The role of the operating system
- The memory hierarchy (caches, virtual memory, and working sets)
- Interrupt handling, processes and scheduling
- File systems
- Introduction to multiprocessors and synchronization
- Introduction to network protocols (OSI model)
- Development of client-server applications
- Computer system security and cryptographic protocols.
This subject is the capstone project for the Informatics major and the Computing and Software Systems major in the BSc. Students will work on a real life problem in a small team, supervised by a member of staff. Each team will analyse the information needs of users and develop working computational solutions. Students are expected to apply sound principles studied over the course of their degree to the formulation and solution of their problem.
Students will work in teams to analyse, design, implement and test a non-trivial IT system. A key part of the project is for students to develop and manage a project in order to deliver a quality IT product. Workshops will explore the application of theory to the project and include selected topics drawn from: ethics, project management, design frameworks, testing, technical reviews, and product evaluation.
Formal logic and discrete mathematics provide the theoretical foundations for computer science. This subject uses logic and discrete mathematics to model the science of computing. It provides a grounding in the theories of logic, sets, relations, functions, automata, formal languages, and computability, providing concepts that underpin virtually all the practical tools contributed by the discipline, for automated storage, retrieval, manipulation and communication of data.
- Logic: Propositional and predicate logic, resolution proofs, mathematical proof
- Discrete mathematics: Sets, functions, relations, order, well-foundedness, induction and recursion
- Automata: Regular languages, finite-state automata, context-free grammars and languages, parsing
- Computability briefly: Turing machines, computability, decidability.
A functional programming language will be used to implement and illustrate concepts.
Software Systems must be carefully analysed, designed and modelled before they are constructed. This subject delivers the knowledge and skills needed for the design of medium to large-scale software systems. The subject also teaches students how off-the-shelf development frameworks can be utilized for designing large-scale software systems. The emphasis will be on techniques appropriate for object-oriented design and development.
Topics covered include:
- Analysis of requirements for design
- Modelling software systems using the Unified Modelling Language (UML)
- Software design processes and principles
- Common design patterns and software architectures
- Tools for design and development.