Designing and deploying programming courses: Strategies, tools, difficulties and pedagogy - Xinogalos, Stelios (Education and Information Technologies)