Designing and deploying programming courses: Strategies, tools, difficulties and pedagogy
A long-term investigation of the comprehension of OOP concepts by novices