autoexplc sistema tutor inteligente para auxÍlio … · obtenção do título de mestre em...

107
CLÁUDIO LUÍS VIEIRA OLIVEIRA AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO AO ENSINO DA LINGUAGEM “C” BASEADO NA APRENDIZAGEM POR AUTO-EXPLICAÇÃO DE EXEMPLOS PUC-CAMPINAS 2005

Upload: vuongtu

Post on 13-Feb-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

CLÁUDIO LUÍS VIEIRA OLIVEIRA

AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO AO

ENSINO DA LINGUAGEM “C” BASEADO NA APRENDIZAGEM POR AUTO-EXPLICAÇÃO DE

EXEMPLOS

PUC-CAMPINAS 2005

Page 2: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

CLÁUDIO LUÍS VIEIRA OLIVEIRA

AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO AO

ENSINO DA LINGUAGEM “C” BASEADO NA APRENDIZAGEM POR AUTO-EXPLICAÇÃO DE

EXEMPLOS

Dissertação apresentada como exigência para obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós-Graduação do Centro de Ciências Exatas, Ambientais e de Tecnologias, Pontifícia Universidade Católica de Campinas.

Orientador: Prof. Dr. Carlos Miguel Tobar Toledo

PUC-CAMPINAS 2005

Page 3: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

Ficha Catalográfica Elaborada pelo Sistema de Bibliotecas e Informação – SBI – PUC-Campinas

t006.3 Oliveira, Cláudio Luís VieiraO48a AutoExplC: sistema tutor inteligente para auxílio ao ensino da linguagem “C” baseado na aprendizagem por auto-explicação de exemplos / Cláudio Luís Vieira Oliveira. - Campinas: PUC-Campinas, 2005. 107p. Orientador: Carlos Miguel Tobar Toledo. Dissertação (mestrado) – Pontifícia Universidade Católica de Campinas, Centro de Ciências Exatas, Ambientais e de Tecnologias, Pós-Graduação em Informática. Inclui apêndices e bibliografia.

1. Inteligência artificial – Aplicações educacionais. 2. Inteligência artificial – Processamento de dados. 3. Preceptores – Processamento de dados. 4. Ensino gerenciado por computador. 5. Ensino individualizado – Processamento de dados. 6. C (Linguagem de programação de computador) I. Tobar, Carlos Miguel. II. Pontifícia Universidade Católica de Campinas. Centro de Ciências Exatas, Ambientais e de Tecnologias. Pós-Graduação em Sistemas de Computação. III. Título.

Page 4: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

i

Em memória dos meus pais, Manoel e

Maria Creyde, que sempre me

incentivaram e apoiaram na busca do

conhecimento.

Page 5: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

ii

AGRADECIMENTOS

Ao Prof. Dr. Carlos Miguel Tobar Toledo,

Orientador e incentivador dos meus trabalhos de pós-graduação no Centro de Ciências Exatas e

Tecnológicas da Pontifícia Universidade Católica de Campinas, pela constante motivação, apoio,

atenção e amizade.

Aos Prof. Dr. Ricardo Luís de Freitas, Prof. Dr. Juan Manuel Adán Coello e Prof Dr. João Luís

Garcia Rosa,

Pelo estímulo e importantes sugestões.

Page 6: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

iii

“E como, em toda a Galáxia, não descobriram

nada mais precioso do que a Mente,

incentivaram seu alvorecer por toda parte.

Tornaram-se lavradores nos campos de

estrelas; semearam e, vez por outra,

colheram.“

Arthur Charles Clarke

(1917-)

Page 7: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

iv

RESUMO OLIVEIRA, C.L.V. AutoExplC - Sistema Tutor Inteligente para auxílio ao ensino da

Linguagem “C” baseado na aprendizagem por auto-explicação de exemplos. Campinas,

2005. 107f. Dissertação (Mestrado) – Curso de Pós-Graduação em Sistemas de

Computação, Pontifícia Universidade Católica de Campinas. Campinas, 2005.

Os Sistemas Tutores Inteligentes (STI) têm auxiliado estudantes em diversos domínios,

tais como geometria, química e programação. Esses domínios são considerados ideais,

porque podem ser facilmente representados e também porque o tipo de interação entre o

estudante e o STI pode ser limitado a um conjunto restrito de lexemas, símbolos e

números. A proposta desta dissertação consiste em explorar a tecnologia de sistemas

inteligentes no contexto do suporte a explicações em um STI, em que se usa a auto-

explicação de exemplos para auxiliar no aprendizado da linguagem de programação “C”,

mais especificamente para os níveis iniciais de aprendizagem, focando o processamento

da língua natural e a classificação das explicações dos alunos. O ambiente proposto

apresenta exemplos de programas, previamente elaborados pelo professor, e solicita ao

aluno a explicação de trechos de código-fonte. Utilizando técnicas de entendimento

aproximado da língua natural, o sistema tenta reconhecer o conteúdo da explicação

gerada pelo aluno e, em seguida, envia o resultado a um módulo que procura classificar

as explicações como corretas, incorretas ou incompletas em relação ao contexto da

atividade proposta e, a partir disso, traça a estratégia de ensino para as etapas

subseqüentes.

Termos de indexação: inteligência artificial – aplicações educacionais, inteligência

artificial – processamento de dados, preceptores – processamento de dados, ensino

gerenciado por computador, ensino individualizado – processamento de dados, C

(linguagem de programação de computador).

Page 8: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

v

ABSTRACT OLIVEIRA, C.L.V. AutoExplC – An Intelligent Tutoring System to support “C” Language

learning through exploration of example self-explanation. Campinas, 2005. 107p. Thesis

(Master Degree) Post Graduation – Computer System, Pontifical Catholic University of

Campinas. Campinas, 2005.

Intelligent Tutoring Systems (ITS) have assisted students in several domains, such as

geometry, chemistry and programming. These knowledge areas are considered ideal,

because they can easily be represented and also because the type of interaction between

the student and the ITS can be limited to a restricted set of words, symbols and numbers.

The proposal of this thesis consists of exploring intelligent systems technology in the

context of supporting explanations in an ITS, that supports self-explanation of examples to

assist in the learning process of the “C” programming language for beginners. More

specifically, this work emphasizes natural language processing and the classification of

student’s explanations. The considered environment presents examples of programs,

previously elaborated by the teacher, and requests the student to explain pieces of source

code. Using techniques of approximate natural language understanding the system tries

to recognize the content of the explanation generated by the student and, after that, it

sends the result to a module that tries to classify the explanations as correct, incorrect or

incomplete according to the context of the proposed activity and, considering this, traces

the education strategy for the subsequent stages.

Index terms: artificial intelligence - educational applications, artificial intelligence - data

processing, tutors - data processing, computer aided learning, individual education - data

processing, C (computer programming language).

Page 9: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

vi

SUMÁRIO

RESUMO .............................................................................................................. IV

ABSTRACT ........................................................................................................... V

LISTA DE FIGURAS........................................................................................... VIII

LISTA DE TABELAS............................................................................................ IX

1. INTRODUÇÃO....................................................................................................1

2. REFERENCIAL TEÓRICO .................................................................................4

2.1. Auto-Explicação e Aprendizagem Através de Exemplos ...........................5

2.2. Sistemas Tutores Inteligentes (STI) .............................................................7 2.2.1. Modelo do Domínio....................................................................................9 2.2.2. Modelo do Estudante.................................................................................9 2.2.3. Modelo do Tutor ........................................................................................9 2.2.4. Ambiente de Aprendizado .......................................................................11

2.3. Representação do Conhecimento ..............................................................11 2.3.1. Representação Baseada em Regras.......................................................12 2.3.2. Lógica ......................................................................................................13 2.3.3. Redes Semânticas...................................................................................14 2.3.4. Frames ....................................................................................................15 2.3.5. Raciocínio Baseado em Casos................................................................16 2.3.6. Redes Bayesianas...................................................................................18

2.4. Processamento da Língua Natural .............................................................20 2.4.1. Análise Léxica .........................................................................................22 2.4.2. Análise Sintática ......................................................................................23 2.4.3. Análise Semântica...................................................................................24 2.4.4. Análise Semântica Latente ......................................................................26

3. MODELO PROPOSTO .....................................................................................28

3.1. Trabalhos Relacionados..............................................................................29

3.2. Modelo para o STI ........................................................................................31

3.3. Escolha da Forma de Representação do Conhecimento .........................33

3.4. Definição das Rotinas para Entendimento Aproximado da Língua Natural..............................................................................................................................34

3.5. Implementação .............................................................................................36 3.5.1. Modelo do Domínio..................................................................................37

Page 10: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

vii

3.5.2. Modelo do Estudante...............................................................................38 3.5.3. Interface Aluno-Engenho .........................................................................38 3.5.4. Engenho de Inferência.............................................................................38 3.5.5. Interface do Professor .............................................................................39

3.6. Funcionamento do STI Proposto................................................................40 3.6.1. Subsistema do Professor.........................................................................41 3.6.2. Subsistema do Aluno...............................................................................47

4. RESULTADOS .................................................................................................56

4.1. Avaliação Preliminar....................................................................................59

4.2. Avaliação Final .............................................................................................61

5. DISCUSSÃO.....................................................................................................63

5.1. Análise da Avaliação Preliminar .................................................................65

5.2. Análise da Avaliação Final ..........................................................................67 5.2.1 Análise das Respostas Erradas................................................................69 5.2.2. Avaliação das Respostas Incompletas ....................................................70 5.2.3. Avaliação das Respostas Corretas..........................................................73

6. CONCLUSÃO ...................................................................................................78

7. REFERÊNCIAS ................................................................................................82

APÊNDICES .........................................................................................................88

A. Estrutura das Relações..................................................................................89

B. Atividades Propostas para a Avaliação do STI............................................91

C. Explicações Utilizadas na Avaliação do STI ................................................93

Page 11: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

viii

LISTA DE FIGURAS Figura 1: Modelo tradicional de um Sistema Tutor Inteligente ................................8

Figura 2: Escolha das táticas de ensino................................................................10

Figura 3: Proposta para o STI AutoExplC .............................................................32

Figura 4: Proposta para as rotinas para entendimento aproximado da língua

natural ............................................................................................................36

Figura 5: Diagrama entidade-relacionamento dos modelos do STI ......................41

Figura 6: Janela inicial do subsistema do professor..............................................42

Figura 7: Cadastro do Exemplo.............................................................................42

Figura 8: Cadastro da Atividade............................................................................43

Figura 9: Conexão com a aplicação do aluno .......................................................47

Figura 10: Janela principal da aplicação do aluno ................................................48

Figura 11: Nós da Rede Bayesiana ......................................................................52

Figura 12: Cadastro dos pesos dos componentes da atividade proposta.............72

Figura 13: Componentes da explicação e respectivos pesos ...............................73

Page 12: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

ix

LISTA DE TABELAS Tabela 1: Armazenamento da estrutura “if-else” na relação Mapeador ............... 44

Tabela 2: Inclusão na relação Peso-Explicação ................................................... 46

Tabela 3: Extração dos radicais ............................................................................ 48

Tabela 4: Pré-etiquetagem dos radicais ............................................................... 49

Tabela 5: Resultado da pesquisa na relação Corpus ........................................... 50

Tabela 6: Mapeamento dos lexemas da explicação ............................................. 50

Tabela 7: Exemplo das faixas para classificação de uma explicação .................. 53

Tabela 8: Exemplo de um registro da relação Progresso ..................................... 54

Tabela 9: Avaliação Preliminar – Respostas Erradas ........................................... 59

Tabela 10: Problema da classificação de explicações sobre um único comando. 60

Tabela 11: Avaliação Final – Respostas Erradas ................................................. 61

Tabela 12: Exemplo da influência dos pesos dos nós .......................................... 64

Tabela 13: Algumas atividades propostas ............................................................ 66

Tabela 14: Etiquetagem dos lexemas que compõem a explicação ...................... 66

Tabela 15: Atuação do nó para identificação do contexto da explicação ............. 67

Tabela 16: Avaliação Final – Respostas Erradas do Nível 3 ................................ 69

Tabela 17: Explicação que foi classificada de forma equivocada ......................... 70

Tabela 18: Avaliação Final – Respostas Incompletas .......................................... 70

Tabela 19: Explicações incompletas classificadas como corretas ....................... 71

Tabela 20: Avaliação Final – Análise Corretas ..................................................... 73

Tabela 21: Explicações incorretamente classificadas pelo STI ............................ 74

Tabela 22: Continuação da Tabela 21 .................................................................. 75

Tabela 23: Continuação da Tabela 22 .................................................................. 76

Tabela 24: Síntese dos resultados obtidos na avaliação final em relação ao Nível 3 ...................................................................................................... 80

Page 13: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

1. INTRODUÇÃO

Page 14: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

2

A proposta desta dissertação consiste em explorar a tecnologia de

sistemas inteligentes no contexto do suporte a explicações em um Sistema Tutor

Inteligente (STI), em que se usa a auto-explicação de exemplos para auxiliar no

aprendizado da linguagem de programação “C”.A auto-explicação de exemplos

pode ser aplicada a domínios bem estruturados (SCHWORM; RENKL, 2002).

Esta proposta foca a sua aplicação no aprendizado de linguagens de

programação que, segundo Weber e colegas (1996), é considerada uma tarefa

estruturada e de grande complexidade, exigindo a presença quase constante de

um tutor, humano ou não, auxiliando e monitorando o aprendizado.

Conhecer uma linguagem de programação não é o mesmo que saber

programar. Ainda, segundo Weber e colegas (1996), o aprendizado de

programação deve incluir as seguintes habilidades: a) resolução de problemas; b)

conhecimento da sintaxe de uma determinada linguagem de programação; c)

aprendizado de lógica de programação; d) utilização de um ambiente de

programação, teste e depuração para os programas criados. No escopo deste

trabalho, auto-explicações permitem desenvolver as três primeiras habilidades.

Essas habilidades envolvem um certo grau de dificuldade. Porém,

existe um consenso que a maior dificuldade relaciona-se à habilidade de resolver

problemas dentro do contexto computacional, pois, mesmo que uma pessoa saiba

resolver muito bem um problema na vida real, por exemplo uma equação do

segundo grau, ela poderá encontrar grandes dificuldades em representá-lo

computacionalmente (WEBER et al, 1996).

A grande vantagem da aplicação da estratégia de auto-explicação de

exemplos dentro do domínio do aprendizado de programação está justamente

Page 15: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

3

fundamentada sobre a resolução de problemas para a aquisição de habilidades

meta-cognitivas (CHI et al, 1989).

O STI desenvolvido auxilia no ensino da linguagem de programação

“C”, mais especificamente para os níveis iniciais de aprendizagem, focando o

processamento da língua natural e a classificação das explicações dos alunos. O

ambiente apresenta exemplos de programas, elaborados pelo professor, e solicita

ao aluno a explicação dos mesmos. O sistema tenta reconhecer respostas

corretas, incorretas ou incompletas e, a partir das mesmas, traça a estratégia de

aprendizado para as etapas subseqüentes.

Esta dissertação encontra-se organizada do seguinte modo: o Capítulo

2 apresenta os fundamentos teóricos estudados e que constituem os

fundamentos para a definição do STI objeto do trabalho. No Capítulo 3 é

apresentado o modelo proposto para o STI, precedido pela apresentação de

alguns tutores que influenciaram essa proposta.

O Capítulo 4 trata do processo adotado para realizar a avaliação da

implementação do STI proposto, considerando os aspectos de velocidade de

execução e reconhecimento adequado das explicações, enquanto o Capítulo 5

aborda a discussão dos resultados obtidos.

A conclusão da presente dissertação é o objeto do Capitulo 6, no qual

são abordadas algumas perspectivas para futuros trabalhos.

Page 16: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

2. REFERENCIAL TEÓRICO

Page 17: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

5

O referencial teórico desta dissertação consiste na revisão bibliografia,

que para fins de estudo, encontra-se subdividida nos seguintes tópicos: auto-

explicação, sistemas tutores inteligentes, representação do conhecimento e

entendimento de língua natural.

2.1. Auto-Explicação e Aprendizagem Através de Exemplos

Chi e colegas (1989, 1994) consideram que a auto-explicação é

bastante positiva para o aprendizado, pois:

• O aprendizado é um processo construtivo, no qual o aluno converte

palavras e exemplos, gerados por um professor ou apresentados

através de um texto, em habilidades, através da resolução de

problemas.

• A explicação é um mecanismo de estudo que permite ao aluno criar

inferências e explicar as condições e conseqüências de cada passo de

um exemplo, além de tornar possível, a aplicação de princípios e

definições dos conceitos empregados com o objetivo de justificá-los.

• O aprendizado envolve a integração de novas informações ao

conhecimento já existente. Gerar explicações a si mesmo (auto-

explicação) facilita este processo de integração.

• A maior parte dos alunos escreve novos programas por analogia a

programas exemplo. O sucesso desta prática está intimamente

relacionado ao grau de entendimento que estes alunos obtiveram do

exemplo. O aprendizado e o entendimento do exemplo é obtido através

das explicações que os alunos geram enquanto estudam. A auto-

Page 18: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

6

explicação é importante e necessária, dentro deste processo, porque

muitos exemplos apresentam seqüências de ações não explicadas.

Como conseqüência, motivar o aluno para produzir explicações

espontâneas sobre um tópico abordado produzirá um melhor aprendizado em

relação à leitura de um texto ou mesmo a uma explicação de terceiros. Outro

benefício deste método está relacionado ao encorajamento dos processos

cognitivos que estimulam o aprendizado (CONATI; VANLEHN, 1999).

Os processos de aprendizado são freqüentemente considerados em

termos de compreensão, aquisição de habilidades, ou ambos. No caso da

compreensão, a informação declarativa que deverá ser entendida está

relacionada a algum conhecimento que já está armazenado e organizado na

memória. Desta forma, podemos entender que a compreensão consiste na

instanciação de um conhecimento existente (CHI et al, 1994).

O entendimento pleno só é obtido quando o aluno é capaz de

processar uma porção não explicada de um exemplo, através da formulação de

conclusões e a criação de inferências a partir da informação apresentada. Para

fazer isso, o aluno precisa gerar explicações.

O aprendizado através de exemplos é considerado um método natural

e comum para a obtenção de novos conhecimentos. Freqüentemente,

professores recorrem a exemplos para ilustrar um tópico abordado de forma a

permitir ao aluno fixar o conhecimento transmitido (CONATI et al, 1997).

Porém, o emprego de exemplos para o aprendizado não garante

eficácia. O grau de eficácia está fortemente associado à maneira que o estudante

explica a si mesmo os passos para a solução do exemplo, ou em outras palavras,

o quanto o estudante aplica a habilidade meta-cognitiva da auto-explicação.

Page 19: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

7

2.2. Sistemas Tutores Inteligentes (STI)

O termo “Sistema Tutor Inteligente” é aplicado a programas que são

projetados para o ensino e que fazem uso de técnicas de Inteligência Artificial

(FREEDMAN et al, 2000). O objetivo principal destes programas consiste em

