Programming 2: concurrency, patterns and networking (Java)

Course work in Java: multithreading, the State and Observer patterns, MVVM with JavaFX, and TCP/UDP sockets.

Java JavaFX MVVM Multithreading Sockets

Overview

Exercises and an assignment from the Programming 2 course at VIA University College.

Highlights

  • State pattern: a vinyl-record library where each record moves between available, reserved, borrowed and removed states, with a JavaFX MVVM front end
  • Threads with Thread, Runnable and lambdas, including race conditions and how to fix them
  • Observer pattern: a traffic light that notifies cars and pedestrians
  • MVVM login/register and clock apps in JavaFX
  • TCP and UDP client/server examples and a small login system over TCP
  • A producer-consumer restaurant simulation using wait/notifyAll