Personality types, learning styles, and an agile approach to software engineering education | Synapse