ABSTRACT
Computer Science introductory courses are known to be difficult for students. Kaasboll [1] reports that drop-out or failure rates vary from 25 to 80 % world-wide. The explanation is related to the very nature of programming: "programming is having a task done by a computer" [2]. We can notice three internal difficulties in this definition:• The task itself. How do we define it, and specify it?• The abstraction process. In order to "have it done by..." students need to create a static model covering each task behavior.• The "cognitive gap". It is difficult for novice programmers to model the computer, and its "mindset", which is required to express the task model in a computer-readable way. The bad usability of programming languages increases this difficulty.The lack of interactivity in the editing-running-debugging loop is often pointed as an important aggravating factor for these difficulties. In the mid-seventies, Smith [3] introduced with Pygmalion another programming paradigm: Programming by Examples, where algorithms are not described abstractly, but are demonstrated through concrete examples. This approach involves several advantages for novices. It allows them to work concretely, and to express the solution in their own way of thinking, instead of having to embrace a computer-centered mindset. The programming process becomes interactive, and as PbE languages are "animated" languages, no translation from the dynamic process to any static representation is required.In this paper we investigate both the novice programmer and existing PbE languages, to show how visual and example-based paradigms can be used to improve programming teaching. We give some elements of a new Example-based Programming environment, called Melba, based on this study, which has been designed to help novice programmers learning to program.
- Kaasboll, J., Learning Programming,. 2002, University of Oslo.Google Scholar
- DUCHÂTEAU, C. From "DOING IT.." to "HAVING IT DONE BY ..": The Heart of Programming. Some Didactical Thoughts. in NATO Advanced Research Workshop "Cognitive Models and Intelligent Environments for Learning Programming". 1992. S Margherita, Italy.Google Scholar
- Smith, D. C., A Computer Program to Model and Stimulate Creative Thought. 1977, Basel: Birkhauser. 187p.Google Scholar
- Kahn, K., How Any Program Can Be Created by Working with Examples, in Your Wish is My Command, H. Lieberman, Editor. 2001. p. 21--44.Google Scholar
- Smith, D. C., Novice Programming comes of Age. Communications of the ACM, 2000. 43(3): p. 75--81. Google ScholarDigital Library
Index Terms
- Example-based programming: a pertinent visual approach for learning to program
Recommendations
Rule-Based Programming with Diaplan
Diaplan is a language for programming with graphs and diagrams that is currently being designed and implemented by the authors. In this paper, a programming example, declaration grids, shall illustrate how Diaplan supports a functional and object-...
Visual programming with Java: evaluation of an introductory programming course
During 1996/1997 the authors were involved in writing an introductory programming course for distance learning, based on Java and visual programming. In the fall of 1997 the course material was used both at the Dutch Open University and at Delft ...
Language Migration in non-CS Introductory Programming through Mutual Language Translation Environment
SIGCSE '15: Proceedings of the 46th ACM Technical Symposium on Computer Science EducationIn the past decade, improvements have been made to the environments used for introductory programming education, including by the introduction of visual programming languages such as Squeak and Scratch. However, migration from these languages to text-...
Comments