complementar ou, até mesmo, substituir um tutor humano, com a vantagem de

acompanhar o aluno em cada passo de aprendizado. Informações sobre as

dificuldades específicas ou a velocidade de aprendizagem compõem um modelo

de usuário, que reflete o conhecimento adquirido e a evolução frente ao

entendimento do domínio que está sendo estudado.

Os STIs podem ser considerados uma evolução dos tradicionais

sistemas CAI (Computer Aided Instruction), mas que, ao contrário desses, utilizam

técnicas de Inteligência Artificial e procuram gerar uma experiência individualizada

de aprendizagem para o estudante, simulando as interações entre um professor e

um aluno.

O processo ensino-aprendizado apresenta grande dependência da

interação e da adaptação, que são características típicas da inteligência humana,

apresentando grandes dificuldades e desafios na implementação de soluções

computacionais inteligentes. A maior parte dos projetos existentes não

implementam todas as funcionalidades propostas pelos trabalhos teóricos, sendo,

por essas razões, justificado investir no estudo tanto das técnicas de

planejamento como também de implementação desses sistemas (LUSTOSA;

ALVARENGA, 2004).

De acordo com Hall e Wood (1990), os STIs consistem de uma

composição interdisciplinar, sendo que o objetivo primário destes sistemas,

consiste na modelagem e na representação do conhecimento de um especialista

Page 20: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

8

humano, de modo a auxiliar a aprendizado do estudante através de processos

personalizados e interativos. Dentro do ambiente de um STI, procura-se não

apenas ensinar, mas maneiras de como ensinar. “Os STIs têm sido apresentados

como altamente eficientes para a melhora do desempenho e motivação dos

estudantes” (LIMA; ROSATELLI, 2003).

É importante salientar, neste momento, que a utilização dos STIs

trouxeram à tona algumas questões pedagógicas. As tecnologias que permitem

automatizar métodos tradicionais de ensino e aprendizagem têm também

auxiliado na criação de novos métodos além de redefinir metas educacionais

(MCARTHUR et al, 1993). Dentre estes novos métodos, é possível citar vários

aspectos do trabalho colaborativo e o aprendizado através de exemplos (LIMA;

ROSATELLI, 2003).

Um modelo tradicional de um STI apresenta quatro componentes: o

modelo do domínio, o modelo do estudante, o modelo do tutor e um ambiente de

aprendizado (FREEDMAN et al, 2000), conforme apresentado na Figura 1 e

discutido em seguida.

Figura 1: Modelo tradicional de um Sistema Tutor Inteligente

(FREEDMAN et al, 2000)

Modelo do domínio

Modelo do tutor

Modelo do estudante

Ambiente de aprendizado

Aluno

Page 21: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

9

2.2.1. Modelo do Domínio

O modelo do domínio possui a representação do conhecimento de um

especialista na área sob estudo na qual o sistema irá atuar. É composto por

conhecimentos declarativos e procedimentais e, apresenta-se organizado na

forma de listas, diagramas de estruturas ou regras.

O conhecimento declarativo define os termos do domínio, seus

atributos e o relacionamento entre os termos. O conhecimento procedimental

consiste de argumentos ou regras que serão utilizados na resolução dos

problemas que são apresentados ao estudante.

2.2.2. Modelo do Estudante

O modelo do estudante representa o grau de conhecimento do mesmo,

seus acertos, erros e dificuldades. O modelo do estudante deve ser capaz de

definir o nível de conhecimento do aluno a qualquer momento dentro do sistema.

Este modelo também pode ser composto por conhecimentos declarativos e

procedimentais.

2.2.3. Modelo do Tutor

O modelo do tutor permite a simulação das decisões de um professor,

um processo referente a intervenções pedagógicas e, posteriormente, permite a

geração das instruções apropriadas baseando-se nas diferenças entre o modelo

do domínio e o modelo do estudante. O modelo do tutor possibilita acompanhar a

cobertura dos tópicos do domínio e analisa o entendimento do aluno através de

avaliações.

Page 22: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

10

A preocupação neste modelo não é a representação do conhecimento

global, mas como um indivíduo representa seu próprio conhecimento através do

uso de suas habilidades dentro do domínio.

Um fator chave no projeto de um STI consiste na correta definição das

estratégias e táticas de ensino. As estratégias de ensino podem ser definidas

como planos que definem as formas de ensino e aprendizagem do aluno.

Uma estratégia de ensino é composta por um conjunto de táticas de

ensino, as quais consistem no trabalho que deverá ser desenvolvido pelo aluno

para obter um determinado conhecimento.

Durante a interação entre o aluno e o STI podem ser utilizadas

diferentes estratégias de ensino com o objetivo de auxiliar o aluno a refletir e

analisar os resultados oriundos de sua tomada de decisão.

A escolha do procedimento a ser adotado, em um determinado instante

da interação, deverá considerar as informações contidas no módulo do aluno.

Após a aplicação de uma estratégia, por parte do STI, tem-se então o modelo de

aluno modificado, uma vez que, o estado cognitivo percebido pode ter mudado.

Durante a interação, o STI considera que a resolução de cada uma das atividades

segue uma determinada seqüência lógica de etapas que devem ser cumpridas de

maneira correta. Os recursos disponibilizados em cada etapa também podem ser

considerados.

Figura 2: Escolha das táticas de ensino

(Konzen; Frozza, 1999)

Escolha do modelo do aluno

Escolha da estratégia de ensino

Escolha das táticas

de ensino

Page 23: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

11

Conforme ilustrado pela Figura 2, as táticas de ensino que poderão ser

aplicadas a determinado processo de aprendizagem do aluno são definidas após

a escolha do modelo do aluno e da estratégia de ensino (KONZEN; FROZZA,

1999).

2.2.4. Ambiente de Aprendizado

No caso do STI ser generativo (WOOLF et al, 2002), este STI

deve ter a capacidade de analisar o processo atual de

aquisição do conhecimento e, baseado nesta análise, gerar conclusões e

instruções que poderão ser responsáveis pela redução das discrepâncias entre o

modelo do domínio e o modelo do estudante. Este tipo de sistema é

supostamente “inteligente” devido ao seu ambiente de aprendizado, que possui a

capacidade de reagir de forma flexível e adaptativa ao processo de aquisição do

conhecimento.

A interface do ambiente de aprendizado é responsável pela troca de

informações entre o sistema, o instrutor e o aluno. Deve ser capaz de mostrar

informações coerentes com o nível de aprendizado do aluno e manter a coerência

nas explicações apresentadas sobre o domínio que está sendo estudado.

2.3. Representação do Conhecimento

Os STIs estão baseados na forma que os especialistas humanos

resolvem os problemas, ou seja, a partir do conhecimento do domínio da

aplicação. Isto traz a necessidade de representar o conhecimento do domínio.

Há duas abordagens distintas para a representação do conhecimento

(SRIRAM, 1997):

Page 24: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

12

a) Representação declarativa - o conhecimento é especificado, mas as

operações para sua utilização não são fornecidas;

b) Representação procedimental - as operações de controle

necessárias ao uso do conhecimento estão presentes no próprio

conhecimento.

Algumas das principais técnicas conhecidas para a representação do

conhecimento dentro de um STI são: Representação Baseada em Regras,

Lógica, Redes Semânticas, Frames, Raciocínio Baseado em Casos e Redes

Bayesianas.

2.3.1. Representação Baseada em Regras

A representação baseada em regras é a maneira mais ampla e

originalmente utilizada na Inteligência Artificial para representação do

conhecimento. Basicamente, consiste na representação do conhecimento do

domínio através de um conjunto bem definido de regras, também denominadas

regras de produção. As regras de produção podem ser formadas tanto de

conhecimento declarativo (fatos), que é utilizado para representar o conhecimento

sobre os relacionamentos no domínio do problema, como de conhecimento

procedimental (heurísticas), que é o conhecimento sobre como solucionar o

problema usando o conteúdo das regras, definindo assim uma base de

conhecimento para um sistema baseado em regras.

Cada regra é dada através da forma geral: se <condições> então

<ações>, onde:

Page 25: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

13

• <condições>: podem ser simples ou compostas, quando compostas

são conectadas através dos conectivos lógicos para realizar a

conjunção ou a disjunção.

• <ações>: consistem nas ações que serão consideradas, caso o

resultado da avaliação das <condições> seja verdadeiro.

2.3.2. Lógica

A lógica consiste em um sistema formal definido por regras de

formação e regras de inferência que, em sua origem, tinha como principal objetivo

formalizar a semântica da língua natural. Sendo a lógica proposicional, também

conhecida por lógica booleana, a mais tradicionalmente utilizada. Na lógica

proposicional, os símbolos representam os fatos e é possível combiná-los através

de operadores lógicos ou conectivos. Desta forma, pode-se formar sentenças

complexas e facilmente representar fatos do mundo real através de proposições

lógicas. Outra lógica empregada é a de predicados que possibilita expressar

propriedades gerais ou específicas quando utilizados os quantificadores universal

e existencial. A programação lógica ganhou aceitação na comunidade de

pesquisadores da Inteligência Artificial, devido à sua elegância, simplicidade e

perfeita base matemática (SRIRAM, 1997).

Uma importante motivação que justifica o uso da lógica matemática é

que, usando declarações lógicas como meio de armazenar conhecimentos, se

obtém um mecanismo formal para realizar inferências sobre o conhecimento

expresso. É importante salientar que não apenas as lógicas proposicional e de

predicados são utilizadas para representar conhecimento em STIs, outras mais

Page 26: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

14

diversas também o são, tais como a lógica modal, a lógica das probabilidades e a

lógica nebulosa (fuzzy).

2.3.3. Redes Semânticas

Uma rede semântica consiste de um conjunto de nós conectados por

uma série de arcos que permitem representar conhecimento. Os nós em geral

representam objetos e os arcos, as relações binárias entre esses objetos. Mas os

nós também podem ser utilizados para representar outras entidades, de acordo

com o contexto do domínio do problema. Um dos atrativos, por trás desta

representação, é que o significado de um conceito vem do modo como ele é

conectado a outros conceitos, para formar o conhecimento.

As redes semânticas estão fundamentadas sobre um modelo

computacional da memória humana denominada memória associativa, no qual é

possível explicar diversos resultados experimentais sobre o comportamento da

memória humana, como, por exemplo, o fato de que o reconhecimento de objetos

que pertencem a classes mais numerosas toma mais tempo do que o

reconhecimento dos pertencentes a classes menos numerosas (SRIRAM, 1997).

Os nós encontrados nas redes semânticas, geralmente, estão

classificados em: nó individual que é uma instância particular de uma classe, onde

a classe pode ser definida como uma descrição de um ou mais objetos similares;

ou nó genérico que define uma classe de objetos similares.

Os relacionamentos comumente usados entre os nós em uma base de

conhecimento são:

• Generalização: envolve o agrupamento de um conjunto de nós

genéricos para formar um outro nó. O processo inverso da

Page 27: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

15

generalização é denominado de especialização e denotada por uma

ligação é-um;

• Classificação: envolve o agrupamento de um conjunto de nós

individuais em um nó genérico. O processo inverso da classificação é

denominado de instanciação. A classificação é representada por uma

relação é-um;

• Agregação ou composição envolve a construção de um objeto a

partir de suas partes constituintes. Na literatura técnica sobre

orientação a objetos, também é conhecida pela denominação todo-

parte.

Um mecanismo de herança simples ou múltipla é obtido através dos

relacionamentos é-um e pode ser considerado como uma das características mais

fortes das redes semânticas, possibilitando que propriedades de um nó sejam

especificadas apenas uma vez, no mais alto nível da hierarquia de conceitos,

sendo herdados por todos os conceitos derivados.

2.3.4. Frames

A representação de conhecimento através de frames, proposta por

Minsky (1974), possibilita a modelagem e compreensão de linguagem natural. O

conceito de frames também está presente na origem das idéias que levaram às

linguagens de programação orientadas a objetos, bem como, na generalização

desta representação para a representação denominada script.

Em geral, um frame é uma coleção de atributos, chamados de slots, e

valores, que descrevem alguma entidade do mundo (RICH; KNIGHT, 1993). Os

frames integram conhecimento declarativo sobre objetos e eventos e

Page 28: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

16

conhecimento procedimental sobre como recuperar informações ou calcular

valores. Os atributos também apresentam propriedades que dizem respeito ao

tipo de valores e às restrições de número que podem ser associadas a cada

atributo.

Assim como nas redes semânticas, uma das características nos frames

é a possibilidade de que sejam criados novos subtipos de objetos que herdem

todos as propriedades da classe original. Essa herança é bastante usada tanto

para a representação do conhecimento como para a utilização de mecanismos de

inferência.

Um slot de relação é utilizado para ligar dois frames. A relação e sua

herança associada podem ser definidas na maioria das linguagens baseadas em

frame, sendo que as especificações de herança definem quanta informação é

permitida ser herdada de um frame para outro.

2.3.5. Raciocínio Baseado em Casos

O raciocínio baseado em casos (RBC) está fundamentado sobre a

proposta de utilizar experiências passadas como base para lidar com novas

situações similares, além de combinar as vantagens da recuperação da

informação e do raciocínio baseado em regras (KOLODNER, 1993). Esta

abordagem parece ser intuitiva: quando uma nova situação ocorre, procura-se,

adotando um eficaz mecanismo de recuperação, utilizar algo que já foi utilizado

com sucesso. Sendo que, soluções utilizadas em situações similares podem

ajudar na solução desta nova situação. Por outro lado, o RBC pode funcionar

também de maneira inversa, ou seja, a partir de contra-exemplos. Neste caso, em

Page 29: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

17

uma nova situação, devem-se descartar as soluções utilizadas no passado e que

resultaram em insucessos.

A principal parte do conhecimento nos sistemas baseados em RBC

está representada através de seus casos. Um caso pode ser definido como a

abstração de uma experiência descrita em termos de seu conteúdo e contexto,

podendo assumir deferentes formas de representação. O conhecimento neste

contexto pode ser interpretado como sendo um conjunto de métodos que

modelam um conhecimento especializado de modo de torná-lo disponível em um

sistema inteligente.

Apesar de um sistema RBC ser extremamente dependente da estrutura

e do conteúdo de sua base de casos, seu conhecimento não está presente

apenas nos seus casos, mas também nas etapas de desenvolvimento. Estas

etapas são:

• Representação dos casos - os casos devem manter o conhecimento

de eventos ocorridos em situações passadas. De acordo com Kolodner

(1993) os casos são formados por três elementos principais - a

descrição do caso, o caso em si e o estado posterior do domínio após a

aplicação da solução;

• Indexação - consiste em um problema central em RBC e envolve a

determinação dos tipos de índices que serão utilizados na etapa de

recuperação;

• Recuperação dos casos - uma vez definido o problema, esta etapa

realiza a busca na base de casos e seleciona quais casos podem ser

aproveitados para a solução do problema. Este processo é executado

Page 30: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

18

por algoritmos que selecionam casos da base que apresentam um

determinado grau de similaridade com o caso proposto;

• Adaptação - o tipo principal de conhecimento usado durante a

solução de um problema é aquele fornecido pelo conhecimento

específico contido nos casos. Porém, existem situações em que este

conhecimento não é suficiente ou apropriado para atender os requisitos

da aplicação. Quanto isto ocorre, são utilizados conhecimentos de

domínio, os quais podem contribuir para a identificação de

dependências entre certas características de um caso e auxiliar na

inferência de características adicionais;

• Aprendizagem - novos casos ou casos adaptados podem ser

adicionados à base de casos.

O raciocínio baseado em casos pode ser aplicado em várias tarefas de

raciocínio, tais como: propor soluções para novos problemas, antecipar, evitar e

explicar falhas em soluções propostas, adequar ou retificar soluções propostas.

2.3.6. Redes Bayesianas

As Redes Bayesianas são um modelo de representação do

conhecimento incerto, baseado nos conceitos da teoria da Probabilidade

Bayesiana, proposta pelo Reverendo Thomas Bayes em 1763. O conhecimento

incerto é aquele que apresenta deficiências. Em determinado momento, os dados

permitem a obtenção de uma representação não exata, parcial ou aproximada da

realidade (BHATNAGAR; KANAL, 1986).

É importante observar que o modelo baseia-se em probabilidades

prévias e mais algumas informações com um certo nível de incerteza, para

Page 31: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

19

representar o conhecimento. Um modelo totalmente incerto não seria de grande

utilidade e não teria ponto de partida para a manipulação de suas situações e a

geração de novas representações. A representação da Rede Bayesiana é feita

através de um grafo direcionado acíclico no qual os nós representam variáveis de

um domínio e os arcos representam a dependência condicional ou informativa

entre as variáveis (JENSEN, 2001). A dependência é representada através de

probabilidades, associadas a cada grupo de nós pais e filhos da Rede Bayesiana

(RUSSEL; NORVIG, 1995).

O elemento primário de uma linguagem de probabilidade é o evento.

Podemos entender um evento como um estado de alguma parte de nosso mundo

em um determinado intervalo de tempo (SIVIA, 1996).

Dentro de uma Rede Bayesiana, o processo de aprendizado é o

seguinte: a) o conhecimento de um conjunto de especialistas é representado em

uma Rede Bayesiana, como é feito na construção de um sistema especialista

probabilístico; b) um banco de dados é utilizado para atualizar este conhecimento,

gerando uma ou mais novas Redes Bayesianas. O resultado inclui um

refinamento do conhecimento dos especialistas originais e, em algumas ocasiões,

a identificação de novas distinções e relacionamentos. Esta abordagem é robusta

a erros no conhecimento do especialista, mesmo quando este conhecimento é

incompleto ou não confiável, permitindo seu uso para melhorar o processo de

aprendizagem (HECKERMAN, 1995).

O processo de treinamento de uma Rede Bayesiana é similar ao

utilizado nas redes neurais (HECKERMAN, 1995), porém apresenta duas

vantagens: a) é extremamente simples colocar o conhecimento de um

especialista em uma Rede Bayesiana e utilizá-lo para aumentar a eficiência e

Page 32: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

20

precisão do aprendizado; b) os nós e arcos em uma Rede Bayesiana

freqüentemente correspondem a distinções reconhecíveis e relacionamentos

causais. Como conseqüência, é mais simples interpretar e entender o

conhecimento codificado na representação.

2.4. Processamento da Língua Natural

A capacidade de processamento de uma língua natural permite que os

seres humanos comuniquem-se com os computadores da forma mais simples

possível, utilizando uma língua com a qual já estão habituados. Evitando, deste

modo, a necessidade de adaptação a formas inusitadas de interação, ou mesmo

o aprendizado de uma língua artificial, cuja sintaxe costuma ser de difícil

aprendizado e domínio.

A comunicação entre pessoas e máquinas é uma área que tem

motivado uma série de pesquisas. O objetivo final é permitir que usuário e

equipamento possam se comunicar através de uma língua humana. Muitos

autores de ficção científica descrevem cenários no futuro nos quais, por meio de

uma simples conversa, as pessoas sejam capazes de explicar a tarefa que

querem que seja executada e o computador seja capaz de executá-la. Estudos

