NITH 2012-2013 / Emner / Programming subjects (PG, IPG) / PG4100 Advanced Java Programming 2  

PG4100 Advanced Java Programming 2



Advanced Java Programming 2

ECTS (European Credit Transfer System)

External examiner
Morten Andersen-Gott

Date of approval

When programming you will often need to use a code written by others. This course gives an introduction to how to add third party libraries in a Java project, how to apply a construction tool to simplify this process, and how to start using Open-Source libraries. Logging and documentation are necessary in production and management, thus, the course introduces Log4j and javadoc. Heavier programs will need to parallelise tasks and the course therefore also introduces thread programming. Sockets are used to make programs that can communicate over the network. The course also has a brief introduction to functional programming as an alternative programming paradigm to object oriented programming.

The course requires advanced programming knowledge equivalent to PG3100, and basic knowledge of version control. Programming requires a high degree of accuracy, patience, stamina and capability for logical thinking.

Learning outcomes


At completion of the course the students will

- know the benefits of thread programming and when they should be used; 

- know the differences of object oriented and functional programming; 

- know at least one open-source project in Java and have read parts of its source code; 

- know how applications can exchange data through sockets and web services; 

- know the concept of REST


At completion of the course the students will be able to

- configure dependencies including: 

   - makeing JAR/WAR

   - adding third party libraries manually in Eclipse

   - using Maven to specify dependencies and build a Java project 

 - use open-source libraries, including: 

   - checking them according to version control 

   - constructing an open-source project based on Maven

   - making a change in the library 

   - running the tests of the library 

   - configuring Log4j and writing programs using such logging

   - using Javadoc to write documentation of code 

   - developing thread-based applications 

   - developing client/server applications using Sockets

   - drawing 2D-graphics with Swing and printing them

   - performing HTTP calls against a RESTful web-service

   - producing applications that can interpret XML and JSON

General competence

At completion of the course the students will be able to 

reflect on the benefits and disadvantages of third party libraries. 

Lectures, supervised exercises, assignments and written test

Recommended workload



Participating in classes




Self study




Total recommended workload


Technology and tools
  • Java 1.7
  • Eclipse
  • Maven
  • Git/Subversion
Grading system
Letter grades A-E for passed and F for failure

Diploma supplement text
The course has given an introduction to the use of third party libraries in Java and the use of Maven. Further the course has introduced thread programming, sockets, logging, 2d-graphics in Swing and simple integration against REST-based web services that return XML/JSON. The course also included a brief session of functional programming as an alternative programming paradigm to object oriented programming.


See PG3100

Type of assessment


Portfolio comprising assignments and final written test