SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
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 2009



ENIA, 24 de julho de 2009                                                               Slide: 1/22
Introdu¸˜o
       ca                    Fundamentos             Solu¸˜o
                                                         ca               Conclus˜es
                                                                                 o

Conceitos Gerais


Sistema 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
Introdu¸˜o
       ca                    Fundamentos             Solu¸˜o
                                                         ca               Conclus˜es
                                                                                 o

Conceitos Gerais


Sistema 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
Introdu¸˜o
       ca                    Fundamentos            Solu¸˜o
                                                        ca                 Conclus˜es
                                                                                  o

Conceitos Gerais


ITS 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
Introdu¸˜o
       ca                         Fundamentos                    Solu¸˜o
                                                                     ca                       Conclus˜es
                                                                                                     o

Conceitos Gerais


Diagn´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
Introdu¸˜o
       ca                    Fundamentos     Solu¸˜o
                                                 ca    Conclus˜es
                                                              o

Conceitos Gerais


Diagn´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
Introdu¸˜o
       ca                    Fundamentos              Solu¸˜o
                                                          ca               Conclus˜es
                                                                                  o

Conceitos Gerais

Depura¸˜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
Introdu¸˜o
       ca                    Fundamentos   Solu¸˜o
                                               ca    Conclus˜es
                                                            o

Conceitos Gerais


Depura¸˜o de Programas Baseada em Modelo
      ca




 ENIA, 24 de julho de 2009                           Slide: 7/22
Introdu¸˜o
       ca                    Fundamentos              Solu¸˜o
                                                          ca               Conclus˜es
                                                                                  o

Conceitos Gerais


Limita¸˜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
Introdu¸˜o
       ca                    Fundamentos            Solu¸˜o
                                                        ca                 Conclus˜es
                                                                                  o

Objetivo


Proposta

     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
Introdu¸˜o
       ca                         Fundamentos               Solu¸˜o
                                                                ca                   Conclus˜es
                                                                                            o

Objetivo


Id´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
Introdu¸˜o
       ca                         Fundamentos               Solu¸˜o
                                                                ca                   Conclus˜es
                                                                                            o

Objetivo


Id´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
Introdu¸˜o
       ca                              Fundamentos                          Solu¸˜o
                                                                                ca                      Conclus˜es
                                                                                                               o

MBD


Modelos 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 )=12

ENIA, 24 de julho de 2009                                                                               Slide: 11/22
Introdu¸˜o
       ca                   Fundamentos               Solu¸˜o
                                                          ca               Conclus˜es
                                                                                  o

HMBD


Diagn´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                                              ca




ENIA, 24 de julho de 2009                                                  Slide: 12/22
Introdu¸˜o
       ca                              Fundamentos                             Solu¸˜o
                                                                                   ca                       Conclus˜es
                                                                                                                   o

HMBD


Modelos 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
Introdu¸˜o
       ca                   Fundamentos             Solu¸˜o
                                                        ca                 Conclus˜es
                                                                                  o

HMBD

´
Arvore de Abstra¸˜es
                co




                                 Suposi¸˜o de subsistemas independentes.
                                       ca


ENIA, 24 de julho de 2009                                                  Slide: 14/22
Introdu¸˜o
       ca                              Fundamentos                  Solu¸˜o
                                                                        ca                      Conclus˜es
                                                                                                       o

HMBD


Comportamento 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
Introdu¸˜o
       ca                   Fundamentos            Solu¸˜o
                                                       ca               Conclus˜es
                                                                               o

HMBD


Abordagem 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                                ıvel



ENIA, 24 de julho de 2009                                              Slide: 16/22
Introdu¸˜o
       ca                   Fundamentos   Solu¸˜o
                                              ca    Conclus˜es
                                                           o

HMBD


Exemplo do HMBD




ENIA, 24 de julho de 2009                           Slide: 17/22
Introdu¸˜o
       ca                   Fundamentos   Solu¸˜o
                                              ca    Conclus˜es
                                                           o

HMBD


Exemplo do HMBD




ENIA, 24 de julho de 2009                           Slide: 17/22
Introdu¸˜o
       ca                   Fundamentos   Solu¸˜o
                                              ca    Conclus˜es
                                                           o

HMBD


Exemplo do HMBD




ENIA, 24 de julho de 2009                           Slide: 17/22
Introdu¸˜o
       ca                   Fundamentos   Solu¸˜o
                                              ca    Conclus˜es
                                                           o

HMBD


Exemplo do HMBD




ENIA, 24 de julho de 2009                           Slide: 17/22
Introdu¸˜o
       ca                             Fundamentos                              Solu¸˜o
                                                                                   ca         Conclus˜es
                                                                                                     o

MBSD+HMBD=HMBSD