apontam para a possibilidade futura da existência de computadores com

capacidade de compreensão da língua natural possibilitando, por exemplo, o

processamento dos comandos expressos em linguagem (escrita ou falada) pelos

usuários finais. Outra perspectiva para o futuro mostra que o desenvolvimento de

modelos computacionais da língua natural permitirá um maior processamento de

informações, visto que a maior parte do conhecimento humano está registrado na

forma lingüística (RICH; KNIGHT, 1993).

Page 33: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

21

O caráter interdisciplinar do processamento da língua natural ilustra o

nível de complexidade normalmente requerido das abordagens desenvolvidas, as

quais apresentam conceitos de inteligência artificial, teoria da computação,

compiladores, lingüística computacional e de outras disciplinas.

Basicamente, as aplicações dos sistemas que tratam a língua natural

podem ser divididas em duas classes: aplicações baseadas em texto e aplicações

baseadas em diálogos. Aplicações baseadas em texto são sistemas que

procuram documentos específicos dentro de uma base de dados específica.

Pode-se citar alguns exemplos: a tarefa de localizar livros relevantes em uma

biblioteca; sistemas que realizam a tradução de documentos e aplicações que

permitem sumarizar um determinado documento.

Dentro das aplicações baseadas em diálogos, é possível citar os STIs,

entre outros sistemas, que interpretam e respondem aos comandos expressos em

uma língua natural qualquer, escrita ou falada.

Para um sistema ser considerado processador da língua natural duas

condições devem ser satisfeitas:

• Um subconjunto de entrada e/ou saída do sistema é codificado em

uma língua natural;

• O processamento da entrada e/ou a geração da saída é baseada no

conhecimento sobre aspectos morfológicos, sintáticos, semânticos de

uma língua natural.

Observa-se, principalmente com a segunda condição, a exigência da

interpretação do conteúdo de uma sentença, sendo que esta condição não é

satisfeita nos sistemas que processam a língua natural puramente como cadeias

de caracteres como por exemplo, editores de texto ou pacotes estatísticos.

Page 34: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

22

Para um computador realizar o processamento de uma língua natural

inicialmente deve-se dividir essa língua em seus elementos básicos.

Um lexema ou palavra é uma entrada individual em um léxico. Pode

ser entendido como um conjunto particular de ortografia e fonologia que possui

uma forma de representação simbólica do conhecimento. O léxico é um conjunto

finito de lexemas, sendo o componente mais extenso da língua.

Dentro deste contexto, os lexemas e seus respectivos significados são

importantes quando conseguem prover as informações necessárias para obter

representações significativas de sentenças inteiras. Esta abordagem é motivada

pelo fato de que os lexemas, por si só, não se referem ao mundo, não podem ser

determinados verdadeiros ou falsos, literais ou figurativos. Estes atributos apenas

podem ser aplicados a sentenças e contribuem, de forma simplória, ao conceito

de que o léxico é apenas uma relação de fragmentos simbólicos sem nenhuma

estrutura sistemática.

Para que um sistema computacional interprete uma sentença em

língua natural, é necessário manter informações morfológicas, sintáticas e

semânticas, armazenadas em um dicionário, juntamente com as palavras que o

sistema compreende. As etapas do processamento da língua natural estão

discriminadas a seguir (JURAFSKY; MARTIN, 2000) (RICH; KNIGHT, 1993).

2.4.1. Análise Léxica

O analisador léxico identifica lexemas ou expressões isoladas em uma

sentença, sendo este processo auxiliado por delimitadores, tais como símbolos

para pontuação e espaços em branco. Os lexemas identificados são classificados

Page 35: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

23

de acordo com seu tipo de uso ou, em língua natural, dentro de uma categoria

gramatical.

Neste contexto, uma instância de um lexema dentro de uma sentença

gramaticalmente válida pode ser substituída por outra do mesmo tipo,

configurando uma sentença ainda válida, por exemplo: substantivos, pronomes e

verbos entre outros. Dentro de um mesmo tipo de lexema, existem grupos de

regras que caracterizam o comportamento de um subconjunto de vocábulos da

língua, por exemplo: formação do plural de substantivos terminados em "ão" e

flexões dos verbos regulares terminados em "ar" dentre outros. Assim, a

morfologia objetiva classificar os lexemas quanto à sua estrutura, forma, flexão e

classificação (JURAFSKY; MARTIN, 2000).

O emprego de um analisador léxico é fundamental para a compreensão

de uma frase, pois para formar uma estrutura coerente de uma sentença, é

necessário compreender o significado de cada um dos lexemas componentes

(RICH; KNIGHT, 1993).

2.4.2. Análise Sintática

O conceito de análise sintática está intimamente relacionado ao

conceito de gramática, que pode ser definido como um conjunto de regras que

expressam os modos que os símbolos de determinada língua podem ser

agrupados e ordenados. Através da gramática da língua a ser analisada e das

informações do analisador léxico, o analisador sintático procura construir árvores

de derivação para cada sentença, mostrando como os lexemas estão

relacionados entre si.

Page 36: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

24

Durante a construção da árvore de derivação, é verificada a adequação

das seqüências de lexemas às regras de construção impostas pela língua, na

composição de frases, períodos ou orações. Dentre estas regras, pode-se citar a

concordância e a regência nominal e/ou verbal, bem como o posicionamento de

termos na frase. Um termo corresponde a um elemento de informação (lexema ou

expressão), sendo tratado como unidade funcional da oração, participando da

estrutura como um de seus constituintes que são denominados sintagmas.

A análise sintática de uma oração em português deve levar em conta

os seguintes sintagmas: termos essenciais (sujeito e predicado), termos

integrantes (complementos verbal e nominal) e termos acessórios (adjunto

adverbial, adjunto adnominal e aposto). A análise do período, por sua vez, deve

considerar o tipo de período (simples ou composto), sua composição (por

subordinação, por coordenação) e a classificação das orações (absoluta,

principal, coordenada ou subordinada).

Nos sistemas de processamento de língua natural, o maior problema é

a transformação de uma frase potencialmente ambígua em uma não ambígua, a

qual será utilizada pelo sistema. Esta transformação é conhecida como parsing.

2.4.3. Análise Semântica

A semântica pode ser definida como o estudo do sistema de

significados de uma língua. A lexema “significado” possui vários sentidos e as

abordagens semânticas podem variar muito. Uma delas estabelece que o

significado é a relação entre a linguagem e o mundo externo, sentido referencial

ou denotativo, e que a semântica investiga a relação entre as palavras e os

conceitos que as mesmas simbolizam. Outra abordagem está fundamentada no

Page 37: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

25

estado mental do falante, refletindo um espectro de matizes pessoais e

emocionais, ou seja, sentido afetivo ou conotativo. Outra ainda refere-se ao

contexto social em que a língua é usada, do qual deriva parte desse significado,

conhecida com sentido contextual. Uma quarta abordagem refere-se às relações

sensoriais que conectam palavras e sintagmas, pelas quais sabe-se, por exemplo,

que algumas palavras têm o "mesmo" significado, por exemplo, carro e

automóvel. Além de outras que têm significado "oposto", por exemplo casado e

solteiro. Outros lexemas possuem um significado inerente, como o caso do gato,

que está incluso entre os animais. Em termos lingüísticos, é útil estabelecer a

distinção entre significado estrutural, cuja forma deriva de sua posição e função

no sistema gramatical da língua.

Em termos computacionais, a análise semântica pode ser entendida

como um processo no qual a representação do conhecimento é composta e

atribuída a entradas lingüísticas. A criação da representação do conhecimento, de

forma rica e precisa, obrigatoriamente envolve uma grande variedade de fontes

de conhecimento e técnicas de inferência. Neste contexto, as fontes de

conhecimento tipicamente adotadas estão relacionadas aos significados das

palavras. Os significados são associados às estruturas gramáticas,

conhecimentos sobre a estrutura da língua, conhecimentos sobre o contexto no

qual a frase está inserida e um senso comum sobre o tópico abordado.

A compreensão da relação entre as palavras é tão importante quanto a

compreensão das próprias palavras. Enfoques formais para a semântica

gramatical tentam descrever o sentido de uma frase mediante a tradução de sua

estrutura sintática para uma fórmula lógica-semântica. Como não existe uma

Page 38: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

26

correspondência imediata e biunívoca entre sintaxe e semântica, uma mesma

estrutura sintática pode dar origem a diferentes representações semânticas.

2.4.4. Análise Semântica Latente

A adoção da Análise Semântica Latente permite capturar a ocorrência

semântica latente da informação, a partir da localização de palavras similares em

um contexto similar existente dentro de um corpus.

A Análise Semântica Latente foi desenvolvida originalmente como um

método de recuperação de informação, ou seja, permite selecionar de uma

grande base de dados um subconjunto de textos que combinam com a

especificação da busca (WIEMER-HASTINGS et al, 1999). A partir de

semelhanças das palavras-chave especificadas na busca, são selecionados os

textos que apresentam o número mais elevado destas semelhanças. Outra

característica da Análise Semântica Latente consiste na sua incapacidade de

reconhecer sinônimos ou sentidos alternativos para as palavras-chave.

A Análise Semântica Latente usa uma técnica estatística chamada de

decomposição singular do valor, para reduzir uma matriz de co-ocorrência dos

termos versus documentos a um conjunto de três matrizes muito menores, que

descrevem um espaço semântico N-dimensional. A primeira dessas três matrizes

resultantes especifica o vetor N-dimensional para cada um dos termos. A segunda

corresponde aos vetores para os documentos. E a terceira determina a

importância relativa de cada uma das dimensões de N. A relevância funcional

desta técnica estabelece que uma representação reduzida reproduz da melhor

maneira os dados originais e deve generalizar exemplos similares de palavras,

que ocorrem em um contexto similar. Isto resulta em uma representação onde os

Page 39: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

27

termos similares e seus originais têm vetores de similaridade na distância N-

dimensional do espaço (LANDAUER, 2002).

Page 40: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

3. MODELO PROPOSTO

Page 41: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

29

STIs freqüentemente apresentam problemas aos alunos e verificam a

solução passo a passo, podendo ainda apresentar dicas sensíveis ao contexto

para cada passo da resolução. Porém, esses tutores não solicitam aos alunos

explicações ou justificativas sobre os passos executados para a solução, ao

contrário dos tutores humanos que procuram encorajar os alunos a raciocinar

sobre os passos executados na solução de um determinado problema. Da mesma

forma, a auto-explicação possui o potencial de ampliar o conhecimento do aluno

sobre o domínio, resultando na obtenção de um conhecimento que permite

generalizar melhor em novas situações. Porém, para o aluno se beneficiar do

potencial da auto-explicação através de um STI, o mesmo deve ser capaz de

realizar diálogos com o aluno no nível das explicações (POPESCU et al, 2003).

O modelo proposto foi elaborado tomando-se como base o referencial

teórico e também o estudo de alguns STIs existentes.

3.1. Trabalhos Relacionados

Vários STIs foram estudados de forma a auxiliar na elaboração do

projeto e definição do modelo desenvolvido. Dentre os quais é relevante citar:

• Geometry Explanation Tutor (ALEVEN et al, 2001), construído a

partir do PACT – Geometry Tutor (ALEVEN et al, 2001). Este STI

solicita que o aluno explique, com suas próprias palavras, as respostas

aos problemas de geometria apresentados.

• CIRCSIM-Tutor (ZHOU et al, 1999) apresenta ao aluno uma

descrição de uma mudança fisiológica e solicita predições sobre os

efeitos que esta mudança ocasiona sobre sete importantes aspectos

fisiológicos. A partir deste ponto, o STI conduz um diálogo com o aluno

Page 42: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

30

visando corrigir os erros encontrados nas predições através de

entradas e saídas em texto livre.

• SE-Coach (CONATI et al, 1997) é um STI que permite orientar o

aluno na geração de auto-explicações corretas e efetivas e, como

conseqüência, melhorar o desempenho na resolução de problemas

dentro do domínio de Física, mais especificamente as Leis de Newton,

no nível universitário.

• CECELIA (REDMOND; PHILLIPS, 1997) é um STI aplicado ao

domínio de Química, mas especificamente para balanceamento de

equações. Projetado com os conceitos de Raciocínio Baseado em

Casos. O STI utiliza-se de técnicas de ensino que incluem a

apresentação passo-a-passo da solução do caso, predições e

explicações por parte do aluno das ações do especialista. O STI

explora uma estratégia de ensino a partir de exemplos, privilegiando a

resolução de uma grande quantidade de exemplos por parte do aluno

ao invés de inserir grandes quantidades de “inteligência” dentro do

tutor.

• AutoTutor (GRAESSER et al, 1999) é um STI que simula padrões

de discurso e estratégias educacionais de um típico tutor humano. Atua

no domínio de fundamentos de hardware, sistemas operacionais e

Internet em disciplinas de introdução à informática. O AutoTutor

apresenta questões e problemas a partir de um script, em seguida

procura compreender as contribuições colocadas pelo aluno e formula

diálogos que são sensíveis a estas contribuições.

Page 43: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

31

• ELM-ART (BRUSILOVSKY et al, 1996) é um STI desenvolvido para

uso na internet, através de um navegador. Apresenta como objetivo

principal possibilitar o aprendizado da linguagem de programação Lisp.

Está baseado no ELM-PE (WEBER; MÖLLENBERG, 1994), que é um

ambiente de ensino inteligente que permite programação baseada em

exemplos, análises inteligentes das soluções dos problemas, além de

recursos avançados de teste e depuração.

• ACT Programming Tutor (CORBETT; BHATNAGAR, 1997) é um

STI construído com base em um modelo cognitivo de conhecimento de

programação. Consiste basicamente de um ambiente de resolução de

problemas no qual os alunos aprendem a escrever pequenos

programas em Lisp, Pascal ou Prolog.

Alguns dos tutores estudados, tais como o AutoTutor (GRAESSER et

al, 1999), CIRCSIM-Tutor (ZHOU et al, 1999) e SE-Coach (CONATI et al, 1997)

possuem capacidade de executar o processamento da língua natural através do

processamento estatístico da língua, correção ortográfica, identificação de

palavras-chave, análise sintática e análise semântica latente.

3.2. Modelo para o STI

O STI proposto, conforme mostrado na Figura 3, consiste basicamente

de dois subsistemas. O primeiro é o subsistema do professor que consiste

basicamente na interface entre o STI e o professor e é responsável pelo cadastro

dos exemplos e respectivas soluções, bem como permite a criação dos problemas

que serão apresentados ao aluno.

Page 44: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

32

Figura 3: Proposta para o STI AutoExplC (adaptado de Freedman et al, 2000)

O subsistema do aluno permite a comunicação entre o STI e o aluno,

possibilitando ao mesmo visualizar as atividades cadastradas previamente pelo

professores e, em seguida, fornecer as explicações solicitadas.

O modelo proposto para o STI é composto primariamente por duas

bases de conhecimento:

a) Domínio - armazena as informações relacionadas ao assunto que

será ensinado, no caso a linguagem “C”;

b) Conhecimento do aluno - representa o nível de conhecimento atual

do aluno dentro do domínio.

Interface aluno-engenho

Engenho deinferência

Conheci- mento do

aluno

Domínio

Aluno

Professor

Interface do professor

Page 45: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

33

Além das bases de conhecimento que compõem o STI, existem ainda:

a) Engenho de inferência que realiza inferências, baseadas na base de

conhecimento do aluno e do domínio.

b) Interface aluno-engenho que realiza a comunicação entre o aluno e

os demais módulos do STI e é capaz de prover um suporte eficaz para

as partes instrumentais da tarefa, por exemplo, minimizando a carga

cognitiva sobre a sintaxe e a depuração da programação, e que

segundo Trafton e Reiser (1993), auxilia no desenvolvimento dos

demais aspectos cognitivos necessários ao aprendizado de uma

linguagem de programação.

c) Interface do professor que realiza a comunicação entre o professor e

o STI e é responsável por permitir o cadastro de tópicos, explicações e

resoluções, além de permitir visualizar as explicações dos alunos.

3.3. Escolha da Forma de Representação do Conhecimento

A evolução dos STIs mostra a necessidade de se tratar não apenas do

conhecimento formal, mas também dos conhecimentos incertos e indeterminados

(PEROTTO; VICARI, 2001). Pesquisas recentes com algoritmos de Redes

Bayesianas têm permitido a modelagem de domínios complexos utilizando

representações probabilísticas (MURRAY; VANLEHN, 2000).

O formalismo das Redes Bayesianas permite ao usuário responder às

evidências em uma escala gradativa, com valores entre 0 e 1 (incerteza), além de

determinar regras ou padrões para tratar de uma evidência não informada, ou

seja quando há uma indeterminação.

Page 46: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

34

Outra vantagem deste formalismo é permitir uma forma mais natural de

representação dos diferentes pesos relativos à influência de uma variável sobre

outra, além de tratar a incerteza e a indeterminação através de princípios

matemáticos fundamentados e modelar o conhecimento do especialista de um

modo claro e intuitivo.

Com base nas características citadas acima e devido ao bom

desempenho apresentado em outros tutores estudados como, por exemplo, o SE-

Coach (CONATI et al, 1997) e ACT Programming Tutor (CORBETT;

BHATNAGAR, 1997), as Redes Bayesianas foram escolhidas para representar o

conhecimento no STI proposto.

3.4. Definição das Rotinas para Entendimento Aproximado da Língua Natural

Os STIs têm auxiliado estudantes em diversos domínios, tais como

geometria, química e programação. Esses domínios são ideais, porque podem ser

facilmente representados e porque o tipo de interação entre o estudante e o STI

pode ser limitado à entrada de números, símbolos, ou simples palavras-chave.

Objetivando auxiliar estudantes de outras áreas e expandir os domínios para

aplicação dos STIs, surge a Análise Semântica Latente com sua abordagem

baseada em corpus, que permite a compreensão de uma entrada textual que não

é sensível a erros de ortografia ou gramática (WIEMER-HASTINGS et al, 1999).

No passado, os STIs mostraram grande eficiência em determinados

tipos de domínios. O LISP TUTOR auxiliou muitos estudantes as escrever

programas de uma maneira correta (CORBETT; ANDERSON, 1992). Os tutores

da álgebra e da geometria foram a base para o currículo de matemática no Ensino

Médio por dois anos (ANDERSON et al,1995). Estudantes de cursos de

Page 47: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

35

graduação aprenderam física em um STI (VANLEHN et al, 1998). A eficiência

desses STIs é indiscutível, porém o tipo de interação que suportavam estava

limitado a pressionar teclas ou incorporar alguns números ou símbolos. Mesmo os

sistemas que aceitavam entradas do tipo texto livre dos estudantes estavam

limitados a entradas de uma única palavra (FREEDMAN et al, 1998). Esse tipo de

interação suportado pelos STIs conduz a uma limitação no escopo de utilização,

ou à profundidade atingida dentro do domínio. Sem os avanços significativos

obtidos na aplicação de técnicas da compreensão de língua natural, o uso de um

STI dentro de um domínio como história ou filosofia seria muito difícil (WIEMER-

HASTINGS et al, 1999).

