Diagnóstico baseado em modelos num sistema tutor inteligente para programação com padrões pedagógicos - Delgado, Karina Valdivia (2005)
Tutores inteligentes são sistemas computacionais de ensino/aprendizagem que empregam técnicas de Inteligência Artificial (IA) com o objetivo de promover o aprendizado individualizado. Um dos aspectos centrais de um sistema tutor para o aprendizado de programação é a depuração do programa construído pelo aluno. O resultado desta depuração serve para guiar o sistema tutor em suas futuras decisões instrucionais, enquanto o processo de depuração em si pode ser explorado para promover a aprendizagem. Ou seja, num processo interativo de depuração, é possível fazer com que o aluno aprenda detectando e corrigindo seus próprios erros. Dentre as propostas de depuração automática de programas, a técnica de IA denominada Diagnóstico Baseado em Modelos (MBD), tem apresentado bons resultados para diagnosticar programas escritos por programadores experientes. Como é feito tradicionalmente para sistemas físicos, MBD analisa um modelo de um programa representado na forma de componentes e conexões, onde os componentes correspondem às estruturas lógicas da linguagem de programação e as conexões representam as constantes e os valores de variáveis. Apesar do sucesso de MBD para depuração de programas, nenhuma proposta foi feita incorporando essa técnica em sistemas tutores. Este trabalho propõe o desenvolvimento de um sistema de diagnóstico do tipo MBD para analisar programas de alunos de cursos introdutórios de programação. O trabalho estende trabalhos anteriores de depuração automática do tipo MBD para programadores experientes, para ser usado como ferramenta de suporte ao aprendizado de programação. O sistema de diagnóstico desenvolvido ProPAT_deBUG faz parte de um ambiente de programação com padrões, chamado ProPAT. Nessa ferramenta, enquanto o aluno edita um programa, ele pode acessar e inserir Padrões Elementares no programa com a intenção de satisfazer sub-metas de um dado problema. Após o programa ser compilado com sucesso, ele é testado para um conjunto de casos de teste e, em caso de falha, o sistema de diagnóstico é chamado para descobrir falhas lógicas funcionais e estruturais. Os Padrões Elementares usados pelo aluno na construção do programa são usados para a comunicação das hipóteses de falha.