Um tutor inteligente para o ensino/aprendizado de programação com técnicas de diagnóstico hierárquico baseado em modelos

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

Resumo


Diagnóstico baseado em modelos é uma técnica de Inteligência Artificial usada para detectar componentes falhos em dispositivos físicos bem como, falhas em sistemas de software. Embora essa abordagem possa auxiliar programadores experientes a encontrar falhas em seus programas, para ser usada por aprendizes de programação ela precisa ser adaptada. Nesse artigo, apresentamos uma abordagem para depuração automática que explora a idéia de componentes abstratos (funções, procedimentos ou padrões elementares) para fazer o diagnóstico de programas de forma hierárquica. Assim, as hipóteses de falha são comunicadas ao aluno em cada nível de abstração, aumentando as suas oportunidades de aprendizado.

Referências

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.
Publicado
20/07/2009
PINHEIRO, Wellington R.; BARROS, Leliane N. de. Um tutor inteligente para o ensino/aprendizado de programação com técnicas de diagnóstico hierárquico baseado em modelos. In: ENCONTRO NACIONAL DE INTELIGÊNCIA ARTIFICIAL E COMPUTACIONAL (ENIAC), 7. , 2009, Bento Gonçalves/RS. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2009 . p. 462-471. ISSN 2763-9061.