Dentro deste contexto, surge uma nova geração de tutores, tal como, o

AutoTutor (GRAESSER et al, 1999), cujo projeto demonstra maneiras de suportar

uma interação de diálogo entre tutor e estudante em diversos tipos de domínios.

O elemento chave consiste na avaliação das respostas do estudante usando a

Análise Semântica Latente sobre uma sentença da língua natural.

Conforme ilustrado na Figura 4, o módulo de entendimento aproximado

da língua natural tenta efetuar as seguintes operações a partir da explicação

gerada pelo aluno:

• Análise Léxica - agrupa os caracteres em palavras (tokens) e, em

seguida, submete os tokens a um algoritmo de extração de radicais

(PORTER, 1980).

• Análise Sintática - recebe como entrada a seqüência de tokens

provenientes da análise léxica e gera uma árvore de derivação, se

estiver de acordo com a gramática.

Page 48: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

36

• Análise Semântica Latente - a idéia chave de um analisador

semântico consiste no conceito de que o significado de uma sentença

pode ser obtido a partir do significado de cada uma de suas partes.

Figura 4: Proposta para as rotinas para entendimento aproximado da língua natural

- adaptado de Jurafsky e Martin (2000) e Wiemer-Hastings e outros (1999)

O módulo de entendimento aproximado da língua natural proposto

tenta minimizar o problema da precisão na determinação do conteúdo semântico

das explicações permitindo ao professor:

• Visualizar as explicações geradas pelos alunos e compará-las com

os resultados fornecidos pelo STI;

• Acrescentar lexemas não conhecidos ao léxico (RUSSEL; NORVIG,

1995).

3.5. Implementação

Na pesquisa realizada sobre ferramentas necessárias à implementação

do STI, foram priorizados os aspectos de desempenho, portabilidade e

distribuição gratuita. Desta forma, optou-se pela linguagem de programação Java

disponibilizada pela Sun, além do conector para banco de dados MySQL

Análise Léxica

Análise Sintática

Análise Semântica

Latente

Page 49: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

37

Connector/J. Seguindo os mesmos critérios adotados acima, o sistema

gerenciador de banco de dados selecionado foi o MySQL.

Tal ferramental foi usado na implementação dos componentes do STI

apresentado a seguir.

3.5.1. Modelo do Domínio

Por definição, o modelo do domínio deve representar o conhecimento

de um especialista na área em que o sistema irá atuar. É composto por

conhecimentos declarativos e procedimentais. Para a representação dos

conhecimentos declarativos do modelo do domínio foram implementadas as

seguintes relações:

• Mapeador - contém os diversos comandos da linguagem “C”, com as

respectivas estruturas e lexemas da língua portuguesa associados que

são esperados durante a explicação do aluno.

• Tópico - contém os tópicos da linguagem de programação que são

cobertos pelo STI.

• Exemplo - contém o número e a descrição do problema proposto e o

código-fonte em linguagem “C” necessário para resolvê-lo.

• Explicação - contém as áreas do código-fonte (selecionadas pelo

professor) que o aluno será solicitado a explicar, além do tópico que

está relacionado à explicação.

• Peso-Explicação - cada explicação cadastrada possibilita a separação

dos diversos comandos da linguagem que compõem a explicação,

sendo que, para cada comando, é possível determinar um grau de

relevância dentro da explicação. Por padrão, a interface do professor

Page 50: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

38

identifica todos os elementos da explicação como essenciais, porém, o

professor pode realizar a sua própria configuração.

3.5.2. Modelo do Estudante

O modelo do estudante possui a responsabilidade de representar o

grau de conhecimento do mesmo, seus acertos, erros e dificuldades. O modelo do

estudante é capaz de definir o nível de conhecimento do aluno a qualquer

momento dentro do sistema. Encontra-se implementado através das seguintes

relações:

• Aluno - armazena o código, nome e senha para acesso ao STI por parte

do estudante.

• Progresso - representa o nível de conhecimento do aluno, armazenando

suas explicações, acertos, tempos para resolução dos problemas

apresentados, além da avaliação gerada pelo STI após cada

explicação.

3.5.3. Interface Aluno-Engenho

A interface aluno-engenho possui como objetivos principais apresentar

os exemplos ao aluno. Em seguida, solicita ao aluno uma explicação. Após

receber a explicação gerada pelo aluno, a interface aluno-engenho envia a

mesma para o engenho de inferência.

3.5.4. Engenho de Inferência

O engenho de inferência é responsável por realizar o reconhecimento

aproximado da língua natural e classificar a explicação recebida. Ao receber a

Page 51: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

39

explicação gerada pelo aluno, é realizada inicialmente a separação das palavras.

Em seguida, cada palavra é submetida à versão para língua portuguesa do

Algoritmo de Porter para extração de radicais - Porter Stemming Algorithm

(PORTER, 1980). Esta versão para língua portuguesa foi desenvolvida pelo

próprio Porter e encontra-se disponível no site do autor (PORTER, 1980).

A próxima etapa consiste em realizar Análise Semântica Latente

(WIEMER-HASTINGS et al, 1999), através da etiquetagem dos radicais. Para

isso, utiliza-se um corpus com 82.933 palavras etiquetadas da língua portuguesa

(AIRES, 2000). Em seguida, em relação ao trecho de código que deve ser

explicado, procura-se mapear os radicais para comandos da linguagem “C”, cujos

componentes constituem os nós de entrada de uma Rede Bayesiana.

Após realizar o mapeamento, a Rede Bayesiana é alimentada com

informações sobre os nós observados e não observados para, de acordo com os

pesos atribuídos pelo professor, realizar a classificação da explicação dentro de

três valores possíveis: correta, incompleta ou incorreta.

3.5.5. Interface do Professor

A interface do professor possibilita ao professor realizar o cadastro dos

alunos, visualizar as explicações geradas e também cadastrar os exemplos e as

respectivas soluções, bem como permite a criação das atividades que serão

apresentadas ao aluno e motivarão o mesmo a gerar explicações.

Dentro do cadastro das atividades, os componentes dos comandos da

linguagem “C” que compõem a atividade recebem sempre um peso padrão, ou

seja, todos os comandos receberão um mesmo peso. Porém, é possível ao

professor definir diferentes pesos para os diversos componentes. Por exemplo,

Page 52: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

40

em um trecho de programa selecionado que contém um comando “while” e um

comando “if”, é possível atribuir um peso maior ao comando “while”. Quando o

aluno tiver explicado esta atividade, este fato fará o STI considerar de modo mais

relevante o trecho da explicação relacionado ao comando “while”, o que pode

resultar em uma avaliação correta mesmo na ausência de texto explicativo para o

comando “if”.

3.6. Funcionamento do STI Proposto

O STI proposto é composto pelo subsistema do professor e pelo

subsistema do aluno.

O subsistema do professor permite cadastrar os exemplos e identificar

o trecho do código-fonte que deverá ser explicado pelo aluno. Inicialmente, o

professor deve inserir o enunciado do problema proposto juntamente com o

programa que o resolve. No programa cadastrado, é possível identificar as linhas

que deverão ser explicadas e associá-las a um determinado tópico do STI.

No subsistema do professor também é possível visualizar as

explicações dadas pelos alunos, a classificação que o STI atribuiu às mesmas,

além de permitir ao professor acrescentar novos lexemas ao mapeador de

comandos da linguagem “C”.

A execução do subsistema de aluno inicia-se apresentando um

exemplo de programa em Linguagem “C”. A próxima etapa consiste em instruir o

aluno a explicar o propósito de trechos de comandos utilizados na resolução do

problema proposto.

O aluno, por exemplo, poderá explicar o funcionamento de qualquer

função ou variável seguindo qualquer ordem dentro do trecho apresentado, não

Page 53: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

41

necessariamente da esquerda para a direita. O aluno deverá trabalhar no trecho

apresentado até que o mesmo esteja adequadamente explicado.

Portanto, o subsistema do aluno executa as seguintes tarefas:

apresentar o tópico que será ensinado, exibir o código fonte de um exemplo,

solicitar ao aluno que explique um determinado trecho do exemplo, permitindo ao

aluno criar auto-explicações. Em seguida, ocorre a avaliação da explicação,

sendo determinada a mensagem que deverá ser apresentada ao aluno.

Figura 5: Diagrama entidade-relacionamento dos modelos do STI

Com o intuito de ilustrar o funcionamento dos Subsistemas do Aluno e

do Professor que são abordados a seguir, a Figura 5 mostra o diagrama entidade-

relacionamento das relações existentes nos modelos do STI. No Apêndice A é

detalhado a estrutura das relações com explicações sobre os conteúdos dos

campos.

3.6.1. Subsistema do Professor

A janela inicial do subsistema do professor apresenta os exemplos

cadastrados e também um menu com os recursos disponíveis (Figura 6).

Resolver

Exemplo

Aluno

Possuir Progresso

Explicação Possuir

Gerar

Peso-Explicação

Mapeador Acessar

Corpus

Etiqueta

Possuir

Page 54: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

42

Ao acessar esta janela, o professor pode escolher um exemplo já

cadastrado ou pressionar o botão Incluir exemplo, para que a janela de Cadastro

do Exemplo seja exibida (Figura 7). Na janela cadastro do exemplo, o professor

formula um problema e, em seguida, cadastra o código-fonte em “C” necessário

para a resolução do problema.

Figura 6: Janela inicial do subsistema do professor.

Figura 7: Cadastro do Exemplo

Na próxima etapa, o professor cadastra as atividades, para as quais

serão solicitadas as explicações, que deverão ser geradas para o respectivo

exemplo. Para isso, basta apenas selecionar o trecho do código fonte que deverá

ser explicado e, em seguida, pressionar o botão Incluir. A janela de cadastro da

Page 55: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

43

atividade é exibida (Figura 8) e o professor deve cadastrar um texto de ajuda para

a explicação e associar a atividade a um determinado tópico da Linguagem “C”.

Figura 8: Cadastro da Atividade

Após o cadastro da atividade, ainda é possível ajustar a importância

relativa de cada parte do trecho de código-fonte selecionado, atribuindo pesos

diferenciados através dos botões Essencial, Necessária e Desejada existentes na

Janela de Cadastro do Exemplo. O padrão consiste em aplicar o peso “Essencial”

(texto formatado em vermelho) para todos os componentes do trecho do código-

fonte. Neste exemplo, pode-se observar que o trecho do programa “maior = v[i];”

está indicado como “Necessário”, ou seja, o professor definiu um peso menor

para esta linha, em relação ao restante do trecho do código-fonte. Para realizar

esta definição, o professor selecionou o trecho do programa “maior = v[i];” e, em

seguida, pressionou o botão “Necessário”. O STI não permite, para fins de

atribuição de pesos, que o professor utilize trechos que não se encontram dentro

do código-fonte selecionado.

A seguir, detalha-se como essa etapa é conduzida internamente pelo

subsistema, bem como as bases de dados envolvidas. Na primeira etapa, que

consiste no cadastro do exemplo, é utilizada apenas a relação Exemplo.

Após o cadastro do exemplo, o professor seleciona os trechos do

código-fonte que deverão ser explicados. Em seguida, realiza-se a verificação e a

separação dos componentes do código-fonte que foi selecionado e a janela de

cadastro das atividades é exibida (Figura 8).

Page 56: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

44

Para realizar a separação dos componentes do código-fonte

selecionado são utilizadas, como referência, as informações contidas na relação

Mapeador. Esta relação apresenta como finalidade armazenar a sintaxe das

instruções da Linguagem “C” suportadas pelo tutor.

Com o objetivo de ilustrar a utilização da relação Mapeador, a seguir, é

analisado como o comando “if-else” da linguagem “C” é armazenado nesta

relação (Tabela 1).

Tipo Comando Sintaxe Terminador Número-Componente Deslocamento Lexema

id# If id# (expr#) ) 2 0

<e>caso; verificar; testar; se; quando;</e>

id# else id# N 1 0

<e>senão; caso; contrário; outra; forma; outra; maneira;</e>

Tabela 1: Armazenamento da estrutura “if-else” na relação Mapeador

O comando “if-else” é armazenado em duas linhas da respectiva

relação, sendo que a primeira coluna armazena o tipo do componente e pode ser

id# para representar palavras reservadas linguagem, opla# para operadores

lógico ou aritmético, opat# para operadores de atribuição, expr# para expressões,

atrib# expressões de atribuição e var# para identificar variáveis da linguagem.

A coluna comando contém o radical que corresponde ao comando,

enquanto a coluna sintaxe o formato esperado. Na coluna terminador, é

encontrado o caracter que finaliza a linha de comando, neste caso o valor N,

presente para a linha que representa o “else”, indica que não há caracter

terminador. A coluna número de componentes indica a quantidade de

componentes que formam o comando. Por exemplo, a linha do comando “if”

Page 57: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

45

indica a existência de dois componentes, que são a palavra reservada “if”,

seguida de uma expressão delimitada por parêntesis.

A coluna deslocamento informa, incluindo o comando, onde começam

os componentes do comando. Por exemplo, considerando a linha do comando “if”

este campo assume o valor zero, pois, não existem componentes do comando à

esquerda da palavra reservada “if”. Por outro lado, considerando uma instrução

“j++”, este campo assumiria o valor “–1”, pois antes do operador “++” existe um

componente do operador, neste caso, a variável “j”.

Finalizando, a coluna lexema indica quais palavras, da Língua

Portuguesa, são esperadas durante o processo de entendimento aproximado da

língua natural. Quanto utilizada, a etiqueta <e> indica que são lexemas

essenciais, ou seja, pelo menos um deles é esperado para poder mapear o

lexema. Por outro lado, a etiqueta <o> indica um lexema opcional que pode ou

não estar presente na explicação e que não influenciará no processo de

mapeamento. Considerando o exemplo apresentado na Tabela 1, para identificar

a palavra reservada “if”, deverá ser obrigatoriamente encontrado dentro da

explicação do aluno um dos seguintes lexemas: “caso”, “verificar”, “testar”, “se” ou

“quando”.

Voltando à Figura 7, uma vez separados todos os componentes, são

armazenadas as suas posições de início e término dentro do código-fonte para

fins de formatação do texto a ser exibido pela interface aluno-engenho. As

posições de início e término são determinadas, em termos de caracter, a partir do

início do programa cadastrado. Neste momento, também é atribuído, por padrão,

o peso “Essencial” a todos os componentes, de modo que todos, em um primeiro

momento, apresentam o peso “Essencial”.

Page 58: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

46

Ao preencher os campos do cadastro de atividades e escolher a opção

gravar, as informações relativas à atividade serão armazenadas nas relações

Explicação e Peso-Explicação.

A Tabela 2 mostra como é realizada a separação e a inclusão dos

pesos da explicação apresentada no exemplo anterior (Figura 6). É importante

observar também a alteração da importância do componente “maior = v[i]” de

“Essencial” (Importância = 4) para “Necessária” (Importância = 2) e o respectivo

ajuste dos pesos. Sendo que os pesos são atribuídos através da média

ponderada dos pesos em relação ao contexto geral da atividade que está sendo

cadastrada. Por exemplo, considerando a Tabela 2, tem-se que a soma das

importâncias dos componentes é 10 (4 + 4 + 2), desta forma, considerando a

primeira linha da Tabela 6, que representa o componente “if”, determina-se que o

peso é 0,4 (4 / 10).

Número-Exemplo

Número- Explicação

Seleção- Início

Seleção- Término Componente Importância Peso

6 1 94 95 if 4 0,4 6 1 98 109 v[i] > maior 4 0,4 6 1 121 132 maior = v[i] 2 0,2

Tabela 2: Inclusão na relação Peso-Explicação

As atividades definidas pelo professor neste subsistema irão compor a

seqüência de exercícios que o aluno irá tentar resolver. Esta seqüência será

mostrada ao aluno seguindo uma ordenação através do número do tópico

associado à atividade depois, dentro do tópico, a ordem de cadastro do exemplo e

finalizando, dentro do exemplo, a ordem de cadastro da explicação.

No subsistema do professor, além das etapas descritas anteriormente,

também é possível realizar o cadastro dos tópicos da linguagem que serão

abordados e os alunos que utilizarão o tutor. Outra opção disponível consiste na

Page 59: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

47

visualização das explicações geradas pelos alunos e a respectiva avaliação

gerada pelo STI.

3.6.2. Subsistema do Aluno

O subsistema do aluno, que é composto pela interface aluno-engenho

e pelo engenho de inferência, inicia-se realizando a identificação do aluno que irá

utilizar o STI. Após a sua identificação (Figura 9), procura-se na relação progresso

o seu estágio atual de evolução dentro do STI. Para isso determina-se, a partir da

seqüência definida pelo professor, quais as atividades que já foram executadas

com sucesso e quais estão pendentes. A barra de progresso, mostrada na

porção inferior do subsistema do aluno (Figura 10), mostra o estágio atual do

aluno em comparação com as atividades propostas. Uma vez definido o estágio

atual do aluno, carrega-se o exemplo adequando, salientando os trechos do

código-fonte que deverão ser explicados.

Figura 9: Conexão com a aplicação do aluno

Considerando o exemplo cadastrado anteriormente, o STI apresenta ao

aluno a janela mostrada na Figura 10 e aguarda uma explicação relacionada à

utilização do comando “if”:

Page 60: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

48

Figura 10: Janela principal da aplicação do aluno

O aluno formula a explicação e pressiona o botão Avaliar. O STI recebe

a explicação e, através do componente de entendimento aproximado da língua

natural existente no engenho de inferência, tenta mapear a explicação gerada

pelo aluno em comandos da Linguagem “C”.

Ilustrando o funcionamento do subsistema do aluno, é considerada a

seguinte explicação do aluno para a atividade proposta na Figura 10: “verificar se

v índice i é maior que a variável maior então atribuir v índice i à variável maior”.

Lexema Radical Lexema Radical Lexema Radical verificar {verific} que {que} índice {índic} se {se} a {a} i {i} v {v} variável {variável} a {à} índice {índic} maior {maior} variável {variável} i {i} então {entã} maior {maior} e {é} atribuir {atribu} maior {maior} v {v}

Tabela 3: Extração dos radicais

Page 61: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

49

O componente de entendimento aproximado da língua natural

inicialmente recebe a explicação e a separa em palavras. O próximo passo

consiste em efetuar a associação dos radicais a partir das palavras conforme

mostrado na Tabela 3.

Após a extração dos radicais, os mesmos são submetidos a um

processo de pré-etiquetagem, que consiste basicamente em identificar, entre os

radicais dos lexemas, os nomes das variáveis utilizadas no bloco de código-fonte

que foi explicado. É importante observar no quadro abaixo que as variáveis do

programa recebem uma etiqueta (VAR) e recebem na propriedade “observado” do

nó o valor verdadeiro (v), ou seja, foram identificados dentro da explicação. Por

exemplo, considerando a variável “i” (Tabela 4), a mesma irá receber uma

etiqueta com a identificação de “VAR” e é identificada como “observada”

(mapeada) dentro da explicação dada pelo aluno.

