DSN Teaching
Distributed Applications
Course Codes Course Name Lecturer Description Old Course Code
COSC1116
Enterprise Systems Architecture
George Fernandez
The course provides a high level view of enterprise systems in terms of middleware technology, architectural design, project planning and management, supporting hardware and software infrastructure. It will present various technology that could be used in an enterprise and describe how applications can be integrated to form a complete system. The practical component of this course will cover the development and integration of applications within an enterprise.
CS271
COSC1135
Client/Server Architectures
Jim McGovern
This course expands student knowledge of Web and Internet technology to the development of medium to large size information systems that span the Internet. Topics covered include a review of client/server technology, a comparison of major approaches to client/server systems, an in-depth study of one major client/server development environment, and client/server development methodology. Students will be required to develop a client/server system as a major project. Currently, the course focuses on using the .NET Framework to create ASP/ADO.NET client/server systems in Visual Basic.NET.
CS373
COSC1136
COSC2353
COSC2354
eCommerce and Enterprise Systems
Caspar Ryan
This course introduces the concepts and technologies necessary to understand and implement electronic commerce and enterprise systems in Java. Because this is a core module for the Computing and Internet Technology Degree, a strong emphasis is placed upon the development, deployment and usage of such systems over TCP based infrastructure in both intranet and internet applications. The primary function of this course is that of teaching, investigating and enabling, and while students will do practical work involving the writing of a small complete system, the application of this material to an industrial size problem will be done in Web/Internet Project 1 (COSC1137) and Web/Internet Project 2 (COSC1134).
CS374
COSC1172
COSC1173
Distributed Information Systems
George Fernandez
The course discusses the principles and methods for medium and large scale distributed applications design and implementation, in the context of enterprise computing. This includes issues such as integration of legacy systems, enterprise integration, distributed systems architecture, business-to-customer and business-to-business communication, channel services and security, and how they can be implemented in the context of distributed applications engineering. The course includes discussion of the existing and emerging technologies on software engineering for distributed systems.
CS482
ISYS1095
ISYS1096
Distributed Databases
Jim McGovern
To provide students with an understanding of distributed database technology, distributed query processing, distributed database design, and issues in the operation of distributed database, such as transaction processing, security models and interoperability. Students will develop a project using Oracle, Java, JDBC and Java RMI. Oracle will be used as an example system.\r\n\r\nThis is an elective course for the Honours year in Computer Science and is part of the Distributed Systems cluster for the coursework Masters degrees in the School of Computer Science and Information Technology.
CS483

Mobile Application Development
Caspar Ryan
This course is concerned with the development of applications on mobile and wireless computing platforms. Java will be used as a basis for teaching programming techniques and design patterns related to the development of standalone applications and mobile portals to enterprise and m-commerce systems.

Graphics and High Performance
Course Codes Course Name Lecturer Description Old Course Code
COSC1186
COSC1187
Interactive 3D Graphics and Animation
Geoff Leach
The course introduces techniques, algorithms and principles of interactive 3D computer graphics and animation.
CS493
COSC1212
COSC1492
Introduction to Graphics Programming using Java3D
Geoff Leach
The course introduces principles and techniques of interactive 3D computer graphics using the Java3D scene-graph API.
CS542
COSC1212
COSC1492
Web 3D Technologies
Geoff Leach
The course introduces principles and techniques of interactive 3D computer graphics using the Java3D scene-graph API.
CS542
COSC1224
COSC1226
Real-Time Rendering and 3D Games Programming
Geoff Leach
The course introduces key topics, principles and techniques of real-time rendering and 3D games programming and provides an opportunity for students to pursue a games or real-time rendering programming project. The formal lecture series covers material from a range of topics, with students expected to incorporate relevant components into their projects. The lecture series also includes (subject to availability) talks by guest speakers from the games and/or graphics industry.\r\n\r\nMost projects are expected to use OpenGL as the primary 3D graphics library, C/C++ the primary programming language and to run under the Linux operating system.
CS362
COSC1229
COSC1479
Computational Science
Geoff Leach
Computational science is a branch of science which uses computational approaches to solve problems in science. In this course the foundations of Computational Science are examined and applied to a selection of key problems. This includes looking at the nature of numerical errors, dynamic graphical simulations involving moving springs, projectile and planetary motion, collision dynamics, chaos and chaotic dynamics, fractals, and elements of signal and image processing including the Fourier transform. The languages used will be Java and Matlab/Octave.
CS554
COSC2032
eScience Case Studies
Geoff Leach
The course introduces and explores the concept of eScience, including the increasing role of computers, the internet, web, and high performance computing in science.\r\n\r\nA number of eScience examples are identified, reviewed and discussed, including application needs and the system architecture, information flow, web, internet, computing and other technologies used to meet them. Areas and topics are chosen from a range including the internet and the world wide web themselves, both of which originated in science research laboratories, to more application oriented areas such as genomics, climate modelling, stock market visualisation, proteomics and astronomy. Some specific application examples are SETI@Home (www.seti.org), Folding@home (foldingathome.stanford.edu), Genbank (www.ncbi.nlm.nih), The Visible Human (www.nlm.nih.gov) and The Mars Explorer (www.nasa.gov)\r\n\r\nStudents undertake an eScience project in which they study an example of eScience, or related technology, and write a report, or use computing, web and internet technologies in an integrated fashion to meet the needs an eScience application, drawing on the material they have learnt in this other courses.
CS856
COSC2348
Games Studio 1
Fabio Zambetta
The course provides a common language and core knowledge for students intending to train for a career in the game industry, either as an artist/ designer or as a programmer.\r\nGame Studio 1 is part of the games and digital art streams of the BA (Digital Art), BA (Games Design) and BDes (Games and Graphics Programming).\r\nIt will provide an overview of the history, approaches, genres, gameplay, techniques, architectures, tool chains and technologies of both modern and classic computer games. \r\nMoreover, the connection between ??classic?? games (such as board games, RPGs, card games, etc.) and videogames will be explored.\r\nA studio-based project will provide students with an environment in which to learn basic aspects of game design and development, emphasis on cross-disciplinary team work as every team will be comprised of digital artists, designers and programmers.

