Abstract: Innovative learning methodologies and tools are needed to foster students' interest in programming, improve the effectiveness of programming teaching, and retain the students in computing ...