Lexema Etiqueta Lexema Etiqueta verificar {verific} maior {maior: VAR, v} se {se} então {entã} v {v: VAR, v} atribuir {atribu} índice {índic} v {v: VAR, v} i {i: VAR, v} índice {índic} é {é} i {i: VAR, v} maior {maior: VAR, v} a {à} que {que} variável {variável} a {a} maior {maior: VAR, v} variável {variável}

Tabela 4: Pré-etiquetagem dos radicais

Concluída a pré-etiquetagem, os lexemas que não foram mapeados

como nome de variável são, então, enviados para o processo de etiquetagem

propriamente dito, o qual está baseado em um Corpus com lexemas da língua

portuguesa (AIRES, 2000).

O componente de entendimento aproximado da língua natural procura

por lexemas com radicais similares para realizar a etiquetagem dos lexemas

remanescentes. Por exemplo, considerando o lexema “verificar”, que possui o

Page 62: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

50

radical “verific”, a consulta ao Corpus irá retornar as seguintes possibilidades de

etiquetas para o lexema:

Lexema Etiqueta Ocorrênciasverificar VTD 5 verifica VTD 1 verificados VTD 1

Tabela 5: Resultado da pesquisa na relação Corpus

Neste caso, quando identificada alguma ambigüidade será escolhida a

etiqueta do lexema que apresentar maior número de ocorrências dentro do

corpus.

Após a etiquetagem de todos os lexemas existentes na explicação, o

componente de entendimento aproximado da língua natural retira os lexemas

irrelevantes para a determinação do conteúdo da explicação, como por exemplo,

artigos e adjuntos adverbiais. As regras utilizadas para desconsiderar os lexemas

irrelevantes estão definidas dentro da relação Etiqueta. Por exemplo,

considerando o lexema verificar, é possível observar que o mesmo recebeu a

etiqueta “VTD” (Tabela 5). Realizando a procura desse lexema na relação

Etiqueta no banco de dados, obtém-se um resultado indicando que se trata de um

verbo transitivo direto, o que significa que o mesmo não pode ser ignorado na

etapa seguinte (mapeamento).

Lexema Etiqueta Lexema Etiqueta

verificar {verific: VTD, v} maior {maior: VAR, v} se {se: PPOA, f} então {entã: ADV, d} v {v: VAR, v} atribuir {atribu: VBI+PPOA, v} índice {índic: N, f} v {v: VAR, v} I {i: VAR, v} índice {índic: N, f} é {é: VLIG, f} I {i: VAR, v} maior {maior: VAR, v} à {à: PREP+ART, f} que {que: PR, f} variável {variável: ?, f} a {a: PREP, d} maior {maior: VAR, v} variável {variável: ?, f}

Tabela 6: Mapeamento dos lexemas da explicação

Page 63: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

51

A última etapa de funcionamento do componente de entendimento

tenta mapear os lexemas em comandos da Linguagem “C”. Este processo

consiste, com base na relação Mapeador, em encontrar as instruções associadas

aos lexemas utilizados na explicação. O resultado obtido ao final desta etapa é

apresentado na Tabela 6.

Onde, um valor verdadeiro (v) na etiqueta indica que o lexema foi

mapeado para um comando da linguagem “C”. Falso (f) demonstra que não foi

possível mapear o lexema. E desprezado (d) significa que o lexema não foi

considerado relevante para identificação do significado da explicação. Por

exemplo, a partir do lexema verificar é possível determinar, a partir da Tabela 1,

que o mesmo permite mapear um comando “if”, pois o mesmo possui os

seguintes lexemas determinados como essenciais: “caso”, “verificar”, “testar”, “se”

e “quando”. Neste momento, o nó relativo ao comando “if” (Figura 11) é

determinado como “observado”.

Desta forma, o subsistema do aluno determina a proximidade entre o

trecho de código-fonte esperado e o mapeado, alimentando os nós da Rede

Bayesiana (Figura 11) com os componentes esperados pela explicação, os

respectivos pesos e se o nó conseguiu ser mapeado pelo componente de

entendimento aproximado da língua natural. O resultado, produzido pela Rede

Bayesiana indica o grau de proximidade da explicação gerada pelo aluno em

relação ao esperado pelo professor.

Page 64: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

52

Figura 11: Nós da Rede Bayesiana

A partir do resultado gerado pela Rede Bayesiana, o STI classifica a

explicação do aluno em correta, incompleta ou incorreta, determinando se o aluno

irá prosseguir para uma nova atividade ou se deverá repetir ou completar a

explicação gerada originalmente. A classificação da explicação do aluno é

determinada pelas seguintes faixas:

• Correta - soma dos pesos dos componentes da explicação

determinadas pelo professor em relação ao “ideal”, sendo determinada

da seguinte forma:

Ideal = número de componentes * importância “essencial”

No exemplo: Ideal = 3 * 4 = 12

Tolerância máxima = soma das importâncias definidas pelo

professor. No exemplo: Tolerância máxima = 4 + 4 + 2 = 10

Correta = Tolerância máxima / Ideal

Considerando o exemplo: Correta = 10 / 12 * 100 = 83,33%

• Incorreta - apresenta valores entre zero e o mínimo aceitável, sendo

determinado da seguinte maneira:

Tolerância mínima = soma das importâncias atribuídas pelo

professor diferentes de “essencial”. No exemplo:

Tolerância mínima = 2

if

v[i] > maior

maior = v[i]

avaliação

Peso: 0,4Observado: sim

Peso: 0,4Observado: sim

Peso: 0,2Observado: sim

Page 65: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

53

Incorreta = Tolerância mínima / Ideal. Considerando o exemplo:

Incorreta = 2 / 12 * 100 = 16,66%

• Incompleta - deve estar entre a porcentagem identificada no item

Correta e também ser maior que o mínimo aceitável. Sendo, para este

exemplo, definida uma faixa entre 16,66 % e 83,33%.

Em resumo, considerando os pesos cadastrados para a atividade

mostrada na Tabela 2, é possível definir as seguintes faixas de valores para a

classificação da explicação:

Classificação Faixa Correta >= 83,33% Incompleta > 16,66 % e < 83,33% Incorreta <= 16,66%

Tabela 7: Exemplo das faixas para classificação de uma explicação

Uma vez realizada a classificação da explicação gerada pelo aluno,

toda a informação pertinente é inserida na relação progresso (Tabela 8). Um

procedimento de consulta às informações contidas nesta relação permite

determinar instantaneamente o desempenho do aluno perante as atividades

propostas, além de permitir ao professor analisar as avaliações geradas pelo STI.

A partir de uma análise mais aprofundada da Tabela 8 é importante,

neste momento, detalhar o conteúdo armazenado no campo Avaliação que

consiste, na verdade, na síntese de todos os passos realizados pelo STI para

gerar a classificação da explicação recebida, conceitos estes que serão de grande

importância para o entendimento dos capítulos subseqüentes. Dentro deste

campo, inicialmente, deve ser observado o resultado da etapa de entendimento

aproximado da língua natural. Esta etapa consiste em identificar cada lexema

constituinte da explicação, seguido do seu radical, etiqueta e se o mesmo foi

mapeado, ou não, ou ainda, se foi desconsiderado. Por exemplo, considerando o

lexema “verificar”, tem-se “{verific: VTD, v}”. O próximo parâmetro, armazenado

Page 66: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

54

neste campo, consiste no índice de lexemas reconhecidos que corresponde à

porcentagem dos lexemas que compõem a explicação e que foram mapeados. No

exemplo mostrado na Tabela 8, tem-se que dos 19 lexemas que compõem a

explicação 9 foram mapeados e 2 foram desprezados, desta forma, o índice é

calculado como (9 + 2) / 19, ou seja, 0,5789.

Campo Valor Código-Aluno 011 Número-Tópico 15 Número-Exemplo 6 Número-Explicação

1

Tentativa 2 Bloco-Código if (v[i] > maior)

maior = v[i]; Explicação verificar se v índice i é maior que a variável maior então atribuir v índice i à

variável maior Avaliação (do STI) Entendimento aproximado da língua natural: verificar {verific: VTD, v} se {se:

PPOA, f} v {v: VAR, v} índice {índic: N, f} i {i: VAR, v} é {é: VLIG, f} maior {maior: VAR, v} que {que: PR, f} a {a: PREP, d} variável {variável: ?, f} maior {maior: VAR, v} então {entã: ADV, d} atribuir {atribu: VBI+PPOA, v} v {v: VAR, v} índice {índic: N, f} i {i: VAR, v} à {à: PREP+ART, f} variável {variável: ?, f} maior {maior: VAR, v} Índice de lexemas reconhecidos: 0.5789473684210527 Mapeamento:(if v), (v v), (i v), (> v), (maior v), (maior v), (= v), (v v), (i v), Classificador:if 0.4 true v[i] > maior 0.4 true maior = v[i] 0.2 true Avaliação: 1.0 Faixas: 0.1666 - 0.8333 Classificação: C – Correta AutoExplC: Ótimo é isso mesmo.

Situação (Classificação)

C

Data-Início 1/9/2005 20:10:34 Data-Término 1/9/2005 20:10:34

Tabela 8: Exemplo de um registro da relação Progresso

O parâmetro mapeamento mostra os componentes que integram o

trecho do código fonte da explicação e se foram, ou não mapeados. Por exemplo,

“(if v)” indica que a palavra reservada “if” foi mapeada. O parâmetro classificador é

responsável por representar os nós da Rede Bayesiana, com seus respectivos

nome, peso e observação. Por exemplo, “if 0.4 true” indica o nó relacionado à

palavra reservada “if” (Figura 11), com o peso de 0,4 e, também, que o mesmo foi

observado a partir do mapeamento da explicação (true).

Page 67: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

55

O parâmetro avaliação contém o resultado gerado pela Rede

Bayesiana, este parâmetro posteriormente é comparado com o parâmetro faixas

que contém os valores base para classificação da explicação como correta,

incompleta ou errada. Por exemplo, o parâmetro faixas com os valores 0,1666 –

0,8333, indica que a saída produzida pela Rede Bayesiana será considerada

errada se apresentar um valor menor ou igual a 0,1666, será considerada

incompleta se apresentar valor maior que 0,1666 e menor que 0,8333 e, por fim,

será considerada correta se apresentar um valor maior ou igual a 0,8333 (Tabela

7). O resultado obtido é encontrado no parâmetro classificação.

Tomando como base a classificação da explicação, o STI apresenta ao

aluno um retorno quanto ao seu progresso (parâmetro AutoExplC), indicando o

que o aluno deverá fazer em seguida, que pode ser a mesma atividade, no caso

de explicações erradas ou incompletas, ou uma outra atividade, para o caso de

explicações consideradas corretas pelo STI.

Page 68: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

4. RESULTADOS

Page 69: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

57

O STI proposto foi avaliado a partir da especificação de 25 atividades

(Apêndice B) e da submissão do mesmo a um conjunto de 125 explicações

(Apêndice C). Essas explicações encontram-se divididas em três níveis, sendo

que a intenção primária desta avaliação consiste em tentar verificar quatro pontos

determinantes para o funcionamento do STI:

• Velocidade do módulo de entendimento aproximado da língua

natural. Pois, considerando o fator interação aluno-tutor, um dos fatores

primordiais no STI consiste no rápido retorno ao aluno da avaliação

sobre a explicação recebida;

• Detecção de explicações erradas, sem relação com o domínio (Nível

1): O tutor deve diagnosticar como errada uma explicação que não

apresente relação alguma com o domínio. Desta forma, definiu-se que

este nível é composto por 25 explicações que contém lexemas que

foram sorteados ao acaso (aleatoriamente) dentro do Corpus. As

explicações, na quase totalidade, não apresentam sentido algum.

• Detecção das explicações erradas, relacionadas com o domínio

(Nível 2): O tutor não deve aceitar uma série de lexemas relevantes ao

domínio, porém sintaticamente sem sentido algum, ou seja explicações

construídas ao acaso utilizando apenas lexemas referentes ao domínio.

Este nível também é composto por 25 explicações. Foi realizado o

mesmo procedimento com relação ao Nível 1, porém, há uma diferença

fundamental: apenas lexemas que são suportados pelo mapeador de

comandos “C” do STI foram utilizados no processo de geração.

• Detecção de explicações geradas por um ser humano (Nível 3): O

tutor deveria se comportar, adequadamente, a partir de situações

Page 70: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

58

“reais”, considerando explicações que apresentam um conteúdo

relevante ao contexto em estudo e frases sintaticamente corretas e que

englobam erros, acertos e incompletudes. São 75 explicações

sintaticamente corretas, construídas por um ser humano, especialista

no domínio de atuação do STI. Todas as frases apresentam algum

sentido dentro do contexto de aplicação do tutor e, dentre as mesmas,

encontram-se explicações corretas, incompletas e erradas igualmente

distribuídas.

As atividades propostas apresentam vários graus de complexidade,

abrangendo desde a solicitação de explicação para um simples comando,

passando pela explicação de uma linha e, finalizando com a explicação de

trechos do programa, ou seja, várias linhas do código fonte. A intenção, neste

caso, consiste em tentar determinar a precisão do STI a partir de vários graus de

complexidade das atividades propostas e, por conseqüência, a complexidade da

explicação.

Após a submissão ao STI do conjunto de explicações de acordo com

as atividades propostas (Apêndice B) comparou-se, inicialmente, o tempo de

execução do módulo de entendimento aproximado da língua natural para cada

uma das frases. Posteriormente, como o objetivo de avaliar a precisão do STI na

avaliação das explicações, determinou-se para cada tipo de classificação gerada

a média, mediana, desvio padrão e intervalo de confiança em relação ao

esperado, determinado, neste caso, por um especialista humano.

Page 71: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

59

4.1. Avaliação Preliminar

Conforme mostrada na Tabela 18, uma primeira avaliação demonstrou

um funcionamento satisfatório do STI quanto à velocidade de execução do

módulo de entendimento aproximado da língua natural com um tempo médio para

avaliação da explicação do aluno de 100ms e máximo de 700ms. Estes valores

foram obtidos através da média e do valor máximo da diferença de tempo entre os

valores dos campos Data-Término e Data-Início existentes na relação Progresso

(Tabela 17). Nesta avaliação, a exibição das atividades, por parte de interface do

aluno, foi desativada de modo que os tempos armazenados nos campos Data-

Término e Data-Início correspondem, respectivamente, ao início e término da

execução do componente de entendimento aproximado da língua natural e do

engenho de inferência para cada uma das explicações submetidas.

Apesar dos resultados gerais mostrarem um funcionamento adequado

do STI na questão da avaliação das explicações recebidas, foi observado uma

falha no entendimento de algumas explicações como mostrado na Tabela 9. Nos

níveis 1, 2 e 3, respectivamente, foram classificadas 1, 17 e 15 questões como

corretas quando, na verdade, esperava-se nenhuma correta. Além de 7, 91 e 14

explicações classificadas como incompletas nos níveis 1, 2 e 3, respectivamente.

Esperado Respostas Obtidas Nível Errada Correta Incompleta Errada

1 Total 625 1 7 617 Média 100,00% 0,16% 1,12% 98,72% 2 Total 625 17 91 517 Média 100,00% 2,72% 14,56% 82,72% 3 Total 625 15 14 596 Média 100,00% 2,40% 2,24% 95,36% Total Geral 1.875 33 112 1.730

Média 92,27% Mediana 95,36% Desvio Padrão 8,44% Invervalo de Confiança 0,0003276

Tabela 9: Avaliação Preliminar – Respostas Erradas

Page 72: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

60

Após uma análise detalhada das explicações inadequadamente

classificadas, foi constatado que o problema era devido a uma falha no

entendimento de explicações muito simples, ou seja, aquelas geradas

exclusivamente para explicar um único comando da linguagem. Esse erro ocorria

quando a explicação de um único comando era avaliada, gerava-se um peso

elevado para a Rede Bayesiana que, conseqüentemente, ocasionava a

irrelevância de qualquer outro componente existente na explicação. Por exemplo,

considerando a Tabela 10, a presença do lexema “digitar” na explicação, lexema

este relacionado ao comando “getchar()” no mapeador, faz com que a explicação

seja classificada como correta.

Bloco-Código Explicação Avaliação (do STI)

getchar() dividir precisão dados enquanto subtrair ponteiro dividir multiplicar digitar executar curto sem atribuir

Entendimento aproximado da língua natural: dividir {divid: N, f} precisão {precisã: N, f} dados {dad: N, f} enquanto {enquant: CONJSUB, d} subtrair {subtra: ?, f} ponteiro {ponteir: ?, f} dividir {divid: N, f} multiplicar {multiplic: VTD, f} digitar {digit: N, v} executar {execut: VINT, f} curto {curt: ADJ, f} sem {sem: PREP, d} atribuir {atribu: VBI+PPOA, f} Mapeamento: (getchar v), Classificador: getchar 1.0 true Avaliação: 1.0 Faixas: 0.0 - 1.0 Classificação: C - Correta AutoExplC: Está correto!

Tabela 10: Problema da classificação de explicações sobre um único comando

Com o objetivo de minimizar este problema, foi acrescentado à Rede

Bayesiana mais um nó que é responsável por apresentar um peso relativo para os

lexemas existentes na explicação mas que não foram mapeados pelo módulo e,

desta forma, determinar um peso para o contexto da explicação recebida em

relação à atividade proposta. Após sucessivos testes com o arquivo de avaliação,

Page 73: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

61

determinou-se que o melhor desempenho do STI ocorre quando esse nó é

ajustado para “observado” quando a explicação possui menos que 55% dos

lexemas mapeados.

4.2. Avaliação Final

Uma vez constatado um funcionamento mais satisfatório do módulo de

entendimento aproximado da língua natural com a implementação da resolução

para o problema acima descrito, o STI foi submetido a uma nova avaliação,

respeitando-se o mesmo conjunto de atividades e explicações submetidas na

avaliação preliminar.

Analisando o desempenho do STI com relação ao tempo de execução,

não foram observadas mudanças, permanecendo os mesmos valores médio e

máximo.

A Tabela 11 mostra uma síntese do desempenho obtido pelo STI

referente às respostas erradas encontradas nos três níveis da avaliação, cuja

análise encontra-se no próximo capítulo.

Esperado Respostas Obtidas Nível Errada Correta Incompleta Errada

1 Total 625 - 4 621 Média 100,00% 0,00% 0,64% 99,36% 2 Total 625 - 68 557 Média 100,00% 0,00% 10,88% 89,12% 3 Total 625 3 23 599 Média 100,00% 0,48% 3,68% 95,84% Total Geral 1.875 3 95 1.777

Média 94,77% Mediana 95,84% Desvio Padrão 5,20% Invervalo de Confiança 0,0001364

Tabela 11: Avaliação Final – Respostas Erradas

É importante observar, na coluna das respostas corretas obtidas, o

efeito da modificação realizada no módulo. Houve uma redução significativa do

Page 74: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

62

número de ocorrências de classificações indevidas, ou seja, a Tabela 9 (Avaliação

Preliminar) apresenta 33 casos contra apenas 3 na Avaliação Final (Tabela 11).

