The Bachelor of Computer Science currently is accredited with the Australian Computer Society (ACS) at Professional Level.
Assumed knowledge: HSC Mathematics (2 unit)
Recommended studies: HSC Mathematics Extension 1
Applications from Australian and New Zealand citizens and holders of permanent resident visas must be made via the Universities Admissions Centre (UAC).
Applicants who have undertaken studies overseas may have to provide proof of proficiency in English. Local and International applicants who are applying through the Universities Admissions Centre (UAC) will find details of minimum English proficiency requirements and acceptable proof on the UAC website. Local applicants applying directly to UWS should also use the information provided on the UAC website.
International applicants must apply directly to the University of Western Sydney via UWS International.
International students applying to UWS through UWS International can find details of minimum English proficiency requirements and acceptable proof on the UWS International website.
http://pubsites.uws.edu.au/international/
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.
Statistical Decision Making 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.
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
The unit provides students with an introductory understanding of a range of communication theories and practices necessary for academic work and professional success.
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.
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.
This unit presents the concepts and principles of programming languages with the emphasis on object oriented paradigm. It addresses the importance of the separation of behaviour and implementation, as well as effective use of encapsulation, inheritance and polymorphism.
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, techniques for database design using a set of business rules that are derived from a case study and finally implementation of the database using a commercial relational database management system. The unit also examines a number of important database concepts such as database administration, concurrency, backup and recovery and security. At the same time student learning and intercommunication skills are enhanced by running tutorial presentations and group assignments.
Computer Networking is an introductory unit in computer systems networking. It covers basic networking technologies, Ethernet fundamentals, ISO OSI model, routing, switching and subnetting, the Internet architecture, networking protocols including TCP/IP, important networking devices such as repeaters, hubs, bridges, switches, 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 (CCNA).
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.
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.
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
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
This is a final year unit that builds on foundation and intermediate computing units to prepare students for professional experience. The unit covers the content in three modules as 1) Ethics and Professional Code of Conduct, 2) Project Management, and 3) Legal, Social, Environmental issues, Quality Assurance and IT Compliance. The content covered in these three modules are carefully designed to fill in the gaps in knowledge that is not so far covered previous units in preparing students for the challenging projects units and professional working life ahead. This unit is a pre-requisite to the capstone project, covered in Professional Experience Project unit.
And two Computer Science alternate units
And one elective
Professional Experience is a final year capstone project unit. This unit provides opportunities for students to gain hands-on experience in software systems requirements definition, analysis, design and implementation, in a real-world setting. Students work in groups, guided by an academic supervisor or an industry mentor, in achieving the goals set by the client that provides the project. Suitable projects are sourced from external organisations or within UWS by way of giving the students professional experience in independent learning and reflective practice.
And two Computer Science alternate units
And one elective
Computer Graphics will examine elementary graphics concepts, algorithms and programming skills for producing graphical applications, in both two-dimension (2D) and three-dimension (3D) using Open GL. Techniques and algorithms will be programmed in Processing, which is a very easy-to-learn programming language yet powerful and comprehensive.
Computer Networks and Internets
This unit extends on the work undertaken in the prerequisite unit and provides students with an in-depth understanding of the role of TCP/IP, ICMP and routing protocols used in IP networks and internetworks. Students will learn about the critical role of routing protocols and how to design, construct and implement small internets. Students will also learn how to perform basic management and security tasks in a practical, hands-on fashion using Cisco routers and other networking equipment. This is the second of three units that prepares the student for industry based networking certification (CCNA).
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.
This unit is concerned with the protection and privacy of information in computer systems. The focus of the unit 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.
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.
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.
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.
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.
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.
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.
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 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.
This unit builds on and consolidates the skills and knowledge gained in Computer Networking and Computer Networks and Internets. Students successfully completing this unit will acquire the necessary design skills and knowledge required to build and configure enterprise scale networks. The unit provides students with an opportunity to develop problem-solving techniques and decision-making skills to resolve networking issues. Students completing this unit and its prerequisites should also now be prepared to attempt world recognized network industry certification (CCNA).
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.
Elective units may be used toward obtaining an additional approved sub-major (40 credit points). UWS offers sub-majors in a range of areas including Sustainability and Indigenous Studies. Refer to the Unit Set Index.
Students can apply for these unit sets using the Course Variation Form, which is listed under Enrolment Forms on the Student forms web page.
© University of Western Sydney 2012
Locked Bag 1797
Penrith NSW 2751
Tel: +61 2 9852 5222
ABN 53 014 069 881
CRICOS Provider No: 00917k