Exemplo 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                ca
ENIA, 24 de julho de 2009                                                                     Slide: 18/22
Introdu¸˜o
       ca                                                  Fundamentos                                                        Solu¸˜o
                                                                                                                                  ca                                                   Conclus˜es
                                                                                                                                                                                              o

MBSD+HMBD=HMBSD


Modelos 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
Introdu¸˜o
       ca                    Fundamentos               Solu¸˜o
                                                           ca                    Conclus˜es
                                                                                        o




Conclus˜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       e

ENIA, 24 de julho de 2009                                                        Slide: 20/22
Introdu¸˜o
       ca                        Fundamentos                     Solu¸˜o
                                                                     ca                        Conclus˜es
                                                                                                      o




Bibliografia

             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
Introdu¸˜o
       ca                         Fundamentos                    Solu¸˜o
                                                                     ca                 Conclus˜es
                                                                                               o




Bibliografia


             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

Contenu connexe

En vedette (9)

Screen shots
Screen shotsScreen shots
Screen shots
 
Prognoz data portal essentials 26.03.2013
Prognoz data portal essentials 26.03.2013Prognoz data portal essentials 26.03.2013
Prognoz data portal essentials 26.03.2013
 
Group 2 team no
Group 2   team noGroup 2   team no
Group 2 team no
 
Paper-XVI – A: English Language Teaching -2
Paper-XVI – A: English Language Teaching -2Paper-XVI – A: English Language Teaching -2
Paper-XVI – A: English Language Teaching -2
 
The New Kingmakers
The New KingmakersThe New Kingmakers
The New Kingmakers
 
Trade Deflection Creation and Diversion
Trade   Deflection Creation and DiversionTrade   Deflection Creation and Diversion
Trade Deflection Creation and Diversion
 
Qué queremos cambiar del colegio mariana
Qué queremos cambiar del colegio marianaQué queremos cambiar del colegio mariana
Qué queremos cambiar del colegio mariana
 
Tttttttttttttt
TtttttttttttttTttttttttttttt
Tttttttttttttt
 
Resepi kuew teow kungfu
Resepi kuew teow kungfuResepi kuew teow kungfu
Resepi kuew teow kungfu
 

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

Aveiro requisitos modelagem
Aveiro requisitos modelagemAveiro requisitos modelagem
Aveiro requisitos modelagem
Aline Cross
 
Marta Maia na FAAP
Marta Maia na FAAPMarta Maia na FAAP
Marta Maia na FAAP
natakell
 
Tecnologias digitais e educação
Tecnologias  digitais  e educaçãoTecnologias  digitais  e educação
Tecnologias digitais e educação
simonefatima
 
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
TestingUy
 
Utilizando pbl no ensino de computação ubíqua
Utilizando pbl no ensino de computação ubíquaUtilizando pbl no ensino de computação ubíqua
Utilizando pbl no ensino de computação ubíqua
Elaine Cecília Gatto
 
Apostila de algoritmo e programação
Apostila de algoritmo e programaçãoApostila de algoritmo e programação
Apostila de algoritmo e programação
Thiago Marques
 

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

ENSINO DE PROGRAMAÇÃO DE COMPUTADORES: UMA PROPOSTA DE ABORDAGEM PRÁTICA BASE...
ENSINO DE PROGRAMAÇÃO DE COMPUTADORES: UMA PROPOSTA DE ABORDAGEM PRÁTICA BASE...ENSINO DE PROGRAMAÇÃO DE COMPUTADORES: UMA PROPOSTA DE ABORDAGEM PRÁTICA BASE...
ENSINO DE PROGRAMAÇÃO DE COMPUTADORES: UMA PROPOSTA DE ABORDAGEM PRÁTICA BASE...
 
Wei utilizando pbl no ensino de computação ubíqua
Wei   utilizando pbl no ensino de computação ubíquaWei   utilizando pbl no ensino de computação ubíqua
Wei utilizando pbl no ensino de computação ubíqua
 
APRESENTAÇÃO DO PROFESSOR - By Prof. Cloves Rocha
APRESENTAÇÃO DO PROFESSOR - By Prof. Cloves RochaAPRESENTAÇÃO DO PROFESSOR - By Prof. Cloves Rocha
APRESENTAÇÃO DO PROFESSOR - By Prof. Cloves Rocha
 
Software Educativo e a Educação Matemática
Software Educativo e a Educação MatemáticaSoftware Educativo e a Educação Matemática
Software Educativo e a Educação Matemática
 
Aveiro requisitos modelagem
Aveiro requisitos modelagemAveiro requisitos modelagem
Aveiro requisitos modelagem
 
Aprendizagem Imersiva - PUC-PR - 2024-02-06
Aprendizagem Imersiva - PUC-PR - 2024-02-06Aprendizagem Imersiva - PUC-PR - 2024-02-06
Aprendizagem Imersiva - PUC-PR - 2024-02-06
 
