A fully functional compiler for a custom high-level Java-like programming language called MicroJava.
A 2D JavaFX implementation of one of the most popular and old board games. The AI player's moves are calculated using the expectiminimax algorithm.
An implementation of a small, but fully functional multithreaded operating system kernel with time sharing.