Results 1 -
5 of
5
Mental Models of Recursion
, 2003
"... Recursion is a fundamental concept of Computer Science that is difficult to teach and learn. Students have many misconceptions about recursion and construct mental models of recursion which are non-viable. A mental model is a student's mental representation of recursion and it provides them with pre ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Recursion is a fundamental concept of Computer Science that is difficult to teach and learn. Students have many misconceptions about recursion and construct mental models of recursion which are non-viable. A mental model is a student's mental representation of recursion and it provides them with predictive and explanatory powers about recursion. A mental model is non-viable if it does not allow a student to accurately and consistently represent the process of recursion.
An Editor for Helping Novices to Learn Standard ML
- In Proceedings of the Ninth International Symposium on Programming Languages, Implementations, Logics and Programs
, 1997
"... This paper describes a novel editor intended as an aid in the learning of the functional programming language Standard ML. A common technique used by novices is programming by analogy whereby students refer to similar programs that they have written before or have seen in the course literature and u ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
This paper describes a novel editor intended as an aid in the learning of the functional programming language Standard ML. A common technique used by novices is programming by analogy whereby students refer to similar programs that they have written before or have seen in the course literature and use these programs as a basis to write a new program. We present a novel editor for ML which supports programming by analogy by providing a collection of editing commands that transform old programs into new ones. Each command makes changes to an isolated part of the program. These changes are propagated to the rest of the program using analogical techniques. We observed a group of novice ML students to determine the most common programming errors in learning ML and restrict our editor such that it is impossible to commit these errors. In this way, students encounter fewer bugs and so their rate of learning increases. Our editor, C Y NTHIA, has been implemented and is due to be tested on st...
Evaluating Environments for Functional Programming
- International Journal of Human-Computer Studies
, 2000
"... Functional programming presents new challenges in the design of programming environments. In a strongly typed functional language, such as ML, much conventional debugging of runtime errors is replaced by dealing with compile time error reports. On the other hand, the cleanness of functional progr ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
Functional programming presents new challenges in the design of programming environments. In a strongly typed functional language, such as ML, much conventional debugging of runtime errors is replaced by dealing with compile time error reports. On the other hand, the cleanness of functional programming opens up new possibilities for incorporating sophisticated correctness-checking techniques into such environments. C Y NTHIA is a novel editor for ML that both addresses the challenges and explores the possibilities. It uses an underlying proof system as a framework for automatically checking for semantic errors such as non-termination. In addition, C Y NTHIA embodies the idea of programming by analogy --- whereby users write programs by applying abstract transformations to existing programs. This paper investigates C Y NTHIA's potential as a novice ML programming environment. We report on two studies in which it was found that students using C Y NTHIA commit fewer er...
Supporting Programming by Analogy in the Learning of Functional Programming Languages
- University of Edinburgh
, 1997
"... This paper examines the learning of the functional programming language Standard ML. A common technique used by novices is programming by analogy whereby students refer to similar programs that they have written before or have seen in the course literature and use these programs as a basis to wri ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
This paper examines the learning of the functional programming language Standard ML. A common technique used by novices is programming by analogy whereby students refer to similar programs that they have written before or have seen in the course literature and use these programs as a basis to write a new program. We present a novel editor for ML which supports programming by analogy by providing a collection of editing commands that transform old programs into new ones. Each command makes changes to an isolated part of the program. These changes are propagated to the rest of the program using analogical techniques. Many commands are at a level high enough to provide guidance to the novice during program development. We observed a group of novice ML students to determine the most common programming errors in learning ML and restrict our editor such that it is impossible to commit these errors. In this way, students encounter fewer bugs and so their rate of learning increases.
A Qualitative and Quantative Analysis of Errors Encountered by Novice ML Programmers
, 1996
"... this document. The scripts are intended to back-up the knowledge gleaned from the questionnaires ..."
Abstract
- Add to MetaCart
this document. The scripts are intended to back-up the knowledge gleaned from the questionnaires

