Image for

Java programming 2

  • Class 30
  • Practice 30
  • Independent work 120
Total 180

Course title

Java programming 2

Lecture type


Course code






Lecturers and associates

Course overview

This module introduces students to the advanced Java concepts of multithreading, concurrency, networking and reflection and promotes deeper understanding of the language itself.

This module is an optional module for Software Engineering subspecialisation, builds on Java 1 module from previous semester and provides students with skills and knowledge required for Java Web Programming module in the next semester. When chosen, this module will contribute significantly to students’ development as professionals in the respective fields.

Students will learn:
• multithreading, concurrency, networking and reflection concepts and frameworks.
• how to use Remote Procedure Calls (RPCs) and Java Naming and Directory Interface (JNDI).
• advanced means of Serialization process.
• JavaFX GUI library with using MVC and Observable design patterns.

The module is taught in Java. The module assessment is based on individual student projects. In these projects, students must create Java application to the given specifications.


Essential reading:
1. Horstmann, C. (2020) Core Java Volume II - Advanced Features: 1. 11th edn. London: Pearson.

Recommended reading:
1. Bloch, J. (2017) Effective Java. 3rd edn. Boston: Addison-Wesley Professional.

Further reading:
1. Evans, K.J. (2012) The Well-Grounded Java Developer: Vital techniques of Java 7 and polyglot programming. 1st edn. Shelter Island: Manning Publications.

Download student guide

Minimal learning outcomes

  • Apply appropriate libraries to design advanced graphics software solutions.
  • Apply appropriate libraries based on MVC architecture in designing advanced graphics software solutions.
  • Implement change notification systems between the interface and the business logic of the application.
  • Implement a multi-threaded solution to a given problem according to a basic specification.
  • Identify the need for a reflection framework and implement it.
  • Apply appropriate object-oriented programming language libraries on a virtual platform to provide network communication.
  • Apply SAX and DOM libraries for dynamic generation and editing of XML documents.

Preferred learning outcomes

  • Develop your own graphics software components.
  • Promote separation of concerns by using advanced MVC concepts.
  • Implement Observable Pattern and notification system using graphic interface components.
  • Implement advanced asynchronous and concurrent solution according to specification.
  • Inspect and execute the code in runtime reflectively, using reflection framework.
  • Implement TCP and UDP concepts in client server environment.
  • Implement persistence engine using advanced JAXP concepts.
Share: Facebook Twitter