Prerequisites: Basic Java Knowledge (not mandatory)