SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Destaque

Screen shots
Screen shotsScreen shots
Screen shotsjaheedm1
 
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.2013Andrey Mushchinkin
 
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 -2Parth Bhatt
 
The New Kingmakers
The New KingmakersThe New Kingmakers
The New Kingmakerssogrady
 
Qué queremos cambiar del colegio mariana
Qué queremos cambiar del colegio marianaQué queremos cambiar del colegio mariana
Qué queremos cambiar del colegio marianaMAEVIS
 
Tttttttttttttt
TtttttttttttttTttttttttttttt
TtttttttttttttVolt0987
 
Resepi kuew teow kungfu
Resepi kuew teow kungfuResepi kuew teow kungfu
Resepi kuew teow kungfuTanpa Nama
 

Destaque (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
 

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

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...João Henrique Berssanette
 
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íquaElaine Cecília Gatto
 
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 RochaCloves da 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áticaAdriana Sousa
 
Aveiro requisitos modelagem
Aveiro requisitos modelagemAveiro requisitos modelagem
Aveiro requisitos modelagemAline Cross
 
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-06Leonel Morgado
 
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 natividadeBruna Rafaela Alves Martins de Souza
 
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! Fabiana Zuliani
 
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 TDDRamiro Luz
 
Marta Maia na FAAP
Marta Maia na FAAPMarta Maia na FAAP
Marta Maia na FAAPnatakell
 
Algoritmos e-programacao-apostila-completa
Algoritmos e-programacao-apostila-completaAlgoritmos e-programacao-apostila-completa
Algoritmos e-programacao-apostila-completaAssis Alcantara
 
Tecnologias digitais e educação
Tecnologias  digitais  e educaçãoTecnologias  digitais  e educação
Tecnologias digitais e educaçãosimonefatima
 
Tecnologias digitais e educação
Tecnologias  digitais  e educaçãoTecnologias  digitais  e educação
Tecnologias digitais e educaçãosimonefatima
 
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çonairafabieli
 
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íquaElaine Cecília Gatto
 
algoritmos e programacao apostila completa
 algoritmos e programacao apostila completa algoritmos e programacao apostila completa
algoritmos e programacao apostila completauna
 
Apostila de algoritmo e programação
Apostila de algoritmo e programaçãoApostila de algoritmo e programação
Apostila de algoritmo e programaçãoThiago Marques
 

Semelhante a 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
 

Último

PERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptxPERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptxtchingando6
 
Apresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantilApresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantilMariaHelena293800
 
Atividade português 7 ano página 38 a 40
Atividade português 7 ano página 38 a 40Atividade português 7 ano página 38 a 40
Atividade português 7 ano página 38 a 40vitoriaalyce2011
 
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humano
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humanoSlide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humano
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humanoCoachClaumerson
 
Aproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividadeAproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividadeLigia Galvão
 
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdfTesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdfEditora
 
Evangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfEvangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfPastor Robson Colaço
 
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básicoPowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básicoPereira801
 
Atividade com a música Xote da Alegria - Falamansa
Atividade com a música Xote  da  Alegria    -   FalamansaAtividade com a música Xote  da  Alegria    -   Falamansa
Atividade com a música Xote da Alegria - FalamansaMary Alvarenga
 
ATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptxATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptxmairaviani
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfrarakey779
 
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfProjeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfBibliotecas Infante D. Henrique
 
Poema - Reciclar é preciso
Poema            -        Reciclar é precisoPoema            -        Reciclar é preciso
Poema - Reciclar é precisoMary Alvarenga
 
Conteúdo sobre a formação e expansão persa
Conteúdo sobre a formação e expansão persaConteúdo sobre a formação e expansão persa
Conteúdo sobre a formação e expansão persafelipescherner
 
Apresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao AssédioApresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao Assédioifbauab
 
Caderno de Estudo Orientado para Ensino Médio
Caderno de Estudo Orientado para Ensino MédioCaderno de Estudo Orientado para Ensino Médio
Caderno de Estudo Orientado para Ensino Médiorafaeloliveirafelici
 
Desastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessDesastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessRodrigoGonzlez461291
 
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdfARIANAMENDES11
 
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...cristianofiori1
 
Apresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoApresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoPedroFerreira53928
 

Último (20)

PERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptxPERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
 
Apresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantilApresentação sobre as etapas do desenvolvimento infantil
Apresentação sobre as etapas do desenvolvimento infantil
 
Atividade português 7 ano página 38 a 40
Atividade português 7 ano página 38 a 40Atividade português 7 ano página 38 a 40
Atividade português 7 ano página 38 a 40
 
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humano
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humanoSlide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humano
Slide Novo UNID 1 2023.pptx de crescimento e desenvolvimento humano
 
Aproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividadeAproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividade
 
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdfTesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
 
Evangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdfEvangelismo e Missões Contemporânea Cristã.pdf
Evangelismo e Missões Contemporânea Cristã.pdf
 
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básicoPowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
PowerPoint Folha de cálculo Excel 5 e 6 anos do ensino básico
 
Atividade com a música Xote da Alegria - Falamansa
Atividade com a música Xote  da  Alegria    -   FalamansaAtividade com a música Xote  da  Alegria    -   Falamansa
Atividade com a música Xote da Alegria - Falamansa
 
ATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptxATPCG 27.05 - Recomposição de aprendizagem.pptx
ATPCG 27.05 - Recomposição de aprendizagem.pptx
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdfProjeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
Projeto aLeR+ o Ambiente - Os animais são nossos amigos.pdf
 
Poema - Reciclar é preciso
Poema            -        Reciclar é precisoPoema            -        Reciclar é preciso
Poema - Reciclar é preciso
 
Conteúdo sobre a formação e expansão persa
Conteúdo sobre a formação e expansão persaConteúdo sobre a formação e expansão persa
Conteúdo sobre a formação e expansão persa
 
Apresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao AssédioApresentação Formação em Prevenção ao Assédio
Apresentação Formação em Prevenção ao Assédio
 
Caderno de Estudo Orientado para Ensino Médio
Caderno de Estudo Orientado para Ensino MédioCaderno de Estudo Orientado para Ensino Médio
Caderno de Estudo Orientado para Ensino Médio
 
Desastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessDesastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadess
 
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
04_GuiaDoCurso_Neurociência, Psicologia Positiva e Mindfulness.pdf
 
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
 
Apresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoApresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimento
 

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