Abstract
The programming process traditionally involves the static and abstract description of algorithms in a dedicated language; then the system checks the syntactic correctness of these description and allows the designer to run his program to test if it does what it is supposed to. But this approach has proved to be difficult for many novices (studies in didactics for programming reveal rather high failure rates – between 25 % and 80 % world-wide according to [1] – in programming introductory courses). That’s because it has to face two well-known problems : • Bad usability of the system tools used for the human-computer communication (lacks of usability in editing phase, and lacks of interactivity in the editing-compiling-debugging cycle). • Mistakes in the abstraction process which links the computer’s dynamic tasks and the developer’s static description of them with algorithms. In the mid-seventies, D.C. Smith introduced with Pygmalion [2] another programming paradigm, Programming by Example(s), where algorithms are not described abstractly, but are demonstrated in concrete examples. Since then, Programming by Example(s) and other advanced HCI techniques, as metaphors and microworlds, have been used in several experimental tools for novice programmers, but up to date, none of them managed to equal classical languages expressiveness. Worse again, whereas the PbE approach proved to be an innovative and elegant technique to handle human-machine interaction, it doesn’t handle at all the programmer-programmer communication aspect of a programming language. In ToonTalk [3], for instance, no static representation is provided, and thus the only way to “read” a program is to analyse the dynamic interactions of this program’s objects while it runs. Other tools use dedicated textual languages, or a comic-strip metaphor to provide a static presentation. In this position paper, we will discuss about the learning styles and didactic models associated with each programming paradigm; the differences involved in the student’s learning style, and we will try to explain how both programming paradigm can be combined to grant the designer a better support on his ongoing programming process. As an example, we will shortly describe the Melba system, which embeds a “classical” visual language and a concrete examples handled with a desktop metaphor and an “internal” PbE engine to teach novice programmers imperative programming concepts.
Cite
CITATION STYLE
Guibert, N., & Girard, P. (2003). Teaching and Learning Programming with a Programming by Example System. In International Symposium on End User Development. Sankt Augustin (Bonn), Germany.
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.