An intelligent tutor for teaching/learning programming with model-based hierarchical diagnosis techniques

  • Wellington R. Pinheiro USP
  • Leliane N. de Barros USP

Abstract


Model based diagnosis from Artificial Intelligence is a technique that has been used to detect faulty components in physical systems as well as faults in software systems. Although this approach is useful to help experienced programmers to detect faults in theirs programs, it must be adapted to be used with novice programmers. In this papers, we show an approach to automatic debugging that explores abstract components (functions, procedures or elementary patterns) to perform an hierarchical program diagnose. This way, the hypotheses of failure are communicated to the student at each abstract level, increasing his opportunity of learning.

References

Barros, L. N., Mota, A. P. S., Delgado, K. V., and Matsumoto, P. M. (2005). ”A tool for programming learning with pedagogical patterns”. In eclipse ’05: Proc. of the 2005 OOPSLA workshop on Eclipse technology eXchange. ACM Press.

Benjamins, R. (1993). Problem Solving Methods for Diagnosis. PhD thesis, University of Amsterdam.

Bergin, J. (2004). ”Patterns for selection”, [link]. Acessado em: 08/06/2009.

Chittaro, L. and Ranon, R. (2004). ”Hierarchical model-based diagnosis based on structural abstraction”. Artificial Intelligence, 155(1-2):147–182.

de Kleer, J. and Williams, B. C. (1987). ”Diagnosing multiple faults”. Artificial Intelligence, 32(1):97–130.

Delgado, K. V. (2005). Diagnóstico baseado em modelos num sistema tutor inteligente para programaçãoo com padrões pedagógicos. Dissertação de mestrado, Instituto de Matemática e Estatística.

Johnson, W. L. and Soloway, E. (1984). ”PROUST: Knowledge-based program understanding”. In ICSE ’84: Proc. of the 7th intl. conference on Software engineering, pages 369–380, Piscataway, NJ, USA. IEEE Press.

Mateis, C., Stumptner, M., and Wotawa, F. (2000). ”A value-based diagnosis model for java programs”. In In Proc. of the 11th Intl. Workshop on Principles of Diagnosis.

Mayer, W., Stumptner, M., Wieland, D., and Wotawa, F. (2002). ”Observations and results gained from the jade project”. In Proc. of the 13th Intl. Workshop on Principles of Diagnosis, Semmering, Austria.

Mozetič, I. (1991). ”hierarchical model-based diagnosis”. Intl. Journal of Man-Machine Studies, 35(3):329–362.

Porter, R. and Calder, P. (2003). ”A pattern-based problem-solving process for novice programmers”. In ACE ’03: Proc. of the 5th Australasian conf. on Computing education.

Reiter, R. (1987). ”A theory of diagnosis from first principles”. Artificial Intelligence, 32(1):57–95.

Wenger, E. (1987). Artificial intelligence and tutoring systems: Computational and cognitive approaches to the communication of knowledge. Morgan Kaufmann Press.

Winslow, L. E. (1996). ”Programming pedagogy – a psychological overview”. SIGCSE Bull., 28(3):17–22.
Published
2009-07-20
PINHEIRO, Wellington R.; BARROS, Leliane N. de. An intelligent tutor for teaching/learning programming with model-based hierarchical diagnosis techniques. In: NATIONAL MEETING ON ARTIFICIAL AND COMPUTATIONAL INTELLIGENCE (ENIAC), 7. , 2009, Bento Gonçalves/RS. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2009 . p. 462-471. ISSN 2763-9061.