Allegories for learning abstract programming concepts

Constructivism theory states that learning is unavoidably done through association of new concepts with existing ones. Although programming concepts are abstract metaphors of some colloquial concepts, they seem to be not enough to overcome learning difficulties. We hypothesize that interrelated systems of metaphors (allegories) of abstract programming concepts can ease the association process and improve student learning. Our research introduces allegoric development environments and proposes to experimentally evaluate their effects on learning of programming concepts reported as difficult by students.