Abstract: Fostering students' computer programming ability has been recognized as being an important and challenging educational issue which is highly related to the process of problem solving.