Recent approaches for covering solution space of intelligent tutoring systems for programming

Introductory programming is an essential part of the curriculum in any engineering disciplines in universities. However, for many beginning students, it is very difficult to learn. In particular, these students often get stuck and frustrated when attempting to solve programming exercises.