{"title":"Example-based programming: a pertinent visual approach for learning to program","authors":"Nicolas Guibert, P. Girard, L. Guittet","doi":"10.1145/989863.989924","DOIUrl":null,"url":null,"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.","PeriodicalId":215861,"journal":{"name":"Proceedings of the working conference on Advanced visual interfaces","volume":"104 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2004-05-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"24","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the working conference on Advanced visual interfaces","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/989863.989924","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 24
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.