Module descriptions
* Module description DeVelopment Processes * Module description PRogramming Concepts 2

This site is contains the up to date and combined course material, exercises and announcements about PRC2 (Java Programming 2) and DVP (Development Processes), starting in Februari 2018.

The literature for the courses:

  • For The testing part we use the book Unit Testing with JUnit and Mockito by
    Tomek Kaczanowski.

  • For the PRC2 part we will mainly use the Oracle Java Tutorials on the topic.
    The exercises will be published on this site.

  • For the Development process theory, the literature will be announced here as soon as it has been decided/

Study the theory/ tutorials before you come to class. This will make the lessons most effective, because the questions that you might have from studying could be answered immediately.

Studying is not glancing over some (web) pages, but experiment with the compiler, IDE and other tools, to see if you can use the presented ideas and apply it in your own code.

In the schedule the DVP block is planned before the PRC2 block, thereby promoting the idea of Test Driven Development: You write your test, derived from the requirements and then write your code. To do this properly, you MUST study the PRC2 theory and tasks before you come to the DVP lab sessions.

You should start with the exercises in the week they are mentioned and hand them in through your personal subversion repository before the lessons in the next week start. There will be no new exercises in the last week.

Slack channel(s)

For questions and answers thus documenting them and also discussions and explanations, sharing information, links and other things between students and lecturers, feel free to use the slack channel: Slack invitation link. You are only allowed to use a email address. Using slack is optional, but if the students share their knowledge here, this can be a helpful source and learning environment.

Topics 2018

Week PRC2 Theory PRC2 Practical DVP1 Theory DVP1 Practical


Collection Framework, Comparator

Quiz Inheritance/Polymorphism, Implementation of Stack & Comparator

Unit Testing Introduction, Build Processes and Tools, Subversion (Colloquium)

Test Stack & Comparator, Test Fraction


Exceptions & Logging

Beer Assignment

Coverage & Tooling, Test of Exceptions

Test Beer Assignment + Coverage


Enums & Generics

Planets for Enums, Shape for Generics

Basics of Project Management, Scope Management

Refactoring Stack, Test Enums, Test Shape


Lambda Expressions/Filter, Comparator as Function

Olifantys, Refactor Comparator from wk01

Assertion Libraries, PM: Time Management

Test Olifantys


Streams, File IO, Try with Resources

CSV2Objects, LambdaLibrary

Maven / Build Tooling, Dependencies on Versions

Test CSV2Objects, LambdaLibrary


Threads & Sockets, Serialisation

Wordtransl. SimpleRestful

Mocking, Spy, Stubs

Test Sockets with Mocks (Mockito), Test Serialisation



Simple Rest API Refactoring, Replace Map by DBTable

PM: Cost Management, Scrum Basics

Scrum Game (in Coaching Hour PRJ2)


REST-API (e.g. Jersey)

Testing Theory, Finding Testdata

Integration Tests, Rest Easy


State Machine, Regex

Gumballs, Templating

Extreme Programming, Crystal

Test Gumballs, Test Templating


Java FX Bindings



Test Bindings (Clock)


Java FX GUI, Architecture (Thin GUI)


Mutation Tests (PIT)



Reflection (Agents, Lombok)

Class Hierarchie

Agile Mindset



Numbers & Computation

Decimal 2 Binary (Two Way binding)








1. Week1 Polymorphism, interfaces, Comparator and friends, Test Driven Development.

Week 1 rehearses some PRC1 stuff and introduces (unit) testing, the Java collection framework, and the Comparator as a way to make the collection very flexible.

Oracle tutorial on Interfaces and Inheritance and Collections.

Study tutorials before you come to class or practicum.

Sheets sets:

Responsible Teachers: PRC2: HOM, HVD; DVP: HOM, SBK.

1.1. Additional pointers

Start reading the fine manual (RTFM),in this case the api doc:

1.2. Demos

Lecture demo PRC2 about comparable, project in a zip. Complete the project according the tests.

1.3. Exercises

2. Week2 Exceptions and Logging


2.1. Additional pointers

2.2. Demos

Lecture demo PRC2 about comparable, project in a zip. Complete the project according the tests.

2.3. Exercises

2.4. Maven settings and repository

A maven repository is a server that provides ready built maven 'artifacts', such as (binary) jar files containing libraries, frameworks or APIs and in many (but not all) companion jar files containing the javadoc (often) and sources of the same binary. A maven repository is NOT a source code management system (CMS), although it typically holds several versions of a binary.

The is a default repository, called maven central. You (as team, comapny) can have your own repository. We at sebi Venlo did that too. Our repository lives at Note that only teachers can put (jar) files in that repository. If you look at that repository you will see that it is organized along the three coordinate axis: groupId, artifactId and version.

