Alex Gerdes, Bastiaan Heeren, Johan Jeuring



Learning to program is difficult. To support learning programming, many intelligent tutoring systems for learning programming have been developed. Research has shown that such tutors have positive effects on learning. However, intelligent tutors for learning programming are not widely used. Building an intelligent tutor for a programming language is a substantial amount of work, and utilising it in a course is often hard for a teacher. In this paper we illustrate how to construct strategies for solving programming exercises and how these strategies can be used to automatically support students using an intelligent programming tutor to incrementally develop a program. Using strategies for programming, specifying an exercise becomes relatively easy, and more flexible.


  1. Anderson, J. R. (1993). Rules of the Mind. Lawrence Erlbaum Associates.
  2. Anderson, J. R., Conrad, F. G., and Corbett, A. T. (1986). Skill acquisition and the LISP tutor. Cognitive Science, 13:467-505.
  3. Anderson, J. R. and Skwarecki, E. (1986). The automated tutoring of introductory computer programming. Communications of the ACM, 29(9):842-849.
  4. Augusteijn, L. (1998). Sorting morphisms. In 3rd International Summer School on Advanced Functional Programming, volume 1608 of LNCS, pages 1-27. Springer-Verlag.
  5. Beeson, M. J. (1990). A computerized environment for learning algebra, trigonometry, and calculus. Journal of Artificial Intelligence and Education, 1:65-76.
  6. BorovanskÉ, P., Kirchner, C., Kirchner, H., and Ringeissen, C. (2001). Rewriting with strategies in ELAN: A functional semantics. International Journal of Foundations of Computer Science, 12(1):69-95.
  7. Chaachoua et al., H. (2004). Aplusix, a learning environment for algebra, actual use and benefits. In ICME 2004: 10th International Congress on Mathematical Education. Retrieved from http://www.itd.cnr. it/telma/papers.php, May 2008.
  8. Cohen, A., Cuypers, H., Reinaldo Barreiro, E., and Sterk, H. (2003). Interactive mathematical documents on the web. In Algebra, Geometry and Software Systems, pages 289-306. Springer-Verlag.
  9. Gerdes, A., Heeren, B., Jeuring, J., and Stuurman, S. (2008). Feedback services for exercise assistants. In Remenyi, D., editor, The Proceedings of the 7th European Conference on e-Learning, pages 402-410. Academic Publishing Limited.
  10. Heeren, B. and Jeuring, J. (2008). Recognizing strategies. In Middeldorp, A., editor, WRS 2008: Reduction Strategies in Rewriting and Programming, 8th International Workshop.
  11. Heeren, B., Jeuring, J., Leeuwen, A. v., and Gerdes, A. (2008). Specifying strategies for exercises. In MKM 2008: Mathematical Knowledge management, volume 5144 of LNAI, pages 430-445. Springer-Verlag.
  12. Hong, J. (2004). Guided programming and automated error analysis in an intelligent Prolog tutor. International Journal on Human-Computer Studies., 61(4):505- 534.
  13. Hutton, G. (2007). Programming in Haskell. Cambridge University Press.
  14. Johnson, W. L. and Soloway, E. (1985). Proust: Knowledge-based program understanding. IEEE Transactions on Software Engineering, 11(3):267- 275.
  15. Kölling, M., Quig, B., Patterson, A., and Rosenberg, J. (2003). The BlueJ system and its pedagogy. Journal of Computer Science Education, Special issue on Learning and Teaching Object Technology, 13(4).
  16. Kumar, A. N. (2008). The effect of using problem-solving software tutors on the self-confidence of female students. In SIGCSE 2008: Proceedings of the 39th SIGCSE technical symposium on Computer science education, pages 523-527. ACM.
  17. L ópez, N., Nún˜ez, M., Rodríguez, I., and Rubio, F. (2002). WHAT: Web-based Haskell adaptive tutor. In AIMSA 2002: Proceedings of the 10th International Conference on Artificial Intelligence: Methodology, Systems, and Applications, pages 71-80. Springer-Verlag.
  18. Melis, E., Andrès, E., Goguadze, G., Libbrecht, P., Pollet, M., and Ullrich, C. (2001). ACTIVEMATH: a generic and adaptive web-based learning environment. International Journal of Artificial Intelligence in Education, 12.
  19. Merriënboer, J. J. v., Jelsma, O., and Paas, F. G. (1992). Training for reflective expertise: A four-component instructional design model for complex cognitive skills. Educational Technology, Research and Development, 40(2):23-43.
  20. Meyer, B. (1992). Eiffel: The Language. Prentice Hall International.
  21. Mory, E. (2003). Feedback research revisited. In Jonassen, D., editor, Handbook of research for educational communications and technology.
  22. Odekirk-Hash, E. and Zachary, J. L. (2001). Automated feedback on programs means students need less help from teachers. In SIGCSE 2001: Proceedings of the 32nd SIGCSE technical symposium on Computer Science Education, pages 55-59. ACM.
  23. Peyton Jones et al., S. (2003). Haskell 98, Language and Libraries. The Revised Report. Cambridge University Press. A special issue of the Journal of Functional Programming, see also
  24. Pillay, N. (2003). Developing intelligent programming tutors for novice programmers. SIGCSE Bull., 35(2):78-82.
  25. Proulx, V. K. (2000). Programming patterns and design patterns in the introductory computer science course. In SIGCSE 2000: Proceedings of the 31st SIGCSE technical symposium on Computer science education, pages 80-84. ACM.
  26. Soloway, E. (1985). From problems to programs via plans: the content and structure of knowledge for introductory LISP programming. Journal of Educational Computing Research, 1(2):157-172.
  27. Sykes, E. and Franek, F. (2004). A prototype for an intelligent tutoring system for students learning to program in Java. Advanced Technology for Learning, 1(1).
  28. Visser, E., Benaissa, Z.-e.-A., and Tolmach, A. (1998). Building program optimizers with rewriting strategies. In ICFP 1998: International Conference on Functional Programming, pages 13-26.
  29. Xu, S. and Chee, Y. S. (2003). Transformation-based diagnosis of student programs for programming tutoring systems. IEEE Transansactions on Software Engineering, 29(4):360-384.

Paper Citation

in Harvard Style

Gerdes A., Heeren B. and Jeuring J. (2009). CONSTRUCTING STRATEGIES FOR PROGRAMMING . In Proceedings of the First International Conference on Computer Supported Education - Volume 1: CSEDU, ISBN 978-989-8111-82-1, pages 65-72. DOI: 10.5220/0001973500650072

in Bibtex Style

author={Alex Gerdes and Bastiaan Heeren and Johan Jeuring},
booktitle={Proceedings of the First International Conference on Computer Supported Education - Volume 1: CSEDU,},

in EndNote Style

JO - Proceedings of the First International Conference on Computer Supported Education - Volume 1: CSEDU,
SN - 978-989-8111-82-1
AU - Gerdes A.
AU - Heeren B.
AU - Jeuring J.
PY - 2009
SP - 65
EP - 72
DO - 10.5220/0001973500650072