Advertisement

Instructional Science

, Volume 20, Issue 2–3, pp 111–133 | Cite as

Prolog programming techniques

  • Paul Brna
  • Alan Bundy
  • Tony Dodd
  • Marc Eisenstadt
  • Chee Kit Looi
  • Helen Pain
  • Dave Robertson
  • Barbara Smith
  • Maarten van Someren
Article

Abstract

In this paper we introduce the concept of a Prolog programming technique. This concept is then distinguished both from that of an algorithm and that of a programming cliché. We give examples and show how a knowledge of them can be useful in both programming environments and in teaching programming skills. The extraction of the various techniques is outlined. Finally, we discuss the problem of representing techniques where we conclude that the most promising approach is the development of a suitable meta-language.

Keywords

Teaching Programming Programming Environment Programming Technique Programming Skill Prolog Programming 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Breuker, J. A. and Wielinga, B. J. (1985). KADS: structured knowledge acquisition for expert systems. In J. A. Breuker, Proceedings of the Fifth International Workshop on Expert Systems and their Applications, Avignon. Also: VF Memo 40, Department of Social Science Informatics, University of Amsterdam.Google Scholar
  2. Brna, P., Brayshaw, M., Bundy, A., Dodd, T., Elsom-Cook, M. and Fung, P. (1991). An overview of Prolog debugging tools. Instructional Science, this issue.Google Scholar
  3. Bundy, A. (1988). A broader interpretation of logic in logic programming. In A. Bundy, Proceedings of the Fifth International Logic Programming Conferencel Fifth Symposium on Logic Programming. Cambridge, MA: MIT Press.Google Scholar
  4. Bundy, A., Grosse, G. and Brna, P. (1991). A recursive techniques editor for Prolog. Instructional Science, this issue.Google Scholar
  5. Chi, M. T. H., Feltovich, P. J. and Glaser, R. (1981). Categorization and representation of physics problems by experts and novices. Cognitive Science, 5, 121–152.Google Scholar
  6. de Jong, T. and Ferguson-Hessler, M. G. M. (1986). Cognitive structures of good and poor novice problem solvers in physics. Journal of Educational Psychology, 78(4), 279–288.Google Scholar
  7. Ferguson-Hessler, M. G. M. and de Jong, T. (1987). On the quality of knowledge in the field of electricity and magnetism. American Journal of Physics, 55(6), 492–497.Google Scholar
  8. Gegg-Harrison, T. S. (1991). Learning Prolog in a schema-based environment. Instructional Science, this issue.Google Scholar
  9. Gilmore, D. J. and Green, T. R. (1988). Programming plans and programming expertise. Quarterly Journal of Experimental Psychology, 40, 423–442.Google Scholar
  10. Johnson, W. L. and Soloway, E. (1985). PROUST: knowledge-based program understanding. IEEE Transactions of Software Engineering, SE-11(3), 267–275.Google Scholar
  11. Johnson, W. L. (1986). Intention-based debugging of novice programming errors. London: Pitman.Google Scholar
  12. Kahney, H. (1982). An in-depth study of the cognitive behaviour of novice programmers. Unpublished Ph.D. thesis, Human Cognition Research Laboratory, The Open University, Milton Keynes, U.K.Google Scholar
  13. Kirschenbaum, M., Lakhotia, A. and Sterling, L. (1989). Skeletons and techniques for Prolog programming. TR 89-170, Case Western Reserve University.Google Scholar
  14. Laird, J. E., Rosenbloom, P. and Newell, A. (1985). Chunking in SOAR: the anatomy of a general learning mechanism. Research Report CMU-CS-85-154, Department of Computer Science, Carnegie-Mellon University.Google Scholar
  15. Looi, C. K. (1991). Automatic debugging of Prolog programs in a Prolog Intelligent Tutoring System. Instructional Science, this issue.Google Scholar
  16. O'Keefe, R. A. (1988). Practical Prolog for real Prolog programmers. A tutorial given at the Fifth International Conference Symposium on Logic Programming, Seattle.Google Scholar
  17. O'Keefe, R. A. (1990). The craft of Prolog. Cambridge, MA: MIT Press.Google Scholar
  18. Plummer, D. (1990). Cliché programming in Prolog. In D. Plummer, Proceedings of the META-90 Workshop, META-90. Leuven, Belgium.Google Scholar
  19. Reiser, B. J., Anderson, J. R. and Farrell, R. G. (1985). Dynamic student modelling in an intelligent tutor for LISP programming. In A. Joshi (Ed.), Proceedings of IJCAI-85, pp. 8–14. International Joint Conference on Artificial Intelligence. Los Altos, CA: Morgan Kaufman.Google Scholar
  20. Rich, C. and Waters, R. C. (1987). The Programmer's Apprentice: a program design scenario. AI Memo 933a, M. I. T. Artificisal Intelligence Laboratory, Cambridge, MA.Google Scholar
  21. Spohrer, J. C., Soloway, E. and Pope, E. (1985). A goal-plan analysis of buggy Pascal programs. Human-Computer Interaction, 1, 163–207.Google Scholar
  22. Sterling, L. and Lakhotia, A. (1988). Composing Prolog meta-interpreters. In R. A. Kowalski and K. A. Bowen (Eds.), Logic programming: Proceedings of the Fifth International Conference and Symposium, pp. 386–403, Cambridge, MA: MIT Press.Google Scholar
  23. Sterling, L. and Shapiro, E. Y. (1986). The art of Prolog. Cambridge, MA: MIT Press.Google Scholar
  24. van Someren, M. W. (1990). What's wrong? Understanding beginners' problems with Prolog. Instructional Science, 19(4/5), 257–282.Google Scholar
  25. Waters, R. C. (1985). KBEmacs: a step toward the Programmer's Apprentice. Technical Report 753, MIT Artificial Intelligence Laboratory, Cambridge, MA.Google Scholar

Copyright information

© Kluwer Academic Publishers 1991

Authors and Affiliations

  • Paul Brna
    • 1
  • Alan Bundy
    • 1
  • Tony Dodd
    • 2
  • Marc Eisenstadt
    • 3
  • Chee Kit Looi
    • 4
  • Helen Pain
    • 1
  • Dave Robertson
    • 1
  • Barbara Smith
    • 5
  • Maarten van Someren
    • 6
  1. 1.Department of Artificial IntelligenceUniversity of EdinburghEdinburghU.K.
  2. 2.Expert Systems International Ltd.OxfordU.K.
  3. 3.Human Cognition Research LaboratoryThe Open UniversityMilton KeynesU.K.
  4. 4.Information Technology InstituteSingapore
  5. 5.School of Computer StudiesUniversity of LeedsLeedsU.K.
  6. 6.Department of Social Science InformaticsUniversity of AmsterdamAmsterdamThe Netherlands

Personalised recommendations