At present, there is a general consensus on the nature of learning programming, but there are different opinions on what forms an effective environment for it. It is generally recognized that the development of a mental model is a formidable task for the