COSC2349
Games Studio 2
Fabio Zambetta
The course is intended to follow on from Games Studio 1, continuing to build a common base and framework of core knowledge for students intending to pursue their specialistion in either the artistic or technical direction in the games and digital art streams of the BA(Digital Art), BA(Games Design) and BDes(Games and Graphics Programming). \r\nIt further develops topics introduced in Games Studio 1 and introduces new material about games modding. The studio based approach is continued as is working in cross disciplinary teams.

Network Systems
Course Codes Course Name Lecturer Description Old Course Code
COSC1111
COSC2061
Foundations of Data Communications and Networks
Ibrahim Khalil
Sathish Rajasekhar
This course will provide a broad introduction to the fundamentals of data communications and network technology. Emphasis is on higher aspects of data communications from perspective of the computer scientist and information technologist in the communication of data, and the interaction of remote systems.
CS261
COSC1176
COSC1179
COSC2294
Network Programming
Ibrahim Khalil
Simon Ryan
This course is an introduction to programming applications that use computer networks. The operation and characteristics of major computer networks are studied because of their strong influence on programming interfaces (APIs) and application design. Both Unix and NT network programming are explored - both share the challenges associated with network programming, but each has its own appropriate solutions. Most programming will be undertaken in the 'C' language.
CS486
COSC1233
COSC1235
Broadcast Network Engineering
Jiankun Hu
This is an advanced course on networking. It deals with current issues, trends, and aspects of Local Area Networks (LANs) and Metropolitan Area Networks (MANs). It also deals with some of the newer developments in networking, eg: Optical networks.
CS561
COSC1239
Network Installation and Admin/Netware
John Benwell
To prepare students for Certified Novell Engineer examinations. The following Novell course material will be covered:\r\n\r\nNetware 6 Foundations of Novell Networking (3000)\r\nNetware 6 Novell Network Management (3004)\r\nNetware 5 Design and Implementation (575)\r\n\r\n(Note: 3000, 3004 and 575 are Novell course numbers)\r\n\r\nStudents should note that this course is conducted as part of a CNE accredited course & additional costs are incurred for course material. Also, the cost of sitting the CNE exams (which is optional) is borne by the student. Confirmation of enrolment in this course is possible only through John Chapman - email jch@cs.rmit.edu.au
CS562
COSC1242
Network Theory & Support/Netware
John Benwell
This course aims to provide an introduction to Network Theory, Service and Advanced Server Administration using Novell 6 network operating system.\r\n\r\nStudents should be aware that this course is part of a Novell Accredited program and must use courseware approved and provided by Novell.\r\n\r\nThe following Novell course material will be covered.\r\n\r\nAdvanced Network Management (3005)Desktop Management with Zenworks for Desktops (3006)\r\n\r\n(Note: 3005, 3006 are Novell course numbers.
CS563
COSC2058
COSC2059
Advanced Data Communication
Jiankun Hu
Since 1970s, we saw a merger of the fields of computer science and data communications that profoundly changed the technology, products. The related areas have become the combined computer-communications industry. To meet this demand, people need a unified view of the broad field of data and computer communications. This course tries to provide advanced material in this field such as performance modelling methods, analytical tools including queuing theory,\r\nstatistics, and, simulation methods (both theoretical and practical aspects).\r\n\r\nThe course consists of two parts. Part I is about Queuing theory. It introduces Markovian Birth-Death random process and basic queuing models of M/M/1, M/M/2, M/M/G and M/M/n/n. More advanced queuing networks such as Open Networks, Jackson Networks and Priority queuing models are introduced. It will be illustrated how these theories are applied to the performance evaluation of packet switched networks, delays, throughput, etc. Part II has more flavour on networking issues. It introduces necessary simulation methods and tools. Then, it begins to study and evaluate various TCP congestion control protocols. It also looks at the Random Early Detection routing technique that has been recommended by the Internet Task Force to replace the existing tail dropping routing protocols. Those issues are still cutting-edge and on-going research topics. The learning material mostly comes from published literature.
CS361
COSC2105
COSC2107
Network Security
Peter Bertok
Students will learn advanced knowledge on computer network security, the most pressing problem in today's networked environment. International orientation is a key in this field, as many security threats and attacks originate from overseas. The students' ability to critically analyse existing systems will be developed via exercises such as security assessment of network architectures. Using real-life scenarios and network security management students will appreciate and learn responsibility. Students will learn creativity by proposing and then analysing solutions for different security requirements.\r\n\r\nThis is an elective course for the Honours year in Computer Science and is part of the Distributed Systems cluster for the coursework Masters degrees in the School of Computer Science and Information Technology.
CS489
COSC2292
Network Installation and Admin/Windows
John Benwell
To prepare students for Certified Novell Engineer examinations. The following Novell course material will be covered:\r\n\r\nNetware 6 Foundations of Novell Networking (3000)\r\nNetware 6 Novell Network Management (3004)\r\nNetware 5 Design and Implementation (575)\r\n\r\n(Note: 3000, 3004 and 575 are Novell course numbers)\r\n\r\nStudents should note that this course is conducted as part of a CNE accredited course & additional costs are incurred for course material. Also, the cost of sitting the CNE exams (which is optional) is borne by the student. Confirmation of enrolment in this course is possible only through John Chapman - email jch@cs.rmit.edu.au
CS560
Distributed Systems
Course Codes Course Name Lecturer Description Old Course Code
COSC1082
Computer Systems 1
George Fernandez
Computer Systems 1 aims to give students a knowledge of digital concepts and number systems upon which the design and operation of the Stored Program Digital Computer is based. Students will be introduced to computer architecture, operation and assembly language programming.
CS118
COSC1112
COSC1113
COSC1114
COSC2139
Operating Systems
Don Gingrich
This course aims to introduce fundamental principles, strategies and algorithms used in operating systems.
CS262
COSC1131
COSC1133
Unix Systems Admin (Linux)
Don Gingrich
This course provides an intensely practical introduction to Unix System Administration using Linux. The Linux Operating System, a free implementation of UNIX for personal computers, will be used extensively throughout this course for lecture/tutorial examples and importantly during laboratory classes. In addition to System Administration proper, TCP/IP network service administration and the use of scripting languages will be introduced.\r\nSince Linux implements the POSIX standard, most of the learning from this course will be directly applicable to commercial Unix systems.
CS362
COSC1170
COSC1195
Foundations Distributed Computing
Peter Bertok
The course is an introduction to distributed computing. It discusses the basic principles and concepts used in distributed systems. The course assumes a general knowledge of computers, and the assignments will need basic C programming skills and working in a Unix environment.\r\n\r\nThe assignments are to illustrate the material from different aspects, such as programming in a distributed environment, doing research on a specific topic, and solving/understanding theoretical problems.
CS481
COSC1174
COSC1175
Advanced Client/Server Architectures
Zahir Tari
This course covers theoretical and technical aspects of advanced distributed systems, such as CORBA and Web Services. This course focuses specifically on the following topics: architectures, protocols, a detailled study of performance (i.e. caching and load balancing) and security issues of IIOP and SOAP. Finally, this course also covers issues and solutions related to the design and the implementation of large-scale distributed heterogeneous applications. JacORB and SOAP implementations are used to illustrate the implementation of different concepts related to CORBA and SOAP.
CS484
COSC2205
COSC2206
Parallel Computing
Savitri Bevinakoppa
Every supercomputer is a parallel computer and increasingly special purpose compute devices are also parallel architectures. While the overwhelming majority of current supercomputers (also those of the foreseeable future) consist of off-the-shelf processors (MIMD), special purpose devices are more likely to be SIMD machines (i.e. large numbers of small special purpose processors which are connected via a regular connection network and share a single control unit). This course provides an introduction to both concepts: MIMD and SIMD.In the area of MIMD the emphasis is on programming techniques, i.e. the concepts of PVM and MPI are introduced and students are requested to implement parallel algorithms using these techniques on real supercomputers. In the area of SIMD computing the emphasis is on architectures (topologies), optimised parallel algorithms tailored towards given architectures as well as concepts of parallel computing that might become relevant in future, such as instruction systolic devices and reconfigurable meshes. Such concepts are most relevant in the use of FPGAs, in the design of embedded systems as well as in the design of accelerators for PCs and workstations.
CS560