Section Title
advanced search

Career

Area of study


Hide this form

Recommended Study Sequence

Click unit name to reveal description:

Accreditation

The B Computer Science currently is accredited with the Australian Computer Society at Professional Level. It is due for reaccreditation, and this is due to occur early this year.

Admission

HSC Mathematics (2 unit) and any two units of HSC English

Potential students normally apply for admission to the course through the Universities Admission Centre (UAC). Other admission schemes of the University of Western Sydney are available. International applicants should contact UWS International for details of admission. Contact information for the International Office is available via the UWS website.

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

Statistics for Science

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.

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 systems programming and hardware development. The students will learn about the interface between the hardware and software of a computer system. This will involve study of some aspects of computer architecture and low level interfacing to gain an insight into CPU organisation at the assembly language level. After completing this unit students will be able to write procedures in an assembly language, and use their understanding of the relationship between the instruction set architecture and the implementation of high level languages to write efficient programs.

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 foundations laid in 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, files, sorting and searching, and the fundamental abstract data types linked list, stack and queue.

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 a broad and comprehensive study on the concepts, history and development of artificial intelligence and intelligent systems; concepts of problem-solving, search techniques and game playing, logics, knowledge representation and reasoning; intelligent planning and learning systems; applications and implementations of intelligent systems and intelligent agents.

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.

Systems Programming Major

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.

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.

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.

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.

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

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.

Computer Security

This unit identifies and analyses various principles and technologies related to security and privacy and discusses practical application of those principles and technologies in securing computer systems. It is designed to provide basic computer security skills required by any discipline that uses computer systems and also lays a solid foundation for individuals who are keen to pursue a career in computer security. In particular, but not limited to, this unit aims at the implementation and management of security and privacy policies of organisations within the standards and legal framework that is also applicable to the Australian standards.

Computer Forensics Major

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.

Information Systems Ethics and Law

To give students an appreciation of the ethical and legal issues surrounding the use of information systems. Including: ethics and society; the role of information in society; privacy; the information needs of business and government; international communication networks and the transfer of information; commonwealth and state laws; electronic records and the rules of evidence; professional responsibilities.

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.

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.

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.

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.

Computer Security

This unit identifies and analyses various principles and technologies related to security and privacy and discusses practical application of those principles and technologies in securing computer systems. It is designed to provide basic computer security skills required by any discipline that uses computer systems and also lays a solid foundation for individuals who are keen to pursue a career in computer security. In particular, but not limited to, this unit aims at the implementation and management of security and privacy policies of organisations within the standards and legal framework that is also applicable to the Australian standards.

Networked Systems Major

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.

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.

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.

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.

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.

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.

Networking Workshop

This unit covers in depth the basics of networking and provides students with the knowledge and skills necessary to install, test, tune, customise, repair and maintain networking hardware and software necessary to create a Local Area Network (LAN). Students also learn how to administer a LAN by setting up user accounts, access privileges, security procedures, and back-up/recovery procedures.

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 UAI 2008
704775 Penrith  77.05

Duration

3 years full-time.

Professional Recognition

The Australian Computer Society (ACS) recognises graduates of this course at the professional level.

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

High-achieving students may choose an Honours option as an additional year (or longer part-time).

Do you need more information?

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

For further assistance contact us.