Introdu¸˜o       ca                           Fundamentos                    Solu¸˜o                                      ...
Introdu¸˜o       ca                    Fundamentos             Solu¸˜o                                                    ...
Introdu¸˜o       ca                    Fundamentos             Solu¸˜o                                                    ...
Introdu¸˜o       ca                    Fundamentos            Solu¸˜o                                                     ...
Introdu¸˜o       ca                         Fundamentos                    Solu¸˜o                                        ...
Introdu¸˜o       ca                    Fundamentos     Solu¸˜o                                                 ca    Concl...
Introdu¸˜o       ca                    Fundamentos              Solu¸˜o                                                   ...
Introdu¸˜o       ca                    Fundamentos   Solu¸˜o                                               ca    Conclus˜e...
Introdu¸˜o       ca                    Fundamentos              Solu¸˜o                                                   ...
Introdu¸˜o       ca                    Fundamentos            Solu¸˜o                                                     ...
Introdu¸˜o       ca                         Fundamentos               Solu¸˜o                                             ...
Introdu¸˜o       ca                         Fundamentos               Solu¸˜o                                             ...
Introdu¸˜o       ca                              Fundamentos                          Solu¸˜o                             ...
Introdu¸˜o       ca                   Fundamentos               Solu¸˜o                                                   ...
Introdu¸˜o       ca                              Fundamentos                             Solu¸˜o                          ...
Introdu¸˜o       ca                   Fundamentos             Solu¸˜o                                                     ...
Introdu¸˜o       ca                              Fundamentos                  Solu¸˜o                                     ...
Introdu¸˜o       ca                   Fundamentos            Solu¸˜o                                                      ...
Introdu¸˜o       ca                   Fundamentos   Solu¸˜o                                              ca    Conclus˜es ...
Introdu¸˜o       ca                   Fundamentos   Solu¸˜o                                              ca    Conclus˜es ...
Introdu¸˜o       ca                   Fundamentos   Solu¸˜o                                              ca    Conclus˜es ...
Introdu¸˜o       ca                   Fundamentos   Solu¸˜o                                              ca    Conclus˜es ...
Introdu¸˜o       ca                             Fundamentos                              Solu¸˜o                          ...
Introdu¸˜o       ca                                                  Fundamentos                                          ...
Introdu¸˜o       ca                    Fundamentos               Solu¸˜o                                                  ...
Introdu¸˜o       ca                        Fundamentos                     Solu¸˜o                                        ...
Introdu¸˜o       ca                         Fundamentos                    Solu¸˜o                                        ...
Próximos SlideShares
Carregando em…5
×

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

265 visualizações

Publicada em

