6 points, SCA Band 2, 0.125 EFTSL
Postgraduate - Unit
Refer to the specific census and withdrawal dates for the semester(s) in which this unit is offered.
Faculty
Unit guides
Synopsis
This unit focuses on the design and programming techniques essential for developing distributed software systems and applications - with Java as the teaching language. The unit presents concurrent programming primitives and concepts for distributed systems. The unit also focuses on application of concurrent techniques in distributed system designs. Programming and implementation issues and techniques of distributed applications are studied. Enabling techniques for building distributed systems are analysed and evaluated. Distributed Software Patterns are presented. The unit also includes case studies of distributed programming paradigms and their applications (e.g. JINI, JavaSpaces).
Outcomes
At the completion of this unit, students should be able to:
- analyse critically and reflect on the concepts and characteristics of distributed and concurrent software;
- identify and evaluate common distributed and concurrent software designs;
- design distributed software applications using typical distributed software architectures;
- write distributed and concurrent software programs.
Assessment
Examination (3 hours): 50%, In-semester assessment: 50%
Workload requirements
Minimum total expected workload equals 12 hours per week comprising:
- Contact hours for on-campus students:
- Two hours of lectures
- One 2-hour laboratory
- Additional requirements (all students):
- A minimum of 8 hours independent study per week for completing lab and project work, private study and revision.
See also Unit timetable information
Chief examiner(s)
This unit applies to the following area(s) of study
Prerequisites
Recommended knowledge: Some exposure to multithreading. Knowledge of all Java language constructs such as loops, conditionals, methods, classes, inheritance and core Java packages. Use of O/O models such as UML diagrams.
Fundamentals of data and computer communication methods and techniques, including ISO and TCP/IP layered protocols.