CFR3312

Concurrent programming with Java

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

Back to the 1999 Information Technology Handbooks