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.
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.
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.
Portfolio comprising assignments and final written test