A short collection of exercises to develop a deep understanding of Software engineering, object oriented programming using The Java Programming Language