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 fontys.nl 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

01

Collection Framework, Comparator

Quiz Inheritance/Polymorphism, Implementation of Stack & Comparator

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

Test Stack & Comparator, Test Fraction

02

Exceptions & Logging

Beer Assignment

Coverage & Tooling, Test of Exceptions

Test Beer Assignment + Coverage

03

Enums & Generics

Planets for Enums, Shape for Generics

Basics of Project Management, Scope Management

Refactoring Stack, Test Enums, Test Shape

04

Lambda Expressions/Filter, Filtering on Collections, Comparator as Function

Olifantys, Refactor Comparator from wk01

Assertion Libraries, PM: Time Management

Test Olifantys

05

Streams, File IO, Try with Resources

CSV2Objects, Bibliothek

Maven / Build Tooling, Dependencies on Versions

Test CSV2Objects, Bibliothek

06

Threads & Sockets, Serialisation

Wordtransl. SimpleRestful

Mocking, Spy, Stubs

Test Sockets with Mocks (Mockito), Test Serialisation

07

JDBC

Simple Rest API Refactoring, Replace Map by DBTable

PM: Cost Management, Scrum Basics

Scrum Game (in Coaching Hour PRJ2)

08

REST-API (e.g. Jersey)

Testing Theory, Finding Testdata

Integration Tests, Rest Easy

09

State Machine, Regex

Gumballs, Templating

Extreme Programming, Crystal

Test Gumballs, Test Templating

10

Java FX Bindings

Clock

FDD

Test Bindings (Clock)

11

Java FX GUI, Architecture (Thin GUI)

Yahtzee

Mutation Tests (PIT)

tbd

12

Reflection (Agents, Lombok)

Class Hierarchie

Agile Mindset

tdb

13

Numbers & Computation

Decimal 2 Binary (Two Way binding)

tbd

tbd

14

tbd

tbd

tbd

tbd

1. Week1

1.1. 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: HVD, DVP: HOM.

1.2. Exercises

Collections and Comparator exercise → Finish lesson demo, see paragraph 1.4

1.3. Additional pointers

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

1.4. Demos

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

2. Week2

2.1. Exceptions and Logging

Study the Oracle tutorial on Exceptions at Exceptions Tutorial Study the examples in the Java Logging Overview at Java Logging examples

Exercises:

Think test driven. So write tests, then code.

Sheets:

2.2. Additional pointers

3. Week3

3.1. Enums & Generics

Constants with functionality and more on type safe storage.

Study the oracle tutorial on Enum and Generics:

Sheets sets:

3.2. DVP Theory - Project Management

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 projects management is about, which frameworks, tools and techniques are there and how to use them.

3.2.1. Topic overview Project Management / Agile Processes

4. Week4

4.1. Java: Lambda & Streams. DVP: Assertion Libraries, Time Management.

Java gets more functional since Java 8.

Study the oracle tutorial on Lambda and Streams:

Sheets sets:

4.1.1. Exercises Java

Olifantis, Refactor Comparator from wk01

Lambda Expressions/Filter, Filtering on Collections, Comparator as Function.

4.2. Week 4 - DVP Theory - Project Management

TODO: PM

Testing: Assertion frameworks.

4.2.1. Topic overview Project Management / Agile Processes

Olifantis, Refactor Comparator from wk01

Assertion Libraries, PM: Time Management

4.2.2. Exercises Testing

Test Olifantys. Make sure the proper professors are in the bus.

Revisit the comparator exercise (svn copy the/your project! You need to understand both approaches during exam!).

5. Week xx

State machines. Having a ball with tdd.

My notes on this lecture and part of the solution can be found through topics/havingaball.html