Tutoring Prolog Novices Based on Programming Techniques

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1452)


We present a techniques-based approach to the tutoring of Prolog programming. The concept of a programming technique is used to characterise and classify programs. We define a set of technique grammar rules for each class of programs, which can be used for program classification, technique and program recognition, and program construction. We use both technique and program frames to represent technique-related and program-related knowledge that provides the basis of error diagnosis and explanation generation for tutoring. Our approach to error diagnosis and explanation generation, however, does not rely on the representation of buggy versions of the program.


Programming Technique Semantic Knowledge Parsing Tree Recursive Call Explanation Generation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Anderson, J.R. and Reiser, B.J. (1985) The Lisp Tutor. BYTE, April, 159–175. 412Google Scholar
  2. 2.
    Brna, P., Bundy, A., Dodd, T., Eisenstadt, M., Looi, C.K., Pain, H., Robertson, D., Smith, B. and van Someren, M. (1991) Prolog programming techniques. Instructional Science 20: 111–133. 404, 404, 405, 412CrossRefGoogle Scholar
  3. 3.
    Gegg-Harrison, T.S. (1991) Learning Prolog in a schema-based environment. Instructional Science 20: 173–192. 404, 404, 405, 406, 407, 412CrossRefGoogle Scholar
  4. 4.
    Johnson, W.L. and Soloway, E. (1985) PROUST: knowledge-based program understanding. IEEE Transactions of Software Engineering, SE-11(3): 267–275. 412CrossRefGoogle Scholar
  5. 5.
    Spohrer, J.C., Soloway, E. and Pope, E. (1985) A goal-plan analysis of buggy Pascal programs. Human-Computer Interaction 1:163–207. 412CrossRefGoogle Scholar
  6. 6.
    VanLehn, K. (1996) Conceptual and Meta Learning During Coached Problem Solving. Intelligent Tutoring Systems. Proceedings of the Third International Conference, ITS’96, Montreal, Canada, 29–47. 412Google Scholar
  7. 7.
    Looi, C.K. (1991) Automatic debugging of Prolog programs in a Prolog tutoring system. Instructional Science 20: 215–263. 404, 411CrossRefGoogle Scholar
  8. 8.
    Soloway, E.M. (1985) From problems to programs via plans: the content and structure of knowledge for introductory LISP programming. Journal of Educational Computing Research: 1, 157–172. 412CrossRefGoogle Scholar
  9. 9.
    Taylor, J. and du Boulay, B. (1987) Studying novice programmers: why they may find learning Prolog hard. Computers, cognition and development: issues for psychology and education, J.C. Rutkowska and C. Crook (Eds.), New York: John Wiley and Sons. 404Google Scholar
  10. 10.
    van Someren, M.W. (1990) Whats wrong? Understanding beginners problems with Prolog. Instructional Science 19: 257–282. 404CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  1. 1.School of Information and Software EngineeringUniversity of Ulster at JordanstownNewtownabbey, Co. AntrimUK

Personalised recommendations