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

PG4100 Advanced Java Programming 2


Bachelor

Code
PG4100

Course
Advanced Java Programming 2

ECTS (European Credit Transfer System)
7.50

External examiner
Morten Andersen-Gott

Date of approval
25/03/2012

Aim
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.

Prerequisites
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

Knowledge

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

Skills 

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. 

Structure
Lectures, supervised exercises, assignments and written test

Recommended workload

Activity

Hours

Participating in classes

24

Exercises

24

Self study

149

Assessment

3

Total recommended workload

200

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.

Curriculum

See PG3100

Type of assessment
Mappevurdering

Assessment

Portfolio comprising assignments and final written test