top nav right corner top nav left corner
Section Title

Recommended Study Sequence

Click unit name to reveal description:

Accreditation

The Bachelor of Computer Science currently is accredited with the Australian Computer Society at Professional Level.

Admission

Assumed knowledge required: HSC Mathematics (2 unit) and any two units of HSC English

Applications from Australian and New Zealand citizens and holders of permanent resident visas must be made via the Universities Admissions Centre (UAC).

International applicants must apply directly to the University of Western Sydney via UWS International.

Applicants who have undertaken studies overseas may have to provide proof of proficiency in English. Details of minimum English proficiency requirements and acceptable proof can be found on the Universities Admissions Centre website (UAC).

Overseas qualifications must be deemed by the Australian Education International - National Office of Overseas Skills Recognition (AEI-NOOSR) to be equivalent to Australian qualifications in order to be considered by UAC and UWS.

Qualification for this award requires the successful completion of 240 credit points which include the units listed in the recommended sequence below.

Recommended Sequence

Full-time

Year 1

Autumn session

One of:

Statistics for Science

In 2010 this unit replaced by 300700 - Statistical Decision Making. This Level 1 unit introduces the basic concepts and techniques of statistics that are particularly relevant to problem solving in science and technology. It also provides a sound base for more advanced study in statistics in subsequent sessions. Topics include: presentation of data; descriptive statistics; the role of uncertainty in decision making; hypothesis testing; and simple linear regression.

Statistical Decision Making

This Level 1 unit introduces students to various statistical techniques supporting the study of computing and science. Presentation of the content will emphasize the correct principles and procedures for collecting and analysing scientific data, using information and communication technologies. Topics include describing different sets of data, probability distributions, statistical inference, and simple linear regression and correlation.

Note: from 2010, 200192 - Statistics for Science replaced by 300700 -Statistical Decision Making

Programming Fundamentals

As a first unit in computer programming, Programming Fundamentals covers basic computer architecture, basic data and file structures, concept of algorithms, programming constructs, programming language features and functions, program design, test design, basic documentation. A high level programming language is employed to solve problems in a structured manner.

Principles of Professional Communication 1

This unit provide students with an introductory understanding of a range of communication theories and practices necessary for academic work and professional success.

Discrete Mathematics

This Level 1 unit introduces set theory, symbolic logic, graph theory and some counting problems. It serves as a grounding for further study in mathematics or computing.

Spring session

Computer Organisation

This unit is designed for computer science students, particularly those interested in memory and CPU functional organisation, hardware/software interface, systems programming, and computer system performance evaluation. The unit will provide students with a fundamental knowledge of computer systems abstraction, design, exploitation and configuration. Students will primarily gain an insight into the low level interface between the hardware and software in terms of ISA (Instruction Set Architecture) abstraction of a computer system, where students will use assembly language to deal with memory addressing, load-store architecture, and I/O operations. The students will also learn about the hardware implementation of major datapath components and pipelined micro-architectures. After completing this unit students will understand the major issues in the state-of-the-art computer architecture, especially the modern microprocessors.

Data Structures and Algorithms

This unit introduces students to fundamental data structures and algorithms used in computing. The material covered forms the basis for further studies in programming and software engineering in later units. The unit focuses on the ideas of data abstraction, object-oriented programming, and software reuse. Issues relating to computational complexity of algorithms are addressed throughout the session. Topics covered include: the fundamental abstract data types (lists, stacks, queues, trees, hash tables, graphs); recursion; complexity of algorithms; internal and external sorting and searching algorithms; file structures; and B trees.

Database Design and Development

The main purpose of this unit is to provide students with an opportunity to gain a basic knowledge of database design and development including data modeling methods and techniques and database implementation using a database management system

Computer Networking

This introductory unit in computer systems networking covers basic networking topologies, Ethernet fundamentals, ISO OSI layers, routing, switching and sub-nets, the Internet architecture, networking protocols including TCP/IP, important networking devices such as repeaters, hubs, bridges, routers and gateways, basic management and security issues. This unit is also the first of three units which will prepare students for industry based networking certification.

Year 2

Autumn session

Systems Programming 1

