Edinburgh Research Explorer

Supporting Programming by Analogy in the Learning of Functional Programming Languages

Research output: Contribution to conferencePaperpeer-review

Related Edinburgh Organisations

Open Access permissions



Original languageEnglish
Publication statusPublished - 1997
EventProceedings of the 8th World Conference on Artificial Intelligence in Education - Kobe, Japan
Duration: 18 Aug 199722 Aug 1997


ConferenceProceedings of the 8th World Conference on Artificial Intelligence in Education


This paper examines the learning of the functional programming language Standard ML. A commontechnique used by novices is programming by analogy whereby students refer to similar programsthat they have written before or have seen in the course literature and use these programs as a basisto write a new program. We present a novel editor for ML which supports programming by analogyby providing a collection of editing commands that transform old programs into new ones. Eachcommand makes changes to an isolated part of the program. These changes are propagated to therest of the program using analogical techniques. Many commands are at a level high enough toprovide guidance to the novice during program development. We observed a group of novice MLstudents to determine the most common programming errors in learning ML and restrict our editorsuch that it is impossible to commit these errors. In this way, students encounter fewer bugs and sotheir rate of learning increases.


Download statistics

No data available

ID: 6317703