An editor for helping novices to learn standard ML

  • Jon Whittle
  • Alan Bundy
  • Helen Lowe
Education: Tools and Themes
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1292)


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, CYNTHIA, has been implemented and is due to be tested on students of ML from September, 1997.


Programming Language Learning Learning Environments Analogy 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    J. R. Anderson, P. Pirolli, and R. Farrel. Learning to program recursive functions. The Nature of Expertise, pages 153–183, 1988.Google Scholar
  2. 2.
    S. Bhuiyan, J. Greer, and G. I. McCalla.Supporting the learning of recursive problem solving. Interactive Learning Environments, 4(2):115–139, 1994.Google Scholar
  3. 3.
    P. Brna and J. Good.Searching for examples: An evaluation of an intermediate description language for a techniques editor. In P. Vanneste, K. Bertels, B. de Decker, and J-M. Jaques, editors, Proceedings of the 8th Annual Workshop of the Psychology of Programming Interest Group, pages 139–152. 1996.Google Scholar
  4. 4.
    A. Bundy, G. Grosse, and P. Brna. A recursive techniques editor for Prolog. Instructional Science, 20:135–172, 1991.Google Scholar
  5. 5.
    Th. Coquand. Pattern matching with dependent types. In Proceedings from the logical framework workshop at Bästad, June 1992.Google Scholar
  6. 6.
    D. Duggan and F. Bent. Explaining type inference. Science of Computer Programming, 27:37–83, 1996.Google Scholar
  7. 7.
    T.S. Gegg-Harrison. Adapting instruction to the student's capabilities. Journal of AI in Education, 3:169–181, 1992.Google Scholar
  8. 8.
    C. Horn and A. Smaill. Theorem proving and program synthesis with Oyster. In Proceedings of the IMA Unified Computation Laboratory, Stirling, 1990.Google Scholar
  9. 9.
    W. A. Howard. The formulae-as-types notion of construction. In J. P. Seldin and J. R. Hindley, editors, To H. B. Curry; Essays on Combinatory Logic, Lambda Calculus and Formalism, pages 479–490. Academic Press, 1980.Google Scholar
  10. 10.
    M. Kirschenbaum, A. Lakhotia, and L.S. Sterling. Skeletons and techniques for Prolog programming. Technical Report Tr-89-170, Case Western Reserve University, 1989.Google Scholar
  11. 11.
    A. Kohne and G. Weber. Struedi: A lisp-structure editor for novice programmers. In Human-Computer Interaction INTERACT 87), pages 125–129, 1987.Google Scholar
  12. 12.
    Per Martin-Löf. Constructive mathematics and computer programming. In 6th International Congress for Logic, Methodology and Philosophy of Science, pages 153–175, Hanover, August 1979. Published by North Holland, Amsterdam. 1982.Google Scholar
  13. 13.
    B.J. McAdam. Adding BigTypes to ML. Tech.rep, August 1996. Available at /home /bjm /summer96 / Scholar
  14. 14.
    David McAllester and Kostas Arkoudas. Walther recursion. In LADE-13, pages 643–657. Springer Verlag, July 1996.Google Scholar
  15. 15.
    E. Melis and J. Whittle. External analogy in inductive theorem proving. In Proceedings of KI97, 21st German Conference on Artificial Intelligence, 1997.Google Scholar
  16. 16.
    P. L. Pirolli and J. R. Anderson. The role of learning from examples in the acquisition of recursive programming. Canadian Journal of Psychology, 39:240–272, 1985.Google Scholar
  17. 17.
    G. Weber. Individual selection of examples in an intelligent learning environment. Journal of AI in Education, 7(1):3–31, 1996.Google Scholar
  18. 18.
    G. Weber and A. Bögelsack. Representation of Programming Episodes in the ELM model. Ablex Publishing Corporation, Norwood, NJ, 1995.Google Scholar
  19. 19.
    J. Whittle.An analysis of errors encountered by novice ML programmers. Tech.rep, University of Edinburgh, 1996. In http: // daidb/ students/ jonathw/ publications.html.Google Scholar
  20. 20.
    J. Whittle, A. Bundy, and H. Lowe. Supporting programming by analogy in the learning of functional programming languages. In Proceedings of the 8th World Conference on AI in Education, 1997. Also available from Dept. of Artificial Intelligence, University of Edinburgh.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Jon Whittle
    • 1
  • Alan Bundy
    • 1
  • Helen Lowe
    • 2
  1. 1.Dept. of Artificial IntelligenceUniversity of EdinburghEdinburghUK
  2. 2.Dept. of Computer StudiesNapier University CraiglockhartEdinburghUK

Personalised recommendations