Apresentação feita no Encontro Nacional de Inteligência Artificial (ENIA) em 2009. Esse trabalho foi apresentado no evento pela professora Leliane Nunes de Barros.

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
265
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 1. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Um tutor inteligente para o ensino/aprendizado de programa¸˜o com t´cnicas de diagn´stico ca e o hier´rquico baseado em modelos a Wellington R. Pinheiro, Leliane N. de Barros Departamento de Ciˆncia da Computa¸˜o e ca Instituto de Matem´tica e Estat´ a ıstica - Universidade S˜o Paulo a {wrp,leliane}@ime.usp.br 24 de Julho de 2009ENIA, 24 de julho de 2009 Slide: 1/22
  2. 2. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oConceitos GeraisSistema Tutor Inteligente para Programa¸˜o ca Sistema Tutor Inteligente [Wenger, 1987] (ITS): ferramenta de aprendizado eletrˆnico que usa t´cnicas de Inteligˆncia Artificial. o e e Um ITS para programa¸˜o deve ser capaz de: ca propor problemas de programa¸˜o que promovam o aprendizado ca de um determinado aluno; detectar os poss´ ıveis erros de programa¸˜o do aluno ca (diagn´stico do programa do aluno); o comunicar as falhas ao aluno com a expectativa que ele aprenda durante esse processo; construir o modelo do aluno (representa¸˜o de seu ca conhecimento) com base no resultado do diagn´stico de o problemas. ENIA, 24 de julho de 2009 Slide: 2/22
  3. 3. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oConceitos GeraisSistema Tutor Inteligente para Programa¸˜o ca Sistema Tutor Inteligente [Wenger, 1987] (ITS): ferramenta de aprendizado eletrˆnico que usa t´cnicas de Inteligˆncia Artificial. o e e Um ITS para programa¸˜o deve ser capaz de: ca propor problemas de programa¸˜o que promovam o aprendizado ca de um determinado aluno; detectar os poss´ ıveis erros de programa¸˜o do aluno ca (diagn´stico do programa do aluno); o comunicar as falhas ao aluno com a expectativa que ele aprenda durante esse processo; construir o modelo do aluno (representa¸˜o de seu ca conhecimento) com base no resultado do diagn´stico de o problemas. ENIA, 24 de julho de 2009 Slide: 2/22
  4. 4. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oConceitos GeraisITS para Programa¸˜o ca PROUST [Johnson and Soloway, 1984] PROUST ´ o principal sistema encontrado na literatura capaz e de detectar erros de l´gica de programa¸˜o. o ca ProPAT: Tutor de Padr˜es Elementares [Delgado, 2005]. o Utiliza diagn´stico baseado em modelo para fazer depura¸˜o de o ca programas (MBSD). Funciona para um subconjunto de instru¸˜es da linguagem C. co Utiliza um plugin Eclipse como ambiente de programa¸˜o e ca interface de comunica¸˜o com o estudante. ca Permite que o aluno programe usando padr˜es elementares de o programa¸˜o. ca ENIA, 24 de julho de 2009 Slide: 3/22
  5. 5. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oConceitos GeraisDiagn´stico do Programa do Aluno o PROUST [Johnson and Soloway, 1984] ProPAT [Delgado, 2005] Caracter´ ısticas tenta construir o modelo do utiliza diagn´stico baseado em o estudante reconhecendo planos de modelo para detectar falhas no programa¸˜o e metas (inten¸oes) no ca c˜ programa do aluno; programa do aluno; n˜o requer uma biblioteca de planos a os planos de programa¸˜o e as ca e metas previamente definidos para metas para um determinado a solu¸˜o. ca conjunto de problemas s˜o a armazenados em uma biblioteca. Limita¸oes c˜ os planos da biblioteca podem n˜oa as falhas s˜o comunicadas ao aluno a cobrir todas as poss´ ıveis solu¸oes c˜ em termos de linhas do programa, o para um determinado problema; que fornece pouca ou nenhuma se nenhum plano for encontrado informa¸˜o para que o aluno ca n˜o ´ poss´ detectar as falhas no a e ıvel identifique os erros no programa. programa do aluno. ENIA, 24 de julho de 2009 Slide: 4/22
  6. 6. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oConceitos GeraisDiagn´stico Baseado em Modelo o ´ E uma t´cnica de Inteligˆncia e e Artificial usada para encontrar componentes falhos em sistemas f´ısicos. Raciocina sobre modelos que descrevem o comportamento correto dos sistemas. Envolve trˆs e subtarefas [Benjamins, 1993]: detec¸˜o de sintomas, ca gera¸˜o de hip´teses e ca o discrimina¸˜o de hip´teses. ca o ENIA, 24 de julho de 2009 Slide: 5/22
  7. 7. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oConceitos GeraisDepura¸˜o de Programas Baseada em Modelo ca[Mayer et al., 2002] Id´ia b´sica: fazer uma simula¸˜o passo do programa e a ca apontando as instru¸˜es que justificam as discrepˆncias co a observadas (i.e. a diferen¸as entre as sa´ c ıdas do programa e as sa´ ıdas esperadas (sintomas). Pode ser usada por um ITS para tentar entender as diferen¸as c entre as inten¸˜es do aluno e seu programa. co ENIA, 24 de julho de 2009 Slide: 6/22
  8. 8. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oConceitos GeraisDepura¸˜o de Programas Baseada em Modelo ca ENIA, 24 de julho de 2009 Slide: 7/22
  9. 9. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oConceitos GeraisLimita¸˜es do MBSD para o Aprendizado de Programa¸˜o co ca Informar as linhas do programa possivelmente falhas pode n˜oa ser o suficiente para que o aluno consiga corrigir seu programa. Mesmo para um programa pequeno, podem haver muitas hip´teses de falha para serem comunicadas (e discriminadas) ao o aluno, podendo deix´-lo cansado e confuso. a Um aprendiz de programa¸˜o n˜o tem conhecimento o ca a suficiente para fazer predi¸˜es a respeito do comportamento do co programa. ENIA, 24 de julho de 2009 Slide: 8/22
  10. 10. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oObjetivoProposta Estender a t´cnica MBSD com o uso do Diagn´stico Hier´rquico e o a Baseado em Modelos (diagn´stico hier´rquico), de maneira que: o a Falhas no programa do aluno possam ser encontradas em diferentes n´ ıveis de abstra¸˜o. ca Fun¸˜es, procedimentos e padr˜es elementares sejam vistos co o como componentes abstratos. A comunica¸˜o com o aluno possa ser feita em termos desses ca componentes abstratos , i.e. atrav´s de uma linguagem alto e n´ ıvel, e n˜o somente atrav´s de linhas do programa. a e Na m´dia, o tutor comunique um conjunto de hip´teses de e o falha menor. ENIA, 24 de julho de 2009 Slide: 9/22
  11. 11. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oObjetivoId´ia do MBSD + HMBD e Dar a oportunidade para que aluno entenda e corrija a falha do programa em diferentes n´ ıveis de abstra¸˜o. ca Ap´s serem encontradas as hip´teses de falha em um o o determinado n´ de abstra¸˜o, o aluno pode: ıvel ca fazer a discrimina¸˜o de hip´teses no n´ de abstra¸˜o atual ca o ıvel ca (fornecendo novas observa¸˜es a respeito do comportamento co esperado para o programa); depurar o programa em um n´ mais detalhado, substituindo ıvel um componente abstrato pelos seus componentes internos (refinamento); modificar o programa para tentar corrigir as falhas. ENIA, 24 de julho de 2009 Slide: 10/22
  12. 12. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oObjetivoId´ia do MBSD + HMBD e Dar a oportunidade para que aluno entenda e corrija a falha do programa em diferentes n´ ıveis de abstra¸˜o. ca Ap´s serem encontradas as hip´teses de falha em um o o determinado n´ de abstra¸˜o, o aluno pode: ıvel ca fazer a discrimina¸˜o de hip´teses no n´ de abstra¸˜o atual ca o ıvel ca (fornecendo novas observa¸˜es a respeito do comportamento co esperado para o programa); depurar o programa em um n´ mais detalhado, substituindo ıvel um componente abstrato pelos seus componentes internos (refinamento); modificar o programa para tentar corrigir as falhas. ENIA, 24 de julho de 2009 Slide: 10/22
  13. 13. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oMBDModelos do Circuito de Exemplo ok(C ) indica que o componente C est´ funcionando corretamente e; a ¬ok(C ) indica que o componente C est´ falho. a Modelo comportamental Modelo estrutural Observa¸oes c˜ in1 (M1 )=3 adder (x)∧ok(x)→add(in1 (x),in2 (x),out1 (x)) in2 (M1 )=2 multiplier (x)∧ok(x)→mult(in1 (x),in2 (x),out1 (x)) out1 (M1 )=in1 (A1 ) in1 (M2 )=2 multiplier (M1 ) out1 (M2 )=in2 (A1 ) in2 (M2 )=3 multiplier (M2 ) out1 (M2 )=in1 (A2 ) in1 (M3 )=2 multiplier (M3 ) out1 (M3 )=in2 (A2 ) in2 (M3 )=3 adder (A1 ) out1 (A1 )=10 adder (A2 ) out1 (A2 )=12ENIA, 24 de julho de 2009 Slide: 11/22
  14. 14. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oHMBDDiagn´stico Hier´rquico Baseado em Modelo (HMBD) o a Uma t´cnica usada para se obter melhor desempenho no e processo de diagn´stico. o A descri¸˜o do sistema ´ feita em diferentes n´ ca e ıveis de abstra¸˜o. ca Utiliza abstra¸˜es para representar componentes ou o co comportamento do sistema (abstra¸˜es estruturais e co comportamentais). Utiliza a t´cnica de MBD tradicional para encontrar a solu¸˜o. e caENIA, 24 de julho de 2009 Slide: 12/22
  15. 15. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oHMBDModelos com Abstra¸˜es co Modelos do n´ 1 ıvel Modelo estrutural interno Modelo comportamental Modelo estrutural externo nand−composition(NandComp,And,Inv )→ nand(C )∧ok(C )→ in1 (NandComp)=in1 (And)∧ ∃A,I [ nand−composition(C ,A,I )∧ in2 (NandComp)=in2 (And)∧ and−ok(A)∧inv−ok(I ) ] out1 (NA1 )=in1 (A2 ) out1 (And)=in1 (Inv )∧ and−ok(C )≡out1 (C )=1↔ out1 (NandComp)=out1 (Inv )) in1 (C )=1∧in2 (C )=1 nand−composition(NA1 ,A1 ,I1 ) nand(NA1 )ENIA, 24 de julho de 2009 Slide: 13/22
  16. 16. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oHMBD´Arvore de Abstra¸˜es co Suposi¸˜o de subsistemas independentes. caENIA, 24 de julho de 2009 Slide: 14/22
  17. 17. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oHMBDComportamento de um Componente Interno Modelos de um componente abstrato Um componente abstrato pode ser descrito pelos modelos: estrutural interno, estrutural externo e comportamental. Comportamento de um componente abstrato Um componente abs- O comportamento de Assim, o comporta- trato AC 1 e os compo- AC 1 ´ assumido como e mento de C 1, C 2 e C 3 nentes internos C 1, C 2 correto devem ser assumidos e C3 como corretos Esse comportamento pode ser descrito formalmente pelo seguinte axioma: ok(CA) → ok(C1 ) ∧ ok(C2 ) ∧ · · · ∧ ok(Cm ) (Axioma 1)ENIA, 24 de julho de 2009 Slide: 15/22
  18. 18. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oHMBDAbordagem top-down para fazer Diagn´stico Hier´rquico o a Algoritmo de Diagn´stico Hier´rquico [Mozetiˇ, 1991]: o a c 1 Verificar quais observa¸˜es dever˜o ser usadas em cada um dos co a n´ ıveis de abstra¸˜o. ca 2 Para cada n´ i, de l at´ 0, sendo l o n´ mais alto que n˜o ıvel e ıvel a esconde todas as conex˜es com observa¸˜es, encontrar o o co conjunto de hip´teses de falha utilizando algum algoritmo de o MBD. Para cada componente abstrato CA n˜o envolvido em a nenhuma hip´tese de falha no n´ i, usar o Axioma 1 para o o ıvel n´ i − 1. ıvel 3 Devolver as hip´teses de falhas encontradas no n´ 0. o ıvelENIA, 24 de julho de 2009 Slide: 16/22
  19. 19. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oHMBDExemplo do HMBDENIA, 24 de julho de 2009 Slide: 17/22
  20. 20. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oHMBDExemplo do HMBDENIA, 24 de julho de 2009 Slide: 17/22
  21. 21. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oHMBDExemplo do HMBDENIA, 24 de julho de 2009 Slide: 17/22
  22. 22. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oHMBDExemplo do HMBDENIA, 24 de julho de 2009 Slide: 17/22
  23. 23. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oMBSD+HMBD=HMBSDExemplo de Programa Problema da Multa: Dados trˆs inteiros: (1) o valor de uma presta¸˜o, (2) um inteiro 1 e ca ou 0 informando se deve ou n˜o ser aplicada uma multa de atraso e; (3) um inteiro 1 ou a 0 informando se deve ou n˜o ser aplicada a multa de mora. O valor da presta¸˜o deve a ca ser calculado da seguinte forma: se multa for igual a 0, decremente 25 da presta¸˜o, ca sen˜o, incremente 50. Al´m disso, caso o valor da mora seja 0, decremente 5 do valor a e obtido no c´lculo da multa, caso contr´rio, incremente 15. a a 1 public static void main(String[] args) { 2 int valor, multa, mora, valorTotal; 3 valor = Integer.parseInt(args[0]); 4 multa = Integer.parseInt(args[1]); 5 mora = Integer.parseInt(args[2]); 6 valorTotal = valor; + 7 if (multa == 1) + 8 valorTotal = valorTotal + 50; + 9 else valorTotal = valorTotal -25; ∗ 10 if (mora == 1) ∗ 11 valorTotal = valorTotal - 5; ∗ 12 else valorTotal = valorTotal + 15; 13 System.out.println(valorTotal); 14 } (+), (*) Linhas que fazem parte do padr˜o elementar Sele¸˜o Alternativa [Bergin, 1999]. a caENIA, 24 de julho de 2009 Slide: 18/22
  24. 24. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oMBSD+HMBD=HMBSDModelos do programa de exemplo a) Modelo abstrato valor = Integer.parse.. valor0 Assignment (C0) novoValor = valor novoValor3 Assignment (C3) multa = Integer.parse.. Seleção novoValor5 Alternativa Seleção Assignment (C1) multa1 System.out.println(... 1 [7-9] (CA1) A l t e r n a t i v a novoValor11 Assignment (C16) mora = Integer.parse.. 1 [10-12] (CA2) mora2 Assignment (C2) b) Modelo base Conditional - C5 valor = Integer.parse.. novoValor = valor valor0 novoValor3 C5 - Then Assignment (C0) Assignment (C3) novoValor’ novoValor + 50 aux6 novoValor += 50 multa = Integer.parse.. novoValor7 multa1 multa == 1 50 Adder (C6) Assignment (C7) Assignment (C1) aux4 1 Expr (C4) condResult mora = Integer.parse.. C5 - Else Assignment (C2) mora2 mora == 1 novoValor’’ novoValor - 25 aux8 novoValor += -25 novoValor9 -25 Adder (C8) Assignment (C9) 1 Expr (C10) aux10 novoValor5 Conditional - C11 C11 - Then novoValor’’’ novoValor - 5 novoValor += -5 aux12 novoValor13 -5 Adder (C12) Assignment (C13) System.out.println(... novoValor11 condResult Assignment (C16) C11 - Else novoValor’’’’ novoValor + 15 novoValor += 15 novoValor15 aux14 15 Adder (C14) Assignment (C15)ENIA, 24 de julho de 2009 Slide: 19/22
  25. 25. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oConclus˜es e trabalhos futuros o Nessa apresenta¸˜o mostramos: ca uma extens˜o do diagn´stico hier´rquico para encontrar falhas em a o a programas representados em diferentes n´ ıveis de abstra¸˜o, ca considerando componentes abstratos, tais como: fun¸˜es, co procedimentos e padr˜es elementares; o propriedades importantes para tornar o processo de depura¸˜o mais ca eficiente; que a abordagem hier´rquica para depurar programas de aprendizes a serve para comunicar as falhas em uma linguagem de alto n´ ıvel (considerando as abstra¸˜es). co Trabalhos futuros: Finalizar a implementa¸˜o do algoritmo de MBSD + HMBD; ca Fazer uma avalia¸˜o atrav´s de um experimento com alunos. ca eENIA, 24 de julho de 2009 Slide: 20/22
  26. 26. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oBibliografia Benjamins, R. (1993). Problem Solving Methods for Diagnosis. PhD thesis, University of Amsterdam. Bergin, J. (1999). Patterns for selection. http://csis.pace.edu/ bergin/patterns/Patternsv4.html. de Kleer, J. and Williams, B. C. (1987). Diagnosing multiple faults. Artif. Intell., 32(1):97–130. Delgado, K. V. (2005). Diagn´stico baseado em modelos num sistema tutor inteligente para programa¸˜o o ca com padr˜es pedag´gicos. o o Disserta¸˜o de mestrado, Instituto de Matem´tica e Estat´ ca a ıstica. Johnson, W. L. and Soloway, E. (1984). Proust: Knowledge-based program understanding. In ICSE ’84: Proc. of the 7th international conference on Software engineering, pages 369–380, Piscataway, NJ, USA. IEEE Press.ENIA, 24 de julho de 2009 Slide: 21/22
  27. 27. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es oBibliografia Mayer, W., Stumptner, M., Wieland, D., and Wotawa, F. (2002). Observations and results gained from the jade project. In Proc. of the 13th International Workshop on Principles of Diagnosis, Semmering, Austria. Mozetiˇ, I. (1991). c Hierarchical model-based diagnosis. Int. J. Man-Mach. Stud., 35(3):329–362. Reiter, R. (1987). A theory of diagnosis from first principles. Artif. Intell., 32(1):57–95. Wenger, E. (1987). Artificial intelligence and tutoring systems: Computational and cognitive approaches to the communication of knowledge. Morgan Kaufmann Press.ENIA, 24 de julho de 2009 Slide: 22/22

×