Java - From Control Structures through Data Structures