PyMorphic - a Morphic based Live Programming Graphical User Interface implemented in Python

University essay from Linköpings universitet/Institutionen för datavetenskap

Author: Anders Österholm; [2006]

Keywords: Morphic; Python; Live Programming;

Abstract: Programming is a very complex activity that has many simultaneous learning elements. The area of Live-programming offers possibilities for enhancing programming work by speeding up the feedback loop and providing means for reducing the cognitive load on the working memory during the task. This could allow for better education for novice programmers. In this work a number of systems with a shared aim of providing educational tools for scholars from compulsory level to undergraduate college were studied. The common approach in the majority of the tools was to use program abstractions like tangible morphs, playing cards, capsules for code segments, and visual stories. For the user these abstractions and tools offer better focus on the constructive and creative side of programming because they relieve the user from the cumbersome work of writing program code, but they also sacrifice some of the expressiveness of a low-level language. A Live programming system, called PyMorphic, based on the Morphic model was built in the Python programming language. Two different solutions, based on the Wx toolkit for Python, were constructed and evaluated. The results show that Morphic and Python go well together because Python is a programming language that allows for compact and dynamic code. PyMorphic was evaluated with the cognitive dimensions framework and theories on cognitive load and working memory. A user attitude test was performed and the results showed that the users had a positive attitude towards the PyMorphic system. The PyMorphic project is open-source and it is hosted on Sourceforge. The code can be downloaded from the project web-site: Anyone is welcome to take part in further development of PyMorphic.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)