Making Software Engineering Education Structured, Relevant and Engaging through Gaming and Simulation