Observando as colunas com as explicações indevidamente classificadas como

incompletas ocorreu também uma redução, em escala menor, de 112 (Tabela 9)

para 95 casos (Tabela 11).

Page 75: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

5. DISCUSSÃO

Page 76: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

64

O STI proposto apresentou um desempenho satisfatório. Os

resultados, quanto analisados de uma maneira global, mostram um

funcionamento adequado do módulo de entendimento aproximado da língua

natural. Por outro lado, questões relacionadas à identificação do contexto da

explicação, dentro da atividade proposta para o STI, podem ser melhorados em

trabalhos futuros.

A qualidade das atividades cadastradas pelo professor também

apresenta um fator determinante para um bom desempenho do STI, assim como

ocorre em qualquer outra atividade que envolve a interação entre professor-aluno,

por exemplo, elaboração de listas de exercícios e formulação de questões para

uma avaliação. Por exemplo, as atividades devem ser elaboradas com o intuito de

verificar o entendimento que aluno possui sobre determinado tópico, permitindo

também, que ao gerar as explicações solicitadas pelo STI, o aluno amplie e

complemente esse entendimento. Para atingir a esse objetivo, o professor deve

evitar a formulação de atividades sobre apenas um determinado comando,

variável ou função da linguagem “C”, dando preferência a construção de

atividades que envolvam uma ou mais linhas do código-fonte.

Número Bloco de Código Componente Importância Peso while Essencial 0,444444ch != ‘A’ Essencial 0,444444

10

while (ch != ‘A’) ch = getchar(); ch = getchar Desejada 0,111111

Tabela 12: Exemplo da influência dos pesos dos nós

Outra característica relevante consiste na correta aplicação dos pesos,

que devem sem compatíveis ao nível de entendimento que o professor deseja

que o aluno atinja. Pois, esses pesos são determinantes no momento de realizar

a classificação da explicação gerada pelo aluno. Para ilustrar essa consideração,

analisando a atividade 10 (Tabela 12), é possível observar que foi atribuído um

Page 77: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

65

peso maior aos componentes da explicação relacionados à linha do comando

“while” enquanto a linha que apresenta a função “getchar()” apresenta um peso

mínimo. Essa característica da atribuição de pesos determina que o STI

considerará muito mais as explicações que se referem apenas ao comando

“while”, mesmo na presença das que se referenciem ao funcionamento do

“getchar()” e à atribuição recebida pela variável “ch”. Desta forma, a explicação

“enquanto ch diferente de A” seria classificada como correta pelo STI enquanto

um especialista humano diria que a mesma está incompleta.

5.1. Análise da Avaliação Preliminar

A avaliação preliminar foi importante no sentido de tentar determinar o

funcionamento como um todo do STI. Porém, com preocupações adicionais

relacionadas à velocidade de execução do engenho de inferência e do

componente de entendimento aproximado da língua natural, além da precisão da

avaliação das explicações por parte do tutor.

Os resultados obtidos foram satisfatórios, mostrando apenas uma

necessidade de ajuste da Rede Bayesiana para explicações sobre um único

comando da linguagem “C”. Este problema está em grande parte relacionado à

complexidade da explicação necessária, para pequenos códigos a serem

explicados. Por exemplo, o STI nas atividades 11, 14, 15 e 25, apresentadas na

Tabela 13, apresentou dificuldade em determinar o contexto da explicação gerada

e acabou aceitando como corretas várias explicações erradas. Por outro lado, foi

observado que a eficiência do STI aumentou, conforme aumentou o grau de

complexidade da explicação esperada, por exemplo, nas atividades 4, 6, 17, e 23

mostradas na Tabela 13.

Page 78: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

66

Número Bloco de Código Componente Importância Peso while Essencial 0,285714i < y Essencial 0,285714i ++ Essencial 0,285714

4

while(i<y) { i++; r*=x; } r *= x Necessária 0,142857

if Essencial 0,4v[i] > maior Essencial 0,4

6

if (v[i] > maior) maior = v[i]; maior = v[i] Necessária 0,2

11 getchar() getchar Essencial 114 break break Essencial 115 default default Essencial 1

for Essencial 0,190476int i = 0 Desejada 0,047619i < 3 Essencial 0,190476i ++ Essencial 0,190476auxiliar[j] = vetor[i] Essencial 0,190476

17

for (int i = 0; i < 3; i++) { auxiliar[j] = vetor[i]; j--; } j -- Essencial 0,190476

if Essencial 0,333333v[j] < v[menor] Essencial 0,333333

23

if (v[j] < v[menor]) menor = j; menor = j Essencial 0,333333

25 void void Essencial 1Tabela 13: Algumas atividades propostas

Não se pode esquecer do nó que foi adicionado à Rede Bayesiana. O

peso atribuído a este nó tenta determinar o grau de similaridade do contexto da

explicação dentro da atividade proposta. Este grau de similaridade é determinado

identificando-se o percentual de lexemas existentes na explicação que foram

mapeados. Considerando o exemplo mostrado na Tabela 10, apenas 3 lexemas

(“enquanto”, “digitar” e “sem”) de um total de 13 lexemas (Tabela 14) foram

mapeados. Desta forma, determina-se o índice de lexemas reconhecidos em

torno de 23%.

Lexema Etiqueta Lexema Etiqueta

dividir {divid: N, f} multiplicar {multiplic: VTD, f} precisão {precisã: N, f} digitar {digit: N, v} dados {dad: N, f} executar {execut: VINT, f} enquanto {enquant: CONJSUB, d} curto {curt: ADJ, f} subtrair {subtra: ?, f} sem {sem: PREP, d} ponteiro {ponteir: ?, f} atribuir {atribu: VBI+PPOA, f} dividir {divid: N, f}

Tabela 14: Etiquetagem dos lexemas que compõem a explicação

Page 79: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

67

Como este índice está abaixo de 55%, o respectivo nó é ajustado como

observado e a classificação da explicação, neste momento, passa a ser

influenciada também por esse nó (Tabela 15).

Bloco-Código Explicação Avaliação (do STI)

getchar() dividir precisão dados enquanto subtrair ponteiro dividir multiplicar digitar executar curto sem atribuir

Entendimento aproximado da língua natural: dividir {divid: N, f} precisão {precisã: N, f} dados {dad: N, f} enquanto {enquant: CONJSUB, d} subtrair {subtra: ?, f} ponteiro {ponteir: ?, f} dividir {divid: N, f} multiplicar {multiplic: VTD, f} digitar {digit: N, v} executar {execut: VINT, f} curto {curt: ADJ, f} sem {sem: PREP, d} atribuir {atribu: VBI+PPOA, f} Índice de lexemas reconhecidos: 0.23076923076923073 Mapeamento: (getchar v), Classificador: getchar 1.0 true Avaliação: 0.23076923076923073 Faixas: 0.0 - 1.0 Classificação: I - Incompleta AutoExplC: Você está no caminho certo. Mas, por favor, complete a explicação.

Tabela 15: Atuação do nó para identificação do contexto da explicação

5.2. Análise da Avaliação Final

A primeira preocupação ao analisar os resultados obtidos foi observar o

comportamento do STI com a adoção do nó adicional à Rede Bayesiana, com o

objetivo de melhorar o desempenho do mesmo perante as explicações solicitadas

apenas sobre um determinado comando da linguagem “C”. Apesar de não

conseguir sanar por completo a questão da determinação do contexto,

comparando os resultados descritos na Tabela 11 com os resultados anteriores

mostrados na Tabela 9, considerando a coluna das classificações corretas

obtidas, houve um aumento para a casa de 94,77% da precisão do tutor.

Observando os valores relativos à média, ou seja, a porcentagem de

Page 80: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

68

classificações satisfatórias do STI frente ao esperado, notou-se uma pequena

melhora, aumentando de 92,27% na avaliação preliminar (Tabela 9) para 94,77%

na avaliação final (Tabela 11) aproximando-se do valor da mediana 95,84%

(Tabela 11), valor este que consiste na medida de localização do centro da

distribuição dos valores das médias obtidas nos níveis 1, 2 e 3.

Outro parâmetro significativo está relacionado à redução do desvio

padrão de 8,44% na avaliação preliminar (Tabela 9) para 5,20% na avaliação final

(Tabela 11), valor este que é baseado nos desvios em torno da média aritmética e

que leva em consideração a totalidade dos valores em estudo, consistindo em um

indicador de variabilidade bastante estável.

Concluindo, é relevante também mostrar a redução do intervalo de

confiança de 0,0003276 (Tabela 9) para 0,0001364 (Tabela 11), o qual expressa

o conceito que existe um determinado nível de confiança em que a média se

encontra dentro do intervalo.

Outra importante consideração está relacionada à grande diferença na

classificação das questões incompletas por parte do STI em relação ao esperado.

Neste caso, é necessário observar que um lexema “enquanto”, por exemplo, ao

ser encontrado, é mapeado para o comando “while” da Linguagem “C”. Este

mapeamento, por sua vez, pode produzir um determinado peso na Rede

Bayesiana. Por outro lado, o comando “while” é composto por um segundo

componente que representa a condicional. Neste caso, quando se encontra uma

explicação que não tem nada a ver com a condição esperada, o STI apenas irá

considerá-la como não observada perante aos nós da Rede Bayesiana. Porém, o

comando “while” já observado anteriormente irá influenciar uma possível

classificação incompleta por parte do STI, independente do que foi observado no

Page 81: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

69

restante da explicação. Considerando, por outro lado, o ponto de vista de um

especialista humano, este consideraria a explicação errada, pois apesar do

estudante ter explicado uma parte dos comandos necessários, esta explicação

ocorreu fora do contexto da atividade proposta.

5.2.1 Análise das Respostas Erradas

Uma vez constatado o funcionamento global do STI, a análise é

concentrada sobre o conjunto de 25 explicações erradas do nível 3, geradas por

um especialista humano. Conforme mostrado na Tabela 16, o STI conseguiu

classificar corretamente 88% das explicações submetidas.

Esperado Respostas Obtidas Errada Correta Incompleta Errada Total Geral 25 1 2 22

Média 100,00% 4,00% 8,00% 88,00% Tabela 16: Avaliação Final – Respostas Erradas do Nível 3

Neste caso é importante observar a existência de uma explicação

incorreta, mas que o STI analisou como correta (Tabela 17). O problema,

conforme detalhado a seguir, é provocado pela questão da não identificação do

contexto da explicação.

Este problema ocorre quando a explicação concentra-se sobre um

único comando, ou seja, é utilizado apenas um nó da Rede Bayesiana para o

componente da explicação o que provoca, uma vez observado esse nó, a

classificação como correta. É importante salientar também, que para este caso,

o índice de lexemas reconhecidos foi de 66,66%, ou seja, o lexema “teclado” foi

mapeado e o lexema “o”, por ser um artigo, foi desconsiderado. Este índice, que

está acima dos 55%, faz com que o nó para identificação do contexto não seja

Page 82: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

70

considerado como observado, não influenciando, desta forma, na classificação da

explicação pelo STI.

Bloco-Código Explicação Avaliação (do STI)

getchar() apagar o teclado Entendimento aproximado da língua natural: apagar {apag: VTD, f} o {o: ART, d} teclado {tecl: N, v} Índice de lexemas reconhecidos: 0.6666666666666667 Mapeamento: (getchar v), Classificador: getchar 1.0 true Avaliação: 1.0 Faixas: 0.0 - 1.0 Classificação: C - Correta AutoExplC: Parabéns!

Tabela 17: Explicação que foi classificada de forma equivocada

5.2.2. Avaliação das Respostas Incompletas

A Tabela 18 mostra a síntese do comportamento do STI em relação às

explicações incompletas e concentrou-se sobre a amostra das 25 explicações

(incompletas) presentes no nível 3.

Esperado Respostas Obtidas Incompleta Correta Incompleta Errada Total Geral 25 4 13 8

Média 100,00% 16,00% 52,00% 32,00% Tabela 18: Avaliação Final – Respostas Incompletas

Nesta análise, na qual o STI obteve uma precisão de 52,00%, serão

consideradas as quatro explicações que foram classificadas como corretas

(Tabela 19).

Page 83: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

71

Item Bloco-Código Explicação Avaliação (do STI) A while (ch != ‘A’)

ch = getchar(); enquanto ch diferente de A

Entendimento aproximado da língua natural: enquanto {enquant: CONJSUB, d} ch {ch: VAR, v} diferente {diferent: ADJ, v} de {de: PREP, d} A {A: VAR, v} Índice de lexemas reconhecidos: 1.0 Mapeamento: (while v), (ch v), (!= v), (A v), (ch v), (= f), (getchar f), Classificador: while 0.444444444444444 true ch != ‘A’ 0.444444444444444 true ch = getchar 0.111111111111111 false Avaliação: 0.888888888888889 Faixas: 0.08333333333333333 - 0.75 Classificação: C - Correta AutoExplC: Parabéns!

B getchar() Ler Entendimento aproximado da língua natural: ler {ler: VTD, v} Índice de lexemas reconhecidos: 1.0 Mapeamento: (getchar v),

Classificador: getchar 1.0 true Avaliação: 1.0 Faixas: 0.0 - 1.0 Classificação: C - Correta AutoExplC: Parabéns!

C break Sair Entendimento aproximado da língua natural: sair {sair: VTI, v} Índice de lexemas reconhecidos: 1.0 Mapeamento: (break v), Classificador: break 1.0 true Avaliação: 1.0 Faixas: 0.0 - 1.0 Classificação: C - Correta AutoExplC: Ótimo é isso mesmo.

D pont_vetor++; incrementar pont_vetor

Entendimento aproximado da língua natural: incrementar {increment: ?, v} pont_vetor {pont_vetor: VAR, v} Índice de lexemas reconhecidos: 1.0 Mapeamento: (pont_vetor v), (++ v), Classificador: pont_vetor ++ 1.0 true Avaliação: 1.0 Faixas: 0.0 - 1.0 Classificação: C - Correta AutoExplC: Correto! Por favor, responda a próxima questão.

Tabela 19: Explicações incompletas classificadas como corretas

Page 84: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

72

Analisando o primeiro caso: “while (ch != ‘A’) ch = getchar();” (Item A),

foi considerado um peso “desejável” para o trecho “ch =getchar()” (Figura 12) o

que determina que o STI dará uma maior importância aos componentes do

comando de repetição (Figura 13), os quais uma vez observados, farão com que

a explicação seja considerada correta, independente da mesma não realizar

referências ao trecho restante.

Figura 12: Cadastro dos pesos dos componentes da atividade proposta

Observando a explicação “enquanto ch diferente de A” existente na

Tabela 19, os lexemas “enquanto”, “ch”, “diferente” e “A” foram mapeados,

produzindo na saída da Rede Bayesiana um valor superior a 75%, que, para esta

atividade, é o valor mínimo para a explicação ser classificada como correta. Desta

forma, devido à atribuição dos pesos para os componentes da explicação (Figura

13), torna-se desnecessário explicar a linha de comando “ch = getchar();” para a

explicação ser considerada correta.

As demais explicações classificadas de forma equivocada referem-se

novamente à dificuldade da determinação do contexto para explicações

solicitadas sobre um único componente da linguagem, a qual já foi discutida

anteriormente.

Page 85: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

73

Figura 13: Componentes da explicação e respectivos pesos

É importante salientar que a grande dificuldade do STI encontra-se na

classificação deste tipo de explicação, pois, a correta determinação do contexto

da explicação é crucial para uma adequada classificação. Esta atividade, para um

especialista humano, é relativamente simples, porém consiste em um grande

desafio para o processamento da língua natural, sendo ainda mais agravada pela

utilização de abordagens simplificadas, como a análise semântica latente,

adotada no STI sob discussão.

5.2.3. Avaliação das Respostas Corretas

Com relação à avaliação das respostas corretas, é possível observar

na Tabela 20 que o módulo de entendimento aproximado da língua natural

conseguiu classificá-las corretamente em 18 das 25 (72%) atividades propostas.

Outro ponto relevante consiste no fato que nenhuma das explicações foi

considerada errada pelo STI.

Esperado Respostas Obtidas Correta Correta Incompleta Errada Total Geral 25 18 7 0

Média 100,00% 72,00% 28,00% 0,00% Tabela 20: Avaliação Final – Análise Corretas

A análise a seguir é detalhada sobre as sete explicações que foram

classificadas como incompletas (Tabelas 21, 22, e 23).

while

ch != ‘A’

ch = getchar

avaliação

Peso: 0,44444

Peso: 0,44444

Peso: 0,11111

Page 86: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

74

Observando os itens A e F mostrados nas Tabelas 21, 22 e 23, nota-se

que o não entendimento ocorreu devido a uma falha na construção do módulo do

mapeador de comandos que, nestas atividades, não conseguiu identificar a

utilização de vetores. Por outro lado, nos itens C e D (Tabelas 21, 22 e 22), a

falha ocorreu devido à existência de ambigüidade no operador para ponteiros “*”

em relação ao operador de multiplicação. Neste caso, novamente, o problema

ocorreu no mapeador de comandos.

Item Bloco-Código Explicação Avaliação (do STI) A int v[5] = { 4, 3, 8, 2, 1}; declarar uma

variável vetor de inteiros, v e inicializar com os valores 4, 3, 8, 2, 1

Entendimento aproximado da língua natural: declarar {declar: VINT, v} uma {uma: ART, d} variável {variável: ?, v} vetor {vetor: ?, v} de {de: PREP, d} inteiros {inteir: ADJ, v} v {v: VAR, v} e {e: CONJCOORD, d} inicializar {inicializ: ?, v} com {com: PREP, d} os {os: ART, d} valores {valor: N, d} 4 {4: VAR, v} {: PREP, d} 3 {3: VAR, v} {: PREP, d} 8 {8: VAR, v} {: PREP, d} 2 {2: VAR, v} {: PREP, d} 1 {1: VAR, v} Índice de lexemas reconhecidos: 1.0 Mapeamento: (int v), (v v), (5 f), (= f), (4 v), (3 v), (8 v), (2 v), (1 v), Classificador: int 0.5 true v[5] = 4 3 8 2 1 0.5 false Avaliação: 0.5 Faixas: 0.0 - 1.0 Classificação: I - Incompleta AutoExplC: Você está no caminho certo. Mas, por favor, complete a explicação.

B default executar este bloco padrão

Entendimento aproximado da língua natural: executar {execut: VINT, f} este {este: PD, f} bloco {bloc: N, f} padrão {padrã: N, v} Índice de lexemas reconhecidos: 0.25 Mapeamento: (default v), Classificador: default 1.0 true Avaliação: 0.25 Faixas: 0.0 - 1.0 Classificação: I - Incompleta AutoExplC: Por favor, complete a explicação

Tabela 21: Explicações incorretamente classificadas pelo STI

Page 87: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

75

Item Bloco-Código Explicação Avaliação (do STI) C int *pont_vetor; declarar a

variável ponteiro para inteiros pont_vetor