Plano de desenvolvimento da prática iii equipe danielle natividade
Plano de desenvolvimento da prática iii equipe danielle natividadePlano de desenvolvimento da prática iii equipe danielle natividade
Plano de desenvolvimento da prática iii equipe danielle natividade
 
Software educativo: Uma ferramenta a ser Explorada!
Software educativo: Uma ferramenta a ser Explorada! Software educativo: Uma ferramenta a ser Explorada!
Software educativo: Uma ferramenta a ser Explorada!
 
Usando Dojos de Programação para o Ensino de TDD
Usando Dojos de Programação para o Ensino de TDDUsando Dojos de Programação para o Ensino de TDD
Usando Dojos de Programação para o Ensino de TDD
 
Aula dia 26/03
Aula dia 26/03Aula dia 26/03
Aula dia 26/03
 
Marta Maia na FAAP
Marta Maia na FAAPMarta Maia na FAAP
Marta Maia na FAAP
 
Algoritmos e-programacao-apostila-completa
Algoritmos e-programacao-apostila-completaAlgoritmos e-programacao-apostila-completa
Algoritmos e-programacao-apostila-completa
 
Tecnologias digitais e educação
Tecnologias  digitais  e educaçãoTecnologias  digitais  e educação
Tecnologias digitais e educação
 
Tecnologias digitais e educação
Tecnologias  digitais  e educaçãoTecnologias  digitais  e educação
Tecnologias digitais e educação
 
Aula TDE dia 26 de Março
Aula TDE dia 26 de MarçoAula TDE dia 26 de Março
Aula TDE dia 26 de Março
 
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
 
Plano de ensino de Softw
Plano de ensino de SoftwPlano de ensino de Softw
Plano de ensino de Softw
 
Utilizando pbl no ensino de computação ubíqua
Utilizando pbl no ensino de computação ubíquaUtilizando pbl no ensino de computação ubíqua
Utilizando pbl no ensino de computação ubíqua
 
algoritmos e programacao apostila completa
 algoritmos e programacao apostila completa algoritmos e programacao apostila completa
algoritmos e programacao apostila completa
 
Apostila de algoritmo e programação
Apostila de algoritmo e programaçãoApostila de algoritmo e programação
Apostila de algoritmo e programação
 

Dernier

Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
lenapinto
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 

Dernier (20)

Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
 
classe gramatical Substantivo apresentação..pptx
classe gramatical Substantivo apresentação..pptxclasse gramatical Substantivo apresentação..pptx
classe gramatical Substantivo apresentação..pptx
 
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.docGUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
GUIA DE APRENDIZAGEM 2024 9º A - História 1 BI.doc
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfAPRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfAula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Renascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRenascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDF
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 

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

  • 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 2009 ENIA, 24 de julho de 2009 Slide: 1/22
  • 2. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Conceitos Gerais Sistema 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. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Conceitos Gerais Sistema 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. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Conceitos Gerais ITS 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. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Conceitos Gerais Diagn´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. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Conceitos Gerais Diagn´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. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Conceitos Gerais Depura¸˜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. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Conceitos Gerais Depura¸˜o de Programas Baseada em Modelo ca ENIA, 24 de julho de 2009 Slide: 7/22
  • 9. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Conceitos Gerais Limita¸˜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. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Objetivo Proposta 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. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Objetivo Id´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. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Objetivo Id´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. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o MBD Modelos 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 )=12 ENIA, 24 de julho de 2009 Slide: 11/22
  • 14. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o HMBD Diagn´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 ca ENIA, 24 de julho de 2009 Slide: 12/22
  • 15. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o HMBD Modelos 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. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o HMBD ´ Arvore de Abstra¸˜es co Suposi¸˜o de subsistemas independentes. ca ENIA, 24 de julho de 2009 Slide: 14/22
  • 17. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o HMBD Comportamento 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. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o HMBD Abordagem 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 ıvel ENIA, 24 de julho de 2009 Slide: 16/22
  • 19. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o HMBD Exemplo do HMBD ENIA, 24 de julho de 2009 Slide: 17/22
  • 20. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o HMBD Exemplo do HMBD ENIA, 24 de julho de 2009 Slide: 17/22
  • 21. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o HMBD Exemplo do HMBD ENIA, 24 de julho de 2009 Slide: 17/22
  • 22. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o HMBD Exemplo do HMBD ENIA, 24 de julho de 2009 Slide: 17/22
  • 23. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o MBSD+HMBD=HMBSD Exemplo 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 ca ENIA, 24 de julho de 2009 Slide: 18/22
  • 24. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o MBSD+HMBD=HMBSD Modelos 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. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Conclus˜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 e ENIA, 24 de julho de 2009 Slide: 20/22
  • 26. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Bibliografia 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. Introdu¸˜o ca Fundamentos Solu¸˜o ca Conclus˜es o Bibliografia 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