K O'Yang
6 points - 4 hours per week - Second semester - Peninsula - Prerequisites: CFR2128 or equivalent - Prohibitions: SFT2200, SFT3200, CSC2252, CSC3252
Objectives By the end of the subject, students will be expected to have gained a sound knowledge of the Java language; a consolidation and extension of their knowledge in object-oriented programming; a basic understanding on design issues in concurrent multi-threaded programming; knowledge that software reuse assists in building applications; the ability to develop multi-threaded applications in Java.
Synopsis This subject focuses on the theory and application of concurrent multi-threaded programming in modern applications development. The concept of object-oriented programming is introduced with an emphasis on reuseability. The teaching language is Java as it is a simple, object-oriented language with native multi-thread programming support. Introduction to Java: language design, the Java syntax, differences between Java and C++. The Java environment: development tools (compiler, debugger, document generator). Objects and classes: construction and garbage collection, inheritance, polymorphism. Abstraction: abstract classes, interface types. Class libraries: API to basic libraries, class hierarchies. Software reuse: compositional software construction. Applets: limitations of applets, applet security, platform-neutral software. Events and exceptions: system and user defined exceptions, event handler. Finite state machines: automata, event-driven loops. Concurrency control: containment and synchronisation. Threads and their interaction: deadlocks and conflicts, state-dependent actions, handling of user services, flow and coordinated interaction. Case studies of concurrent applications: network services server, database connectivity.
Assessment Examination: 50% - Tutorial presentation: 10% - Assignment: 40%
Prescribed texts
Lea D Concurrent programming in Java: Design principles and
patterns Addison-Wesley, 1997
Flanagan D Java in a nutshell 2nd edn, O'Reilly, 1997
Recommended texts
Atkinson C Object-oriented reuse, concurrency and
distribution Addison-Wesley 1991
Booch G Object-oriented analysis and design Benjamin-Cummings 1994
Gamma E Helm R Johnson R and Vlissides J Design patterns Addison-Wesley,
1994
Gosling J and others The Java application programming interface
Addison-Wesley 1996
Gregory A Concurrent programming: Principles and practice
Benjamin-Cummings 1991
Kleiman S, Shah D and Smaalders B Programming with threads
Prentice-Hall, 1995