Entendimento aproximado da língua natural: declarar {declar: VINT, v} a {a: PREP, d} variável {variável: ?, v} ponteiro {ponteir: ?, v} para {par: PREP, d} inteiros {inteir: ADJ, v} pont_vetor {pont_vetor: VAR, v} Índice de lexemas reconhecidos: 1.0 Mapeamento: (int v), (* f), (pont_vetor v), Classificador: int 0.5 true * pont_vetor 0.5 false Avaliação: 0.5 Faixas: 0.0 - 1.0 Classificação: I – Incompleta AutoExplC: Você está no caminho certo. Mas, por favor, complete a explicação.

D while (*pont_vetor != 0) { pont_vetor++; }

enquanto o conteúdo do ponteiro pont_vetor for diferente de 0 incrementar o endereço do ponteiro

Entendimento aproximado da língua natural: enquanto {enquant: CONJSUB, d} o {o: ART, d} conteúdo {conteúd: N, v} do {do: PREP+ART, f} ponteiro {ponteir: ?, v} pont_vetor {pont_vetor: VAR, v} for {for: VLIG, f} diferente {diferent: ADJ, v} de {de: PREP, d} 0 {0: VAR, v} incrementar {increment: ?, v} o {o: ART, d} endereço {enderec: N, f} do {do: PREP+ART, f} ponteiro {ponteir: ?, v} Índice de lexemas reconhecidos: 0.7333333333333334 Mapeamento: (while v), (* f), (pont_vetor v), (!= v), (0 v), (pont_vetor v), (++ v), Classificador: while 0.333333333333333 true * pont_vetor != 0 0.333333333333333 false pont_vetor ++ 0.333333333333333 true Avaliação: 0.6666666666666667 Faixas: 0.0 - 1.0 Classificação: I - Incompleta AutoExplC: Por favor, complete a explicação

Tabela 22: Continuação da Tabela 21

Page 88: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

76

Item Bloco-Código Explicação Avaliação (do STI) E pont_vetor++; incrementar o

endereço do ponteiro pont_vetor

Entendimento aproximado da língua natural: incrementar {increment: ?, v} o {o: ART, d} endereço {enderec: N, f} do {do: PREP+ART, f} ponteiro {ponteir: ?, f} pont_vetor {pont_vetor: VAR, v} Índice de lexemas reconhecidos: 0.5 Mapeamento: (pont_vetor v), (++ v), Classificador: pont_vetor ++ 1.0 true Avaliação: 0.5 Faixas: 0.0 - 1.0 Classificação: I – Incompleta AutoExplC: Por favor, complete a explicação

F printf("%f, ", v[i]); imprimir o valor do elemento do vetor v com índice i, utilizando uma máscara %f

Entendimento aproximado da língua natural: imprimir {imprim: VTI+PPOA, v} o {o: ART, d} valor {valor: N, f} do {do: PREP+ART, f} elemento {element: N, f} do {do: PREP+ART, f} vetor {vetor: ?, f} v {v: VAR, v} com {com: PREP, d} índice {índic: N, f} i {i: VAR, v} {: PREP, d} utilizando {utiliz: VTD, f} uma {uma: ART, d} máscara {másc: N, f} %f {%f: CON, v} Índice de lexemas reconhecidos: 0.5 Mapeamento: (printf v), (%f, v), (v v), (i v), Classificador: printf 0.5 true "%f, " v[i] 0.5 true Avaliação: 0.5 Faixas: 0.0 - 1.0 Classificação: I - Incompleta AutoExplC: Por favor, complete a explicação

G void declarar uma função que retorna nada

Entendimento aproximado da língua natural: declarar {declar: VINT, f} uma {uma: ART, d} função {funçã: N, f} que {que: PR, f} retorna {retorn: VTI, f} nada {nad: PIND, v} Índice de lexemas reconhecidos: 0.33333333333333337 Mapeamento: (void v), Classificador: void 1.0 true Avaliação: 0.33333333333333337 Faixas: 0.0 - 1.0 Classificação: I - Incompleta AutoExplC: Por favor, complete a explicação

Tabela 23: Continuação da Tabela 22

Page 89: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

77

Nos itens B, E e G mostrados nas Tabelas 21, 22 e 23, o problema

ocorreu devido à inclusão de um nó à Rede Bayesiana para tentar minimizar o

problema do STI não conseguir identificar o contexto em atividades que solicitam

a explicação de apenas um comando da linguagem. Nestas três atividades,

apesar do STI conseguir identificar a existência dos lexemas esperados para a

explicação, o peso do nó utilizado para identificar o contexto fez com que, em

todos os casos, as explicações fossem classificadas como incompletas.

Page 90: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

6. CONCLUSÃO

Page 91: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

79

O presente trabalho é dividido em várias etapas. Inicialmente é

realizada a revisão bibliográfica sobre auto-explicação de exemplos e STIs. Esta

etapa inicial permite uma concepção prévia do modelo do STI que foi proposto.

Em um segundo momento, os esforços são concentrados na pesquisa para

determinar a forma de representação do conhecimento que foi adotada no STI, a

terceira etapa é o estudo e a definição de como realizar o processamento da

língua natural. A última etapa consistiu no processo de avaliação do STI e a

análise dos resultados obtidos.

As pesquisas em STI apresentam uma grande preocupação

relacionada com a construção de ambientes que possibilitem um aprendizado

mais eficiente. Outro fator relevante consiste na interação entre aluno e tutor que,

cada vez mais, procura se aproximar da interação aluno-professor, tornando o STI

uma extensão da sala de aula e fazendo com que esta interação ocorra de

maneira mais natural possível.

Por outro lado, o desenvolvimento de STIs apresenta uma série de

dificuldades e desafios, entre os quais pode-se salientar a representação do

conhecimento, o entendimento da língua natural e a avaliação, por parte do STI,

da explicação gerada pelo aluno.

Além da escolha da representação do conhecimento, é importante

também observar o grande volume de trabalho que é necessário para mapear o

conhecimento de um especialista humano para uma base de conhecimento.

Técnicas de processamento da língua natural permitem grandes avanços nesta

interação, porém ainda apresentam um alto grau de dificuldade na sua

implementação. Dentro deste contexto a abordagem da análise semântica latente

(WIEMER-HASTINGS et al, 1999), utilizada no tutor proposto nesta dissertação,

Page 92: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

80

apresenta bons resultados em domínios que podem ser representados através de

um conjunto restrito de lexemas. A adoção desta técnica facilitou de maneira

significativa o processo de implementação do módulo de entendimento

aproximado da língua natural e, como analisado anteriormente, apresentou

resultados satisfatórios, conforme sintetizado na Tabela 24.

Considerando o desempenho global do STI no Nível 3 (Tabela 24), ou

seja, analisando o desempenho do STI em relação às explicações criadas por um

especialista humano, pode-se observar uma precisão média de 70,67% na

avaliação adequada das explicações, estando esse valor próximo à mediana

72%. Por outro lado, os valores elevados no desvio padrão (18,04%) e no

intervalo de confiança (0,013576) são influenciados, em grande parte, pela

dificuldade apresentada pelo STI na classificação das explicações incompletas,

fato este, já discutido anteriormente no item 5.2.2.

Amostra Média ObtidaErrada 88,00%Incompleta 52,00%Correta 72,00%

Média 70,67%Mediana 72,00%

Desvio Padrão 18,04%Invervalo de Confiança 0,013576

Tabela 24: Síntese dos resultados obtidos na avaliação final em relação ao Nível 3

Considerando a avaliação, por parte do STI, das explicações geradas,

a adoção de técnicas de raciocínio probabilístico mostraram-se acertadas pois

conseguem trabalhar com razoável precisão dentro de um ambiente que muitas

vezes recebe dados incertos ou imprecisos, pois não é possível deixar de lado o

fato do aluno estar em processo de aprendizado e que fatores de incerteza

estejam sempre presentes dentro deste contexto.

Page 93: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

81

Algumas das limitações observadas no STI podem ser abordadas em

trabalhos futuros, dentre os quais é relevante citar:

• Um estudo mais aprofundado sobre as faixas ideais para classificação

das explicações poderia aumentar sensivelmente a precisão do STI

referente à classificação das respostas incompletas.

• A implementação de melhorias no módulo mapeador de comandos da

linguagem “C”, além de uma possível integração do tutor com um

compilador da linguagem “C”, permitiria a melhoria na classificação das

explicações por parte do STI e também possibilitaria ampliar o escopo

de atuação do STI, permitindo extrapolações e simulações de

alterações efetuadas sobre o código-fonte.

• Investigação sobre o uso do Raciocínio Baseado em Casos como

alternativa para tentar aumentar a precisão do STI na classificação das

explicações.

• Necessidade do aprimoramento do próprio módulo de entendimento

aproximado da língua natural dando uma ênfase maior à questão da

análise semântica ao invés da técnica de análise semântica latente

utilizada neste STI.

Page 94: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

7. REFERÊNCIAS

Page 95: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

83

AIRES, R. V. X. Implementação, Adaptação, Combinação e Avaliação de Etiquetadores para o Português do Brasil. 2000. Dissertação (Mestrado) - Instituto de Ciências Matemáticas e de Computação de São Carlos, Universidade de São Paulo, São Carlos, 2000. Disponível em: <http://www.nilc.icmc.usp.br/nilc/pessoas/rachelport.htm>. Acesso em: 10 de maio de 2005.

ALEVEN, V.; POPESCU, O.; KOEDINGER, K. Towards tutorial dialog to support

self-explanation: Adding natural language understanding to a cognitive tutor. In: INTERNATIONAL CONFERENCE ON AI AND EDUCATION, 10., 2001. Anais 10th International Conference on AI and Education. Disponível em: <http://citeseer.nj.nec.com/ 510868.html>. Acesso em: 10 de novembro 2003.

ANDERSON, J. R.; CORBETT, A. T.; KOEDINGER, K. R.; PELLETIER, R.

Cognitive tutors: Lessons learned. The Journal of the Learning Sciences, n.4, p.167–207, 1995. Disponível em: <http://act-r.psy.cmu.edu/papers/ Lessons_Learned.html>. Acesso em: 3 de maio de 2005.

BHATNAGAR, R. K.; KANAL, L. N. Handling Uncertain Information: A Review of

Numeric and Non-numeric Methods In: KANAL, L.N.; LEMMER, J.F. Uncertainty in Artificial Intelligence. Amsterdam: Elsevier Science, 1986.

BRUSILOVSKY, P.; SCHWARZ, E.; WEBER, G. ELM-ART: An intelligent tutoring

system on World Wide Web. In: FRASSON, C.; GAUTHIER, G.; LESGOLD, A. Intelligent Tutoring Systems. Berlin: Springer Verlag, 1996. v.1086, p.261-269.

CHI, M. T. H.; BASSOK, M.; LEWIS, M. W.; REIMANN, P.; GLASER, R. Self-

explanations: How students study and use examples to solve problems. Cognitive Science, n.13, p.145-182, 1989. Disponível em: <http://www.pitt. edu/~chi/papers/ChiBassokLewisReimannGlaser.pdf>. Acesso em: 30 de setembro de 2003.

CHI, M. T. H.; DE LEEUW, N.; CHIU, M.; LA VANCHER, C. Eliciting self-

explanations improves understanting. Cognitive Science, n.18, p.439-477, 1994. Disponível em: <http://www.pitt.edu/~chi/papers/Self-explanations 94.pdf>. Acesso em: 17 de setembro de 2003.

CONATI, C.; LARKIN, J.; VANLEHN, K. A computer framework to suport self-

explanation. In: DU BOULAY B.; MIZOGUCHI R. In: ARTIFICIAL INTELLIGENCE IN EDUCATION, 8., 1997, Ohmsha. Anais 8th Artificial Intelligence in Education. Ohmsha: IOS Press, 1997.

CONATI, C.; VANLEHN, K. Teaching meta-cognitive skills: implementation and

evaluation of a tutoring system to self-explanation while learning from examples. In: LAJOIE, S. P.; VIVET, M. In: Artificial Intelligence in Education. Amsterdam: IOS Press, 1999. p.297-304.

Page 96: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

84

CORBETT, A. T.; ANDERSON, J. R. LISP intelligent tutoring system: Research in skill acquisition. In: LARKIN, J. H.; CHABAY, R. W. Computer-assisted instruction and intelligent tutoring systems: Establishing communication and collaboration. Hillsdale, NJ: Erlbaum, 1992. p.73–110. Disponível em: <http://act-r.psy.cmu.edu/publications/pubinfo?id=167>. Acesso em: 10 de maio de 2005.

CORBETT, A. T.; BHATNAGAR, A. Student modeling in the ACT Programming

Tutor: Adjusting procedural learning model with declarative knowledge. In: JAMESON, A.; PARIS, C.; TASSO, C. User Modeling. New York,1997.

FREEDMAN, R.; ALI, S. S.; MCROY, S. What is an intelligent tutoring system? In:

Intelligence, v.11, n.3, p.15-16, 2000. Disponível em: <http://www.cs.niu. edu/~freedman/papers/link2000.ps>. Acesso em: 16 de setembro de 2003.

FREEDMAN, R.; ZHOU, Y.; GLASS, M.; KIM, J.; EVENS, M. Using rule induction

to assist in rule construction for a natural-language based intelligent tutoring system. In: ANNUAL CONFERENCE OF THE COGNITIVE SCIENCE SOCIETY, 20., 1998, Hillsdale, NJ. Anais 20th Annual Conference of the Cognitive Science Society. Hillsdale, NJ: Erlbaum, 1998, p. 362–367. Disponível em: <http://www.cs.iit.edu/~circsim/documents/ rfcog98.pdf>. Acesso em: 8 de maio de 2005.

GRAESSER, A. C; WIEMER-HASTINGS, K.; WIEMER-HASTINGS, P.; KREUZ,

R.; Tutoring Research Group. AutoTutor: A simulation of a human tutor. In: Journal of Cognitive Systems Research, n.1, p. 35-51, 1999.

HALL, P.; WOOD, P. Intelligent Tutoring Systems: A Review for Beginners. In:

Canadian Journal of Educational Communication, v.19, n.2, p.107-123, 1990.

HECKERMAN, D. A tutorial on learning bayesian networks. Technical Report: MSR-TR-95-06. Redmond: Microsoft Corporation, 1995.

JENSEN, V. Bayesian networks and decision graphs. Springer, 2001. JURAFSKY, D.; MARTIN, J. H. Speech and language processing. New Jersey:

Prentice-Hall, 2000. KOLODNER, J. Case based reasoning. San Mateo, CA: Morgan Kaufmann

Publishers, 1993. KONZEN, A.; FROZZA, R. Uma estratégia de ensino híbrida para sistemas

tutores inteligentes. In: SEMINÁRIO DE INICIAÇÃO CIENTÍFICA E JORNADA DE ENSINO, PESQUISA E EXTENSÃO DA UNIVERSIDADE DE SANTA CRUZ DO SUL, 5., 1999, Santa Cruz do Sul. Anais 5o Seminário de Iniciação Científica e Jornada de Ensino, Pesquisa e Extensão da Universidade de Santa Cruz do Sul. Santa Cruz do Sul: Universidade de Santa Cruz do Sul, 1999.

Page 97: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

85

LANDAUER, T. K. On the computational basis of learning and cognition: Arguments from LSA. In: ROSS, N., The psychology of learning and motivation, v.1, p.43-84, 2002.

LIMA, D. R.; ROSATELLI, M. C. Um sistema tutor inteligente para um ambiente

virtual de ensino aprendizagem. In: CONGRESSO DA SOCIEDADE BRASILEIRA DA COMPUTAÇÃO, 23., 2003, Campinas. Anais 23o Congresso da Sociedade Brasileira de Computação. Campinas: UNICAMP, 2003. Disponível em: <http://www.ensinoweb.com.br/docs/ Artigo_STI.pdf>. Acesso em: 11 de maio de 2005.

LUSTOSA, V. G.; ALVARENGA, R. O estado da arte em inteligência artificial.

Colabor@ - Revista Digital da Comunidade Virtual de Aprendizagem da Rede das Instituições Católicas de Ensino Superior, v. 2, n. 8, 2004. Disponível em: <http://www.ricesu.com.br/colabora/n8/>. Acesso em 12 de fevereiro de 2005.

MCARTHUR, D.; LEWIS, M.; BISHAY, M. The roles of artificial intelligence in

education: current progress and future prospects. Santa Monica, CA: RAND, 1993.

MINSKY, M. A framework for representing knowledge. In: MIT-AI Laboratory

Memo, n.306, 1974. MURRAY, R. C.; VANLEHN, K. DT Tutor: A decision-theoretic, dynamic approach

for optimal selection of tutorial actions. In: GAUTHIER, G.; FRASSON, C.; VANLEHN, K. Intelligent Tutoring Systems. New York, 2000, p.153-162.

PEROTTO, F. S.; VICARI, R. M. Modelagem do conhecimento, sistemas

especialistas e o projeto SEAMED. In: Revista Eletrônica de Iniciação Científica, v.1, n.1. Sociedade Brasileira de Computação, 2001. Disponível em: <http://www.sbc.org.br/reic/edicoes/2001e1/>. Acesso em: 15 de abril de 2005.

POPESCU, O.; ALEVEN, V.; KOEDINGER, K. A knowledge-based approach to

understanding students’ explanations. In: CONFERENCE ON ARTIFICIAL INTELLIGENCE IN EDUCATION, 2003, Sidney, Austrália. Anais Conference on Artificial Intelligence in Education 2003. Sidney, Austrália, 2003. Disponível em <http://www.cs.usyd.edu.au/~aied/vol6/vol6_Popescu.pdf>. Acesso em: 18 de agosto de 2004.

PORTER, M. F. An algorithm for suffix stripping. In: Program, v.14, n.3, p.130-

137, 1980. Disponível em: <http://www.tartarus.org/~martin/PorterStemmer/> e <http://snowball.tartarus.org/>. Acesso em: 10 de maio de 2005.

Page 98: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

86

REDMOND, M.; PHILLIPS, S. Encouraging self-explanation through case-based tutoring, a case study. In: INTERNATIONAL CONFERENCE ON CASE-BASED REASONING, 1997, Providence, Rhode Island. Anais International Conference on Case-Based Reasoning 1997. Providence, Rhode Island, 1997. p.132-144. Disponível em: <http://citeseer.nj.nec.com/ 133925.html>. Acesso em: 25 de agosto de 2003.

RICH, E.; KNIGHT, K. Inteligência Artificial. Makron Books, 1993, 722p. RUSSEL, S.; NORVIG, P. Artificial intelligence: A modern approach. New

Jersey: Prentice Hall, 1995. SIVIA, D. S. Data analysis: A bayesian tutorial. Oxford University Press, 1996. SCHWORM, S.; RENKL, A. Learning by solved example problems: Instructional

explanations reduce self-explanation activity. In: ANNUAL MEETING OF THE COGNITIVE SCIENCE SOCIETY, 24., 2002, Fairfax, Virginia. Anais 24th Annual Meeting of the Cognitive Science Society. Fairfax, Virginia: George Mason University, 2002. Disponível em: <http://cogsci.psy.utexas.edu/ confproc/gmu02/final_ind_files/schworm_renkl.pdf>. Acesso em: 3 de setembro de 2003.

