A Learner-Centered Approach to Teaching Programming
Learning to program is difficult, and of particular challenge to an audience of artists, designers and educators. These learners may have a limited background in mathematics and programming logic and also vastly different motivations from a student majoring in computer science. Yet the pedagogy we use to teach them programming is the same as for everyone.
While traditional programming languages and environments are powerful in their capabilities to address a variety of programming needs, they are often ill suited to teaching programming to beginners because of their complexity and rigidity of syntax.
So what is the best approach to teaching programming to such an audience? What combination of pedagogy and tools best responds to their particular needs?
This thesis proposes a learner-centered approach to teaching programming - an approach that combines the use of visual representations for explaining abstract programming elements, and a thoughtfully designed interactive learning environment for working with these elements and verifying a student's understanding.
By tying the abstract program logic to its more tangible visual output within the setting of an interactive visual learning environment, the learner-centered approach tries to make the process of learning how to program more engaging, intuitive, concrete, and ideally, more successful.