To make this repository available for your own projects, add the following to your `~/.m2/settings.xml in the profiles section. You may also want to make that profile active.

adding fontysvenlo repo to your maven settings.

Doing this gives you the access to sebipom, which defines a parent pom for projects. This again provides some goodies that you otherwise have to provide yourselves. Such a parent pom is similar to a super class in Java; your pom inherits all the traits of the parent.

Including that parent is simple. See below for the sebipom (version 1.2).

sebipom as parent.

Some of the starter projects we provide already use this parent. To get that working, apply the settings above.

3. Week3 Enums & Generics - Project Management Basics

Constants with functionality and more on type safe storage.

Study the oracle tutorial on Enum and Generics:

Sheets sets:

3.1. DVP Theory - Project Management Basics

Today starts an introduction to the basics of project management.

Since a lot of work nowadays will be done in projects, it is important to understand what a project is, what not, what project management is about, which frameworks, tools and techniques are there and how to use them.


You can always ask question in slack in channel #dvp1 on Of course it is a good idea to not only ask questions, but also try to share your knowledge and answer the questions of other students.

3.2. Week 03 Exercises.

4. Java: Lambda & Streams. DVP: Assertion Libraries, Refactoring and Project Management in IT.

Java gets more functional since Java 8.

Study the oracle tutorial on Lambda and Streams:

Sheets sets:

There is also a summary on lambda under lambdaandfunctions.html

4.1. DVP Theory - Refactoring

Refactoring is an important task of software developers.

4.1.1. Slides week 3 - Refactoring

4.2. DVP Theory - Project Management in IT

Topics of today is Project Management in IT. Mainly it is about understanding how organizations are structured, about life cycles of projects and products and what project phases are.


You can always ask questions in slack in channel #dvp1 on Of course it is a good idea to not only ask questions, but also try to share your knowledge and answer the questions of other students.

4.2.1. Slides week3 - PM

4.3. Study the DVP test book.

In case you are missing directions for what to study of the test book (Unit Testing with JUnit and Mockito by Tomek Kaczanowski.): All of it, but not necessarily at once. We will apply several techniques from the book during the course, mainly in the lab exercises. Of course you may ask during class if there is a topic you do not understand (yet).

We did not add specific topics or order of topics in the study guide on purpose. For instance the way you can parameterize your test is shown in the book in several ways (e.g. in Chap 3). We have shown that in for instance the fraction solution, where we have demoed during class on Thursday 2018-02-22. We expect you to understand the concepts and be able to use an API (LG5, PRC2), even is it is a testing API.

4.4. Week 04 Exercises.

5. Java: Streams,Serialization and File IO, DVP: Time Management.

5.1. Java 8 Streams.

Study the oracle tutorial on Streams:

Consider a conveyor belt

Read the summary on lambda and streams under lambdastreams.html.

5.2. File IO.

Interaction with the file system, writing object to streams and files.

Sheets sets:

5.4. DVP Theory - Project Management - Integration Management

Topic of today is Project Management the knowledge area of Integration Management.


You can always ask questions in slack in channel #dvp1 on Of course it is a good idea to not only ask questions, but also try to share your knowledge and answer the questions of other students.

Read the additional material on the website linked below and also watch the provided video for a short recap.

Integration Management in 2 Minutes

5.5. Week 5 - DVP Theory - Testing

This week, there will be no DVP slide set, but instead, class will be about demonstrating how to use parameterized tests and how you could have solved some homework tasks.

To study Testing: Assertion frameworks. Study the book Practical Unit Testing with Mockito, chapter about assertion frameworks.

AssertJ is the successor of FEST, and has an active developer community.

In particular Hamcrest and AssertJ are of interest here.

5.6. Week 05 Exercises.

6. Threads and sockets.

Program a simple client server file transfer.

For this week study Oracle Networking Tutorial, in particular the part "All About sockets".

Sheets and handhout

Sheets on sockets and threads sheets and handout

6.1. Week 06 Exercises.

7. Java Database Connectivity (JDBC)

How to work with a database directly from Java in a command line, desktop or web application.

Study the JDBC Introduction.

7.1. Week 07 Exercises.

8. RESTful Java with JAX-RS

Makes development of RESTful web services in Java simple.

8.1. Sheets and handhout

Sheets on numbers and threads sheets and handout

Demo source code
For the demo source code SimpleRESTful and EmployeeClient, update your java2sen1 student repository.

8.2. Week 08 Exercises.

9. State machines and regular expressions


9.1. Week 09 Exercises.

Solutions to various exercises.