SRIRAM, R. Intelligent systems for engineering: A knowledge-based

approach. New York: Springer-Verlag, 1997. TRAFTON, J.; REISER, B. The contributions of studying examples and solving

problems to skill acquisition. In: ANNUAL CONFERENCE OF THE COGNITIVE SCIENCE SOCIETY, 15., 1993. Anais 15th Annual Conference of the Cognitive Science Society. Disponível em: <http://citeseer. nj.nec.com/149956.html>. Acesso em: 10 de outubro de 2003.

VANLEHN, K. Analogy events: How examples are used during problem solving.

Cognitive Science, v.22, n.3, p.347-388, 1998. Disponível em: <http://www. pitt.edu/~vanlehn/distrib/VanLehnCogSci98.pdf>. Acesso em: 17 de setembro de 2003.

WEBER, G.; MÖLLENBERG, A. ELM-PE: A knowledge-based programming

environment for learning LISP. In: ED-MEDIA, 1994, Vancouver, Canadá. Anais ED-Media 1994. Vancouver, Canadá, 1994, p.557-562.

WEBER, G.; BRUSILOVSKY, M. S.; STENLE, F. ELM-PE: An intelligent

learning environment for programming. 1996. Disponível em: <http://www.psychologie. uni-trier.de:8000/projects/ELM/ELM-PE/tour.html>. Acesso em: 3 de outubro de 2003.

WIEMER-HASTINGS P.; WIEMER-HASTINGS, K.; GRAESSER, A. C.

Approximate natural language understanding for an intelligent tutor. In: American Association for Artificial Intelligence. Menlo Park, CA: AAAI Press. 1999. p.172-176. Disponível em: <http://internal.autotutor.org/papers/ approx.pdf>. Acesso em: 10 de maio de 2005.

Page 99: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

87

WOOLF, B. P.; BECK, J.; ELIOT, C.; STERN, M. Growth and maturity of intelligent tutoring systems: A status report. In: FORBUS, K. D., FELTOVICH, P. J. Smart Machines in Education. Menlo Park, CA: AAAI Press. 2002. p.99-144.

ZHOU, Y.; FREEDMAN, R.; GLASS, M. Delivery hints in a dialogue-based

intelligent tutoring system. In: NACIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE, 16., 1999, Orlando. Anais 16th Nacional Conference on Artificial Intelligence. Orlando, 1999. Disponível em: <http://citeseer.nj.nec. com/zhou99delivering.html>. Acesso em: 16 de setembro de 2003.

Page 100: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

APÊNDICES

Page 101: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

89

A. Estrutura das Relações

Exemplo Campo Tipo de Dados Tamanho Descrição

Numero Inteiro 11 É a chave primária, recebe um número inteiro automaticamente durante o cadastro.

Descrição Caracter 255 Descrição do problema formulado pelo professor.

Resolução Memorando - Código-fonte com a resolução do problema.

Mapeador

Campo Tipo de Dados Tamanho Descrição Tipo Caracter 25 Tipo do componente: comando,

atribuição, expressão, operadores lógicos ou aritméticos.

Comando Caracter 50 Primitiva da Linguagem “C” que representa o comando.

Sintaxe Caracter 255 Sintaxe esperada. Terminador Caracter 1 Caracter que representa o

terminador do comando, normalmente ponto-e-vírgula, mas em alguns casos dois pontos (case) ou nenhum (do).

Número-Componente Inteiro 2 Número de componentes que formam a instrução.

Deslocamento Inteiro 2 Indica a partir de que componente a instrução deve ser composta.

Lexema Memorando - Lexemas, da língua portuguesa, que permitem mapear a respectiva instrução, apresentando-se etiquetados como essenciais ou opcionais.

Explicação

Campo Tipo de Dados Tamanho Descrição

Número-Exemplo

Inteiro 11 Número do exemplo ao qual a explicação está relacionada.

Número Inteiro 11 Número da explicação gerado automaticamente durante o cadastro.

Mensagem Memorando - Texto formulado pelo professor, que será apresentado para orientar o aluno durante a explicação.

Seleção-Ínicio Inteiro 11 Posição de início, em termos de caracter, do trecho do código-fonte.

Seleção-Término Inteiro 11 Posição de término. Número-Tópico Inteiro 11 Número do tópico com o qual a

explicação se relaciona.

Page 102: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

90

Peso-Explicação Campo Tipo de

Dados Tamanho Descrição

Número-Exemplo Inteiro 11 Número do exemplo relacionado. Número-Explicação Inteiro 11 Número da explicação relacionada. Seleção-Início Inteiro 11 Posição de início, em termos de

caracter, do componente dentro do código-fonte.

Seleção-Término Inteiro 11 Posição de término. Componente Caracter 255 Componente da instrução. Importância Inteiro 1 Importância do componente da

explicação dentro do contexto geral, sendo convencionado o valor 4 para essencial, 2 para necessária e 1 para desejável.

Peso Ponto Flutuante

17,15 Peso do componente dentro do contexto geral da explicação.

Corpus

Campo Tipo de Dados Tamanho Descrição Lexema Caracter 50 Contém o lexema. Etiqueta Caracter 50 Etiqueta atribuída ao lexema. Ocorrência Inteiro 6 Número de ocorrências do conjunto

lexema-etiqueta dentro do corpus. É utilizada para determinar, quando ocorre ambigüidade, a maior probabilidade de uso do lexema.

Etiqueta

Campo Tipo de Dados Tamanho Descrição Identificador Caracter 25 Conteúdo da etiqueta. Descrição Caracter 50 Descrição do conteúdo da etiqueta. Ignorar Caracter 1 Determina se um lexema etiquetado com

este identificador deve, ou não, ser considerando na determinação do conteúdo da frase.

Progresso

Campo Tipo de Dados Tamanho Descrição Código-Aluno Caracter 10 Código do aluno. Número-Tópico Inteiro 11 Número do tópico. Número-Exemplo

Inteiro 11 Número do exemplo ao qual se refere a atividade.

Número-Explicação

Inteiro 11 Número da atividade.

Tentativa Inteiro 11 Quantidade de tentativas realizadas pelo aluno nesta atividade.

Bloco-Código Memorando - Trecho do programa que deverá ser explicado.

Explicação Memorando - Explicação gerada pelo aluno. Avaliação Memorando - Avaliação da explicação pelo STI. Situação Caracter 1 Classificação gerada pelo STI, a partir

da avaliação. Pode ser: C- Correta, I – Incompleta e E – Errada.

Data-Início Data-Hora - Data e horário em que o aluno iniciou a resolução da atividade.

Data-Término Data-Hora - Data e horário em que o aluno terminou a resolução da atividade.

Page 103: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

91

B. Atividades Propostas para a Avaliação do STI

Neste apêndice são mostradas as 25 atividades que foram utilizadas

para a avaliação do STI. Onde a coluna número mostra o número da atividade

proposta, a coluna bloco de código contém o trecho do código-fonte que o aluno

irá explicar.

Na coluna componente são exibidos os componentes da atividade que

irão compor os nós da Rede Bayesiana, sendo que as próximas colunas

representam, respectivamente, o grau de importância e o peso associado a cada

nó.

Número Bloco de Código Componente Importância Peso

int Essencial 0,333333y = 5 Necessária 0,166667int Essencial 0,333333

1

int y = 5; int z = x + y; z = x + y Necessária 0,166667

printf Necessária 0,3333332

printf("soma: %d", z); "soma: %d", z Essencial 0,666667

if Necessária 0,3333333

if (x % 2) x % 2 Essencial 0,666667

while Essencial 0,285714i < y Essencial 0,285714i ++ Essencial 0,285714

4

while(i<y) { i++; r*=x; } r *= x Necessária 0,142857

if Essencial 0,25a > 5 Essencial 0,25c = a + b Necessária 0,125else Essencial 0,25

5

if (a > 5) c = a + b; else c = a - b; c = a - b Necessária 0,125

if Essencial 0,4v[i] > maior Essencial 0,4

6

if (v[i] > maior) maior = v[i]; maior = v[i] Necessária 0,2

int Essencial 0,57

int v[5] = { 4, 3, 8, 2, 1}; v[5] = 4 3 8 2 1 Essencial 0,5

int Essencial 0,88

int maior = 0; maior = 0 Desejada 0,2

9 ch = 0; ch = 0 Essencial 1

Page 104: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

92

Número Bloco de Código Componente Importância Peso while Essencial 0,444444ch != A Essencial 0,444444

10

while (ch != A) ch = getchar(); ch = getchar Desejada 0,111111

11 getchar() getchar Essencial 112 i += 2; i += 2 Essencial 1

while Essencial 0,513

while (i <= 10) i <= 10 Essencial 0,5

14 Break Break Essencial 115 default default Essencial 1

Scanf Essencial 0,516

scanf ("%d", &n); "%d", &, n Essencial 0,5

for Essencial 0,190476int i = 0 Desejada 0,047619i < 3 Essencial 0,190476i ++ Essencial 0,190476auxiliar[j] = vetor[i] Essencial 0,190476

17

for (int i = 0; i < 3; i++) { auxiliar[j] = vetor[i]; j--; } j -- Essencial 0,190476

int Essencial 0,518

Int auxiliar[3]; auxiliar[3] Essencial 0,5

int Essencial 0,519 int *pont_vetor; * pont_vetor Essencial 0,5

while Essencial 0,333333* pont_vetor != 0 Essencial 0,333333

20

while (*pont_vetor != 0) { pont_vetor++; } pont_vetor ++ Essencial 0,333333

21 pont_vetor++; pont_vetor ++ Essencial 1return Essencial 0,522

Return (0); 0 Essencial 0,5

if Essencial 0,333333v[j] < v[menor] Essencial 0,333333

23

if (v[j] < v[menor]) menor = j; menor = j Essencial 0,333333

printf Essencial 0,524

printf("%f, ", v[i]); "%f, " v[i] Essencial 0,5

25 Void void Essencial 1

Page 105: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

93

C. Explicações Utilizadas na Avaliação do STI

Conjunto de explicações que foram utilizadas para realizar a avaliação

do STI, sendo importante observar que no Nível 1 e 2 as explicações em sua

totalidade são consideradas erradas e foram geradas automaticamente através de

lexemas existentes no Corpus (Nível 1) e lexemas suportados pelo mapeador de

comandos da linguagem “C” (Nível 2).

No nível 3 as explicações foram geradas por um especialista humano

no domínio de atuação do STI e consistem em 75 explicações igualmente

divididas entre corretas, incompletas e erradas.

# Nível 1 # AutoExplC - Arquivo para avaliação do módulo do aluno # Geração automática de frases com palavras existentes no corpus # provém destruídos Continuava transformar-se bananeiras torno serrana onda tempos planta sotaque engano emboscada solo incorporou ficoeritrina longe descarregam acusando pereiras vigilantes progride Oviedo brizanta acontecia Waldir cai encolhia Real mascate invaginações ternura diacinese milharal deserto engordando Berta confundir coxilhas trombeta Ristovski preta desmatamento renovados Stuart regra Bloch medir dúvida davam colesterol tramitação moitas Atravessamos ligada contentava fazia consolo principalmente Vieram morrem convenceu ativa saracoteando orientados transpassado imprimia-lhe forrageira adapta recomenda-se ética mover extingue examine exatamente Donner percebemos para assinados dissolução soltamos isso efeito terceirizando improvisei sedentária Aspásia seguro resultaram trocou bombardear forrada fomento atletismo gramíneas aeróbico Congresso sucedendo-se Bank tomei envoltório arcos trabalhado cristal ambos penetra embarcou lua bacterioclorofila mistério gerada caracteres cousa assessores tentava atrapalhado reclamou duque verbo feitiços amealhando Legislativa anuncia denota influencia fora improvisou-se flagrante baixo Exclamou operando utilizadas transformar aprimorar africano ferver devagar surpreender-se valsa divulgaria passarem retraiu-se ritual garota milagre atinja cego sofriam basta plumas criadeira converteu-se cardiovasculares bateu passou brandamente intercalar cobertura esvaía-se-me estratégicos devendo caseira ilustra bagas possível podem chorar rachados Ipanema dessa ficar deixou preparando felicíssimo sermões superávit melancia quantia uva argumentos Albert princípio parecia União tropa adapta aristocráticas fenação conflitos estabilidade situação meia arregaça-lhe imediatamente friamente trata paralelo horizontes analisada constitui milagre deve-se porteiro sobreviventes minimetralhadoras continuou transação atestam sa tablóide vista quiasmas camaradas peito frigoríficos isolado Jumil incêndio acompanhar abrir embelezamento excomungado escaramuçar tréguas protistas chocou altar Ademar separar-se o felá agora fezes Haddad escritório cartão levantou tomam Unicamp Lourenço qualquer mujique permitindo deposto desembarque fim condicionamento andar Pereira melhoramento trocara missionários capins cego sofriam basta plumas criadeira peito sucedendo-se Bank tomei forrada fomento atletismo desmatamento renovados Stuart regra Bloch medir dúvida davam colesterol verbo feitiços amealhando Legislativa acompanhar abrir embelezamento # # Nível 2 # AutoExplC - Arquivo para avaliação do módulo do aluno # Geração automática de frases apenas com lexemas suportados pelo mapeador de comandos “C” # enumerar definir endereço estrutura para constante vazio criar para caracter nulo inicializar subtrair ponteiro continuar testar enumerar multiplicar enquanto selecione vazio acumular decrementar incrementar sinal constante dupla sem verificar resto sair volátil conteúdo teclado verificar dividir dados exibir multiplicar dividir volátil subtrair superior

Page 106: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

94

dividir precisão dados enquanto subtrair ponteiro dividir multiplicar digitar executar curto sem atribuir caso união contrário adicionar somar menor decrementar enquanto decrementar inicializar para enquanto enquanto outra iniciar constante para ou definir número dados superior estático subtrair inteiro multiplicar nulo inicializar sinal caso divisão iniciar absoluto união atribuir realizar sinal vetor menor vazio superior caso receber enquanto ler realizar exterior atribuir saltar não voltar número incrementar ou variável inicializar tipo externo padrão imprimir senão estrutura seleção prosseguir nulo estático dividir voltar inferior constante somar registro diferente inferior absoluto nada devolver digitar registro menor registro divisão vazio inicializar vazio declarar absoluto somar absoluto número obter seleção subtrair testar senão nada registro tamanho imprimir dividir que igual relacionar variável caso multiplicar outra vetor caso listar contrário precisão realizar registro tamanho igual dados atribuir para união executar número estrutura flutuante quando multiplicar atribuir tamanho sinal criar volátil criar enquanto quando definir inverso exterior multiplicar padrão multiplicar digitar vazio ponteiro devolver enquanto constante selecione listar contrário precisão realizar atribuir inicializar para para ou definir número estático subtrair superior dividir precisão dados enquanto subtrair flutuante superior dividir precisão multiplicar contrário vetor caso precisão listar realizar # # Nível 3 # AutoExplC - Arquivo para avaliação do módulo do aluno # Frases geradas por um especialista humano, dentro do contexto dos exercícios propostos. # # 1. int y = 5; int z = x + y; declarar e atribuir valores as variáveis inteiras y e z declarar as variáveis inteiras y e z, atribuir 5 a y e o valor x mais y a variável z eliminar a variável inteira y e z # 2. printf("soma: %d", z); imprimir z imprimir a variável inteira z e a string soma apagar a string soma e o valor de z # 3. if (x % 2) testar o resto da divisão verificar o resto da divisão de x por 2 obter o resultado da multiplicação de x por 2 # 4. while(i<y) { i++; r*=x; } enquanto i menor que y acumular i enquanto i menor que y acumular i, fazer com que r receba a multiplicação de r por x evitar que a variável i fique negativa # 5. if (a > 5) c = a + b; else c = a - b; se a maior que 5 então c deve receber a mais b quando a maior que 5, c receberá a mais b, caso contrário c receberá a menos b. enquanto a é menor que 5, c deve receber a multiplicação de a e b # 6. if (v[i] > maior) maior = v[i]; a variável maior deve receber o valor de v índice i verificar se v índice i é maior que a variável maior então atribuir v índice i à variável maior determinar um valor para maior # 7. int v[5] = {4, 3, 8, 2, 1}; declarar v como um vetor de inteiros declarar uma variável vetor de inteiros, v e inicializar com os valores 4, 3, 8, 2, 1 atribuir um vetor # 8. int maior = 0; declarar uma variável declarar a variável inteira maior e a inicializá-la com 0 apagar uma variável inteira # 9. ch = 0; atribuir 0 atribuir 0 à variável ch remover a variável ch # 10. while (ch != A) ch = getchar(); enquanto ch diferente de A enquanto ch diferente de A fazer com que ch receba um caracter do teclado remover um caracter do buffer de teclado # 11. getchar() ler obter um caracter do teclado apagar o teclado # 12. i += 2; acumular i acumular 2 ao valor de i atribuindo o resultado a i retirar 2 do valor de i # 13. while (i <= 10)

Page 107: AUTOEXPLC SISTEMA TUTOR INTELIGENTE PARA AUXÍLIO … · obtenção do Título de Mestre em Sistemas de Computação, ao Programa de Pós- ... II. Pontifícia Universidade Católica

95

executar o laço enquando i menor que 10 executar o laço enquando i menor ou igual a 10 testar a condição do comando # 14. break sair interromper o bloco iniciar o bloco de comandos # 15. default executar executar este bloco padrão ignorar o bloco de comandos # 16. scanf ("%d", &n); obter o valor de n através do teclado obter o valor de n através de ponteiros e utilizando a máscara %d eliminar a variável n # 17. for (int i = 0; i < 3; i++) { auxiliar[j] = vetor[i]; j--; } para i de 0 enquanto i menor que 3 para i de 0 enquanto i menor que 3 fazer com que auxiliar receba vetor e depois incremente i e decremente j declarar o vetor auxiliar # 18. int auxiliar[3]; criar um vetor criar uma variável vetor de inteiros auxiliar de tamanho 3 apagar um vetor # 19. int *pont_vetor; declarar um inteiro declarar a variável ponteiro para inteiros pont_vetor copiar uma variável inteira # 20. while (*pont_vetor != 0) { pont_vetor++; } enquanto o conteúdo do ponteiro pont_vetor for diferente de 0 enquanto o conteúdo do ponteiro pont_vetor for diferente de 0 incrementar o endereço do ponteiro desalocar o endereço de pont_vetor # 21. pont_vetor++; incrementar pont_vetor incrementar o endereço do ponteiro pont_vetor alocar um endereço # 22. return (0); retornar retornar 0 interromper o programa # 23. if (v[j] < v[menor]) menor = j; atribuir o valor de j a menor quando v menor que v índice menor então menor deverá receber j declarar uma variável de ponto flutuante # 24. printf("%f, ", v[i]); imprimir o vetor imprimir o valor do elemento do vetor v com índice i, utilizando uma máscara %f inicializar o vetor v # 25. void declarar uma função declarar uma função que retorna nada encerrar a função # Fim do arquivo