This unit provides an introduction to the knowledge and skills required for the design, writing and support of technical software and other such functions normally falling within the role of the systems programmer. It provides for detailed study of a systems programming environment and its application to systems programming tasks.

Programming Techniques

This unit builds on the programming foundation laid in the unit Programming Fundamentals. Utilising an object-oriented language it continues the development of programming skills and methodologies required for professional programming and for further study in later computing units. Topics covered include object-oriented programming techniques of encapsulation, inheritance and polymorphism, programming concepts including pointers, references, multi-dimensional arrays, strings, file I/O, and abstract data types.

Formal Languages and Automata

Three abstract models of computation are studied in this unit. The first is the finite automaton, together with regular languages and regular expressions. The second is the pushdown automaton, together with the associated languages and grammars. The third is the Turing machine. This allows study of the power of computers in general and their limitations, in particular situations: it is shown that there are problems for which there is no algorithmic solution. This unit explores the application of formal languages in the design of compilers and text processors.

And one elective

Spring session

Formal Software Engineering

This unit is concerned with the design, development and post-delivery maintenance of software systems. The unit pays special attention to requirements engineering, formal specification techniques and design methodologies. The B-method is used to produce consistent, re-usable specifications and develop code that is both efficient and correct.

And two Computer Science alternate units

And one elective

Year 3

Autumn session

Professional Development

This is a final year unit that builds on foundation and intermediate computing units by preparing students for professional experience. The unit covers ethics and professional code of practice, legal, social and environmental issues relating to computing, I.T. and communications technology, security, privacy and freedom of information, team dynamics, project scheduling and management, project cost/benefit analysis, and quality assurance for systems and applications. This unit is a pre-requisite to the capstone project, covered in Professional Experience.

And two Computer Science alternate units

And one elective

Spring session

Professional Experience

This unit acts as a single capstone unit and through the medium of a specific project, provides opportunities for students to experience the range of issues in requirements definition, analysis, design and implementation, relating to the development of a software product.

And two Computer Science alternate units

And one elective

Computer Science Alternate Units

Compiler Theory and Practice

The discovery and practical application of compiler theory has been one of the major achievements of computer science since the mid 1950s. This unit provides computing or computer science majors with an introduction to one of the cornerstones of their discipline. The unit provides: an accurate conceptual model of what occurs when source code is being compiled; an appreciation of the limitations of compilers and translators in general; the knowledge and practical skills necessary to design and implement interfaces of greater syntactic complexity than menus; sufficient general technical knowledge to provide an adequate basis for acquiring product-specific technical knowledge, and then to provide applications development support in any programming language environment.

Computer Architecture

This unit is designed for computer science students, particularly those interested in systems programming, hardware/software interfaces, and computer system performance evaluation. The topics cover memory system organisation and architecture, CPU functional organisation, pipelined and superscalar microarchitectures, multiprocessor systems, and I/O systems. After completing this unit students will understand the major issues in the state-of-the-art computer architecture, especially modern microprocessors, and will be able to use this knowledge as a basis for product choice and systems configuration.

Computer Graphics

Computer graphics is a fascinating area of computer science. It is widely used as a tool for visualising information in a broad variety of fields, including science and engineering, medicine, architecture, and entertainment. This unit teaches the concepts and techniques of computer graphics. It is designed as an introduction to the study of visual presentation techniques. Topics covered are intended to provide students with an understanding of the basic principles for design, use and understanding of graphics systems. The unit covers the basic concepts in computer graphics using VOGLE library on UNIX. Techniques and algorithms will be emphasized and programming in C or C++ under UNIX will be required.

Computer Networks and Internets

This unit provides students with an in-depth understanding of the applications of computer networks and the concept of internetworking through the TCP/IP suite of protocols. Some of the network security threats along with their appropriate counter measures are also discussed. The main focus of the unit is on communication and network devices.

Distributed Systems and Programming

This unit covers concepts and design of, and programming for distributed systems. It builds on basic network communication protocols (specifically IP) to cover client-server programming using both the system level socket interface and remote procedure calls. It also examines large-scale distributed system architectures, particularly those based on distributed objects, and considers the complexities inherent in distributed transactions. Key concepts covered include data and algorithmic distribution, idempotent protocols, stateless and stateful servers, and distributed system transparency. Illustrative case studies are included.

Information Security

This unit is concerned with the protection and privacy of information in computer systems. The focus of the course is primarily on introducing basic concepts in computer and information security and then using this knowledge as the vehicle to study the design and implementation of secure computer and network systems. This unit also provides students with practical experience with security programming. In more specific terms, the unit is intended to provide the following: basic concepts of conventional and public key encryption; number theory and its application in public key encryption and signatures; protocols used in secure computer systems.

Internet Programming

This unit offers students basic concepts and latest technologies of internet programming and web-based application development. Utilising one of the popular internet programming languages, such as Java, it aims to develop the programming skills and methodologies required for both client-side and server-side programming as well as general purpose programming. The range of topics covered by the unit includes HTML, XML, Java applets, desktop application in Java, servlets, JavaServer Pages and JDBC.

Network Security

This unit is concerned with the protection of information transferred over computer networks. It includes discussion of techniques for securing data transported over local and wide area networks. At the conclusion of the unit students will have a good understanding of the practical aspects of securing a computer network against internal and external attacks.

Operating Systems

This unit provides an introduction to the theory and practice of the internal structure, implementation and functionality of operating systems. The unit is relevant not only for systems programmers, but also for applications developers who need to understand how operating systems control computer hardware, and how they provide convenience, efficiency and security for application development and implementation.

Systems Administration Programming

This unit covers programming techniques and tools used to administer standalone and networked computer systems. The unit focuses on the use of high level interpretive scripting languages to automate everyday administrative tasks, and to monitor and control running systems. Techniques to extend scripting language capabilities by dynamic linking to compiled code are examined, particularly in terms of access to operating system level functions. The unit also examines the use of administrative programs and tools to monitor and adjust system performance and capacity.

Systems and Network Management

The rapid progress in technology, the increasing demand for IT services, and the strong expansion of the Internet have resulted in heterogeneous interconnected networks with many distributed systems that run on them. To ensure access and efficient utilization of network resources, subject to organisational policy restrictions, networked systems must be managed properly. This unit addresses the issues relevant to such management. It covers the principles and current practices pertinent to integrated management of networks, systems, services, and applications. The unit helps the student to understand management functions and architectures as well as current standards and relevant protocols.

Systems Programming 2

This unit complements and extends the work already done in Systems Programming 1. It covers advanced topics in programming that are directly relevant to systems level application design and implementation. As such it addresses the main concepts, principles, and techniques for system level programs that utilise virtual memory, dynamic link libraries, asynchronous I/O, and multi-threading that can support high levels of concurrency. The unit also emphasises and builds a sound understanding of kernel level objects, as well as error and exception handling techniques, and focuses primarily on using the low-level functionality exposed by the operating system's C/C++ language API.

Intelligent Systems

This unit provides basic studies in the major areas of artificial intelligence: search, knowledge representation, logic programming, machine learning and knowledge based systems, agent planning and learning. The first part of this unit will focus on the foundation of artificial intelligence: search algorithms and their implementations, game playing, logics and knowledge representation, and inference in reasoning systems. The second part will cover the principles of knowledge based systems (intelligent systems), planning, and machine learning.

Computer Forensics Workshop

This unit is composed of a series of investigative workshops that put into practice, in a Computer Forensics context, many of the technical skills developed in earlier pre-requisite units. The unit is intended to not only further develop these skills but to instil best technical practice, sound understanding of technical investigative techniques and documentation of the results of investigation. Workshop topic areas include: clean media copying techniques, search and identification of hidden data, building profiles of computer activities through probing and analysis of log files and how to prepare a system and network to best support subsequent intrusion and activity detection.

Extended Computing Project 1

This unit is the culmination and application of knowledge a student will have gained as part of their studies to date. The projects are undertaken within a team environment and are to provide solutions for real computing problems sourced from main ICT vendors, governmental departments and other relevant businesses. The problems will apply to a wide range of fields including but not limited to: computer science, computer forensics, e-Business, information systems, games and editors, e-Health, e-Government and e-Voting, biomedical applications, e-Learning and PDA, mobile and wireless technologies, latest technologies and service-oriented architectures (SOA). The group will follow established software engineering methodology in all stages of the design and implementation of project, including elements of project management, version control and required documentation. The focus of the unit is the delivery of a software product of a marketable quality, including complete technical documentation and user manuals.

Extended Computing Project 2

Extended Computing Project 2 builds on the experience gained in Extended Computing Project 1 (ECP1), which is its prerequisite unit. As in ECP1, the projects are undertaken within a team environment. This unit will maintain the range and scope of ECP1, but it will allow the students to further refine the projects undertaken as well as add to them the elements of research and innovation. Note: For those degrees where 300098 Computing Project 2 is a core unit, students will be able to complete the new extended unit as an alternative. Both units will be mutually exclusive, i.e. do not count for credit with one another.

Networked Systems Design

Students successfully completing this unit will gain the necessary design skills and knowledge required to build and configure a complex network. This unit builds on the work of Networking Fundamentals and Computer Networks and Internets. The unit also provides the student with an opportunity to develop problemsolving techniques and decision-making skills to resolve networking issues. Students completing this unit and its prerequisites should now be prepared to attempt world recognized network industry certification.

Majors

The majors listed below were designed specifically for this course and are recommended for Bachelor of Computer Science students. Other majors, from the School of Computing and Mathematics or any other School may also be selected but may require more than the standard six semesters to complete depending on their affinity with this course.

Computer Forensics

Networked Systems

Systems Programming

Bachelor of Computer Science

 


Any computer science degree can teach you general programming and technical systems skills. At UWS, we offer specialist Computer Science degrees:

  • Computer Forensics – As the need for digital evidence increases, Computer Forensics prepares you for emerging cyber crime- fighting career opportunities. Focusing on the gathering of evidence from computers and computer networks, this major develops the knowledge and skills necessary to ensure that evidence is not corrupted and can be documented and presented in an intelligible manner. Evidence may consist of actual files or the traces of a user’s activity left in the activity logs of operating systems, browsers, databases, web proxies or network firewalls. Identification and analysis of such evidence requires in-depth technical knowledge of the interactions between hardware, operating systems, programs and networks. Knowledge of cryptographic techniques is also required where data has been encrypted.
  • Networked Systems – Recent advances in computer and telecommunications networked systems, particularly those based on TCP/IP, have increased the importance of network technologies in the discipline of computer science. This major gives you a thorough technical understanding of modern networked computer systems, how they work, and the principles that govern them. Based on this solid foundation, you have the opportunity to learn the practical skills needed to design, develop, and integrate the networked computer systems needed by today’s large organisations. It covers a wide range of topics including computer communication network concepts and protocols, multimedia systems, Internet standards and technologies, network security, wireless and mobile computing, and distributed systems.
  • Systems Programming – If you want to develop advanced programming skills, this is the major for you. Focusing on programming at the level of the system calls to the underlying operating system; this course will give you strong systems programming and systems administration skills. It emphasises the development of highly efficient and reliable code that can provide support services for higher-level application programs, as well as the development of programs suitable for systems administration and management. Practical work utilises C/C++ (the industry standard language for systems programming) as well as both the Unix and Windows environments.

Course Details

UAC Code Campus ATAR
704775 Penrith  82.35

Duration

3 years full-time.

A Career in Computer Science

Because the UWS Computer Science degree is highly practical and developed in close consultation with industry, you’ll graduate career-ready. You’ll be able to program real-time, fault tolerant, mission-critical software systems and simulated environments, including gaming and entertainment software. Career possibilities include work in:

  • computer forensics
  • systems programming
  • systems administration
  • network support and management
  • network and systems security support
  • real-time programming
  • systems engineering
  • distributed software development
  • communications and distributed systems support
  • research and development in computer science

Assumed Knowledge

Mathematics plus any two units of English.

Application Information

To lodge an application for the course of your choice check the Application Information.

Honours

An additional Honours year is available to high-achieving students.

Do you need more information?

Request a course and application information pack:
Course Enquiry Form
International Course Enquiry Form

For further assistance contact the UWS Course Information Centre.