Baixe o app para aproveitar ainda mais
Prévia do material em texto
UM MODELO DE SISTEMA TUTOR INTELIGENTE APLICADO AO ENSINO DA PROGRAMAÇÃO ESTRUTURADA UNIVERSIDADE FEDERAL DE SANTA CATARINA PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE PRODUÇAO UM MODELO DE SISTEMA TUTOR INTELIGENTE APLICADO AO ENSINO DA PROGRAMAÇÃO ESTRUTURADA Élcio Miguel Prus Dissertação apresentada ao Programa 4 de Pós-Graduação em Engenharia da Produção da Universidade Federal de Santa Catarina como requisito parcial para a obtenção do título de Mestre em Engenharia de Produção. Florianópolis V 2001 ii Élcio Miguel Prus UM MODELO DE UM SISTEMA TUTOR INTELIGENTE APLICADO AO ENSINO DA PROGRAMAÇÃO ESTRUTURADA Esta dissertação foi julgada e aprovada para obtenção do título de Mestre em Engenharia de Produção no Programa de Pós-Graduação em Engenharia de Produção da Universidade Federal de Santa Catarina FIorianÓpoIis,.28 de . o de 2001. I'4 Prof. Ri -zrdo iranda Barcia PhD oordeni dor do C o BANCA EXAMINADORA Prõ1(AIioe Theresinha Cybis Pereira, PhD Orientadora O Profa. M rta Costa Rosateili, Dra. <Z2Ê`‹; Prof. Feyãando Álvaro Ostuni Gauthier , Dr. iii A minha esposa Carem e aos filhos Ivens e Igor pela compreensão e sacrifício que, carinhosamente, cederam e que me guiaram nos momentos mais difíceis desta caminhada. iv AGRADECIMENTOS A Deus pela criação e proteçao. Aos meus pais pela existência e perseverança em me guiar para o melhor caminho. A minha querida esposa e filhos pelo amor e compreensão dedicados durante a realização desta dissertação. Aos familiares, amigos e companheiros pela colaboração, muitas vezes decisiva. A Professora PhD Alice Theresinha Cybis Pereira pelo valioso apoio dado para que esta dissertação se concretizasse. A todos aqueles que não foram citados e que contribuíram, direta ou indiretamente, para a realização desta pesquisa. ' V ll Í Í Il Uma pessoa realmente grande e aquela que nos da uma chance. Paul Duffy su|v|Án|o LISTA DE FIGURAS ............................................................................................. .. Vl ix LISTA DE QUADROS ........................................................................................... _. x LISTA DE TABELAS ............................................................................................ _. xi LISTA DE REDUÇOES ......................................................................................... _. RESUMO ............................................................................................................... _. ABSTRACT ........................................................................................................... ._ 1 |NTRoDuçÃo ......................................... __ 1.4.2 Obietivos Específicos .................................. _. 1.5 Metodologia ..................................................... ._ 2 ALGORITMOS ESTRUTURADOS .......... ._ 2.3 Estrutura Básica de um Algoritmo ................ _. 2.4 Estruturas ........................................................ ._ 1.1 Identificação do Problema ............................................................................ ._ 1.2 Questão da Pesquisa .................................................................................... ._ 1.3 Justificativa .................................................................................................... ._ 1.4 Obietivos ........................................................................................................ __ 1.4.1 Objetivo Geral .............................................................................................. ._ 1.6 Limitações da Pesquisa ................................................................................ _. 1.7 Estrutura da Dissertação .............................................................................. __ 2.1 Considerações Iniciais .................................................................................. ._ 2.2 Definição de Algoritmo ................................................................................. ._ 2.3.1 xii XIII XV ÉCDCDNQQUIUIOO -5 12 12 13 16 17 1a 2.4.1 Estrutura se-ENTÃO-sENÃo ..................................................................... _. 19 2o 2.4.2 Estrutura ESCOLHA CASO ...... ___ ............................................................... ._ 2.4.3 Estrutura ENQUANTO-FAÇA .......................................................... ._ 2.4.4 Estrutura PARA-FAÇA ................................. ._ 2.5 Considerações Finais ..................................... ._ 3 INTELIGÊNCIA ART||=|c|A|. ................... __ 3.1 Inteligência Artificial ....................................... _. 2.4.5 Estrutura nEPim-ArE__.__________.___.___..._______.___ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ 21 22 23 24 26 26 3.2 Inteligência Artificial aplicada na Educação ............................................... _. 30 32 3.3 Sistemas Tutores Inteligentes ...................................................................... __ 3.3.1 Estrutura de um STI .................................................................................... __ 3.3.1.1 Modelo do Especialista ........................................................................... _. 3.3.1.2 Modelo do Estudante ................................ _. 3.3.1.3 Modelo Pedagógico .............. ._ ................................................................. __ 3.3.1.4 Modelo de Interface ................................................................................. _. 3.4 Formas de Representação do Conhecimento ............................................ __ 3.4.1 Procedimentos ............................................................................................ ._ 3.4.2 Esquemas ............................................................. __ 34 35 36 37 38 39 41 42 vii 3.4.2.1 Scripts ....................................................................................................... ._ 42 3.4.2.2 Frame ........................................................................................................ _. 46 3.4.3 Redes Semânticas ...................................................................................... ._ 48 3.5 Exemplos de STI aplicados a Programação Estruturada .......................... ._ 49 3.6 Exemplo de STI relacionado ao Modelo Proposto ..................................... _. 51 3.7 Considerações Finais .................................................................................... ._ 52 4 TEORIAS DE APRENDIZAGEM ..................................................... ._ 55 4.1 Considerações Iniciais .................................................................................. ._ 55 4.2 Empirismo ...................................................................................................... _. 57 4.2.1 Aprendizagem ............................................................................................. ._ 60 4.2.2 Relacionamento Professor-Aluno ............................................................. __ 62 4.2.3 Metodologia ............................... ................................................................ _. 63 4.2.3.1 Ensino individualizado ............................................................................ ._ 64 4.2.3.2 Ensino baseado na competência ........................................................... ._ 64 4.2.3.3 Ensino programado ................................................................................. _. 65 4.2.4 Avaliação ..................................................................................................... _. 66 4.3 lnatismo .......................................................................................................... _. 66 4.3.1 Aprendizagem ............................................................................................. ._ 70 4.3.2 Relacionamento Professor-Aluno............................................................. ._ 71 4.3.3 Metodologia ................................................................................................. _. 73 4.3.4 Avaliação ..................................................................................................... _. 73 4.4 lnteracionismo ............................................................................................... ._ 74 4.4.1 Construtivismo ............................................................................................ ._ 75 4.4.1.1 Aprendizagem .......................................................................................... _. 79 4.4.1.2 Relacionamento Professor-Aluno .......................................................... ._ 80 4.4.1.3 Metodologia .............................................................................................. ._ 81 4.4.1.4 Avaliação .................................................................................................. ._ 82 4.4.2 Sócio-lnteracionismo .................................................................................. _. 83 4.4.2.1 Aprendizagem .......................................................................................... ._ 87 4.4.2.2 Relacionamento Professor-Aluno .......................................................... ._ 88 4.4.2.3 Metodologia ............................ ................................................................ _. 89 4.4.2.4 Avaliação .................................................................................................. _. 89 4.5 Considerações Finais .................................................................................... _. 90 5 MODELO PROPOSTO .................................................................... ._ 92 5.1 Fundamentos do Modelo Proposto ............................................................. ._ 92 5.2 Caracterização do Modelo ............................................................................ __ 95 5.3 Estrutura e Funcionamento do Modelo ....................................................... ._ 97 5.3.1 Professor ..................................................................................................... ._ 98 5.3.2 O Modelo do Especialista ................... ...................................................... _. 101 5.3.3 O Modelo Pedagógico ................................................................................ _. 105 5.3.4 O Modelo de Interface ................................................................................. _. 106 5.3.5 O Modelo do Estudante .............................................................................. ._ 112 5.4 Considerações Finais .................................................................................... _. 116 6 coNcLusõEs E nEcoMENoAçõEs .......................................... ._ 118 6.1 Avaliação do Modelo Proposto ................................................................... ._ 118 6.1.1 Aspectos Positivos ........................................................................... .. 1 REFERÊNc|As B|BL|ocRÁF|cAs ................................................ ._ 1 a ANExos ......................................................................................... _. 8.1 Anexo 1 - Conteúdo Programático da Algoritmos e Programação I viii ........ .. 1 18 6.1.2 Aspectos Negativos .................................................................................... .. 120 6.2 Conclusões .................................................................................................... .. 121 6.3 Recomendaçoes ............................................................................................ .. 122 _ 129 129 Figura 1: Figura 2: Figura 3: Figura 4: Figura 5: Figura 6: Figura 7: Figura 8: Figura 9: Figura 10 Figura 11 Figura 12 Figura 13 Figura 14 Figura 15 Figura 16 Figura 17 Figura 18 Figura 19 Figura 20 ix LISTA DE FIGURAS Diagrama em blocos de um STI básico ............................................. _. 34 Exemplo de Rede Semântica .............................................................. ._ 48 Exemplo de Rede Semântica .............................................................. ._ 49 Diagrama em blocos do Modelo Proposto de STI ............................ _. 97 Tela do Professor ................................................................................. ._ 98 Opções do Menu do Módulo do Professor ........................................ ._ 99 Tela de Cadastro de Professor ........................................................... ._ 99 Tela de Cadastro de Turma ................................................................. __ Tela de Cadastro de Disciplina ........................................................... ._ : Relacionamento entre teoria e exercícios ....................................... __ : Tela de Cadastro de Teoria ............................................................... ._ : Tela de Cadastro de Exercício .......................................................... ._ : Tela do Aluno ..................................................................................... _. : Tela de Cadastro do Aluno ............................................................... _. : Tela de Resolução dos Exercícios ................................................... _. : Tela de Teoria e Solução do Professor ............................................ _. : Representação gráfica da situaçao do aluno B .............................. ._ : Representação gráfica da situação do aluno C .............................. _. : Representação gráfica da situação do aluno D .............................. _. 100 101 102 103 104 106 107 108 111 : Representação gráfica da situação do aluno A .............................. ._ 113 ' 114 115 116 LISTA DE QUADROS Quadro 1: Tipos de Dados ........................................ .. LISTA DE TABELAS Tabela 1: Regras para escolha do próximo exercício Siglas CAI DER ENC IA IAED ICAI IndAp LDB MEC OOP RBC SBC STI TPD WEI ZDP |_|sTA DE |=lEDuçöEs Computer Assisted lnstruction Diagrama Entidade Relacionamento Exame Nacional de Cursos Inteligência Artificial ` Inteligência Artificial aplicada a Educaçäo /nteligent Computer Assisted lnstruction Índice de Aproveitamento Lei de Diretrizes e Bases da Educação Nacional Ministério da Educaçäo e Cultura Programação Orientada à Objetos Raciocínio Baseado em Casos ' Sociedade Brasileira de Computação Sistemas Tutores Inteligentes Tecnologia em Processamento de Dados Workshop de' Educação em Informática Zona de Desenvolvimento Proximal I xiii S RESUMO PRUS, Élcio Miguel. Um modelo de sistema tutor inteligente aplicado ao ensino da programação estruturada. Florianópolis, 2001. 130 f. Dissertação (Mestrado em Engenharia de Produção) - Programa de Pós-graduação em Engenharia de Produção. UFSC, 2001. _,,,,..- .xl Este trabalho apresenta um modelo e um protótipo, desenvoIvidc{ em Delpgj 5.0, de sistema tutor inteligente aplicado ao"ensin'o`de aigoritmos estruturados, beín como a sua avaliação, utilizando a disciplina de Algoritmos e Programação I, no curso de __1:eAcnologia em Processamento de dad_os,. ofertado pelas Faculdades Santa Cruz, em Curitiba - Paraná. - \ A pesquisa foi baseada em revisão bibliográfica e no desenvolvimento de um modelo e implementação de um protótipo. São apresentados fundamentos teóricos sobre algoritmos estruturados, inteligência artificial em geral e aplicada à educação, assim como sistemas tutores inteligentes, com alguns exemplos relacionados com a linha de pesquisa da dissertação. É feita uma análise das principais correntes de teorias de aprendizagem, visando a fundamentar o desenvolvimento do protótipo. i A estrutura do modelo proposto e do protótipo apresentado é dividido em dois módulos: o do professore do aluno. A utilização de exemplos é apresentada para melhor ilustrar a aplicação do modelo ao contexto de ensino de algoritmo estruturado. Como conclusão, a construção do protótipo e sua aplicação em parte da turma é o resultado concreto deste trabalho e suas partes ressaltam a importância do modelo desenvolvido. _ r xiv Palavras-chave: Algoritmos Estruturados, Inteligência Artificial, Sistemas Tutores' Inteligentes, Teorias de Aprendizagem. XV ABSTRACT PRUS, Élcio Miguel. Um modelo de sistema tutor inteligente aplicado ao ensino da programação estruturada. Florianópolis, 2001. 130 f. Dissertação (Mestrado em Engenharia de Produção) - Programa de Pós-graduação em Engenharia de Produção. UFSC; 2001. A model and a prototype are introduced by this dissertation. Delphi® 5.0 programming language is used to compound the prototype. Santa Cruz College, in Curitiba, Paraná, has a Data Processing Technology Course and this forthcoming presented model is an intelligent tutor system applied to teaching and evaluating process of structure algorithms, practiced in Algorithms and Programming I discipline. The research was based on a bibliographical review and on the model development and the prototype implementation, theoretical support about structured algorithm, generical aspects and educational applications of artificial intelligence, as well as intelligent tutor systems. Some examples are made part of this dissertation research field. An analysis is proceeded over the main theoretical learning' approaches, aiming to make the prototype foundation development possible. The frame of this purpose, considering the model and the prototype, is divided into' two parts: the teacher and the student. The examples are used to let thecontextual learning participate consistently. The goal is achieved with the prototype construction and its application in part of a student's group. It confirms the relevance of the model in use. Xvi Key-words: Structured Algorithms, Artificial Intelligence, Intelligent Tutoring Systems,Theories of Learning. ¬ _ 1 |NTRoDuçÃo A qualidade do ensino oferecido pelas instituições de nível superior no Brasil é a constante preocupação do Ministério da Educação e Cultura (MEC). Esta excelência de ensino, meta intrínseca ao artigo 208, inciso V, da Constituição Federal e premissa básica da nova Lei de Diretrizes e Bases da Educação Nacional (LDB), em vigor desde dezembro de 1996, só poderá ser alcançada através de um ensino moderno, atualizado e que vise a formação profissional (Niskier, 1996). Esta preocupação com a qualidade do ensino oferecido pelas instituições de nível superior não é em vão. O Exame Nacional de Cursos (ENC), conhecido como provão, tem por objetivo avaliar, logo após a conclusão do curso, os conhecimentos adquiridos pelos graduados durante o desenvolvimento do mesmo. Este revelou em sua última edição, 1999, que nove instituições das trinta e seis que oferecem o curso de administração, no estado do Paraná, ou seja 25%, tiveram conceito D e E, considerados os dois mais baixos (Ministério da Educação e Cultura, 1999). Com base nesta nova realidade o MEC, através da Sociedade Brasileira de Computação (SBC), promoveu em junho de 1998, em Belo Horizonte, Minas Gerais, um Workshop de Educação em Computação (\/VEI/98). Neste foram discutidas e oficializadas as diretrizes curriculares referentes aos cursos, de nível superior, de informática e computação. Estas diretrizes fornecem às instituições parâmetros que norteiam a formulação dos currículos. Estas diretrizes também normalizam as denominações dos cursos superiores em informática, evitando ambigüidade, facilitando a comparação entre os diversos cursos existentes no país e principalmente, dando um passo definitivo a criação dos conselhos federal e regional que regulamentarão as atividades referentes a profissão, ainda não existentes. Segundo estas diretrizes, os currículos dos cursos da área de computação e informática são compostos por quatro grandes áreas deformação: - formação básica que compreende os princípios básicos da área de computação, a ciência da computação, a matemática necessária para defini-los formalmente, a física e eletricidade necessária para permitir o entendimento e o projeto de computadoresviáveis tecnicamente e a formação pedagógica que introduz os conhecimentos básicos da construção do conhecimento, necessários ao desenvolvimento da prática do ensino de computação; ~ formação tecnológica (também chamada de aplicada 'ou profissional) que aplica os conhecimentos básicos no desenvolvimento tecnológico da computação; ° formação complementar que permite uma interação dos egressos dos cursos com outras profissoes; ~ V formação humanística que dá ao egresso uma dimensão social e humana. Esta divisão proporciona uma maior flexibilidade na elaboração das grades curriculares, e facilita a modificação do enfoque de algumas disciplinas, de acordo com a evolução tecnológica. A formação básica é a principal fundamentação que o novo profissional deve possuir. Ela é composta por disciplinas da área de programação, computação e algoritmos. A programação, entendida como programação de computadores, é uma atividade voltada à solução de problemas. Nesse sentido ela está relacionada com uma variada gama de outras atividades como especificação, projeto, validação, modelagem e estruturação de programas e dados, utilizando-se das linguagens de programação propriamente ditas, como ferramentas. Ao contrário do que se apregoava há alguns anos atrás, a atividade de programação deixou de ser uma arte para se tornar uma ciência, envolvendo um conjunto de princípios, técnicas e formalismos que visam a produção de software bem estruturado e confiável (Salvetti & Barbosa, 1998). 1.1 Identificação do Problema Uma das disciplinas que pertencem ao currículo de formação básica é a de Algoritmo e Programação. Com ela o egresso, ou recém-formado, será capaz de produzir programas, de média complexidade, para ja resolução de problemas que utilizem o computador e seus recursos como meio para tal. O aluno ao concluir esta disciplina deve possuir domínio de todas as técnicas para o planejamento, desenvolvimento e manutenção de programas desenvolvidos com a técnica de programação estruturada. É importante também possuir conhecimentos da metodologia da engenharia de software, para que sua visão seja mais ampla e não se restrinja a resolução, apenas, de um único problema. Seguindo esta linha de raciocínio, é ministrado, nas Faculdades Regional Santa Cruz, em Curitiba, Paraná, dentro do Curso de Tecnologia em Processamento de Dados (T PD), no primeiro semestre, a disciplina de Algoritmos e Programação I. Esta tem como objetivo desenvolver as noções básicas de programação, com base nas técnicas e estruturas da programação estruturada, aplicando-as em algoritmos para a resolução de problemas matemáticos, através dos conceitos do português estruturado. Esta disciplina é considerada uma disciplina introdutória a programação e pré- requisito para todas as outras que envolvem técnicas de programação. Por trabalhar com conceitos não tão comuns ao cotidiano do aluno, esta disciplina encontra diversas barreiras em sua compreensão. Segundo Direne & Pimentel (1998) do ponto de vista de fatores cognitivos, a programação de computadores é uma tarefa de alta carga para iniciantes por duas razões principais: a falta do conhecimento de princípios de programação e a falta de perícia. 1.2 Questão da Pesquisa “ Como facilitar ao estudante iniciante de computação a apreensão dos conceitos de algoritmo e programação ? “ 1.3 Justificativa Diante do problema da dificuldade dos discentes em desenvolver algoritmos, e em conseqüência, transformá-los em programas, torna-se necessário alguma ferramenta auxiliar às aulas para facilitar a aquisição do conhecimento por parte dosalunos e garantir que os mesmos dominem as técnicas utilizadas na construçao de algoritmos (Viccari, 1996). Segunda Giraffa (1998) normalmente em uma aula de programação de computadores, ministrada em sala de aula ou em um laboratório de informática, após terminar a explicação do assunto e a exemplificação utilizada, o professor escolhe um exercício para seus alunos desenvolverem. A questão está em como e qual exercício selecionar. Usando da sua percepção e das variáveis que o professor utiliza para avaliar a turma, como compreensão do assunto, notas na última avaliação, participação em aulas, entre outras, ele escolhe um exercício que atenda e acompanhe o momento demonstrado pela turma. Para que esta escolha esteja próxima de uma turma real, em um sistema tutor inteligente (STI), a escolha deve seguir critérios que avaliem a condição atual de conhecimento do aluno, ou seja, o STI deve possuir um mecanismo que proporcione medidas cognitivas para escolha dos próximos exercícios. Medidas Cognitivas para a escolha adequada de um próximo exemplo foram apresentadas em Pimentel & Direne (1997) para o ensino de conceitos visuais aplicados à radiologia médica. Tanto o ensino de conceitos visuais quanto o ensino de programação de computadores são baseados na aquisição de perícia e na apresentação de casos para os alunos solucionarem. Porém, em radiologia médica a solução é um diagnóstico expresso em um laudo, enquanto que na programação a solução é um algoritmo expresso em um programa de computador. Para Direne & Pimentel (1998) a utilização de STI destinados a iniciantes de programação tentam lidar com estas duas carências por meio da combinação de: - técnicas de Inteligência Artificial; ~ ambientação construtivista por exploração livre; ~ recursos de visualização científica para, no final, criar interfaces de razoável versatilidade para o aluno. Em pesquisa verbal realizada em 20 de setembro de 2000 com sessenta e oito alunos da disciplinas de Algoritmos e Programação I, sessenta e dois, ou seja 91%, declararam possuir e utilizar freqüentemente computador em suas residências ou no trabalho. O restante de seis alunos (9%) declararam que pretendem adquirir um equipamento nos próximos doze meses. Com este levantamento fica evidente o perfil dos alunos que freqüentam o curso. Todos eles sabem da importância e da necessidade do computador no desenvolvimento de sua profissão. Em síntese, o computador, já é realidade para 91 % dos alunos pesquisados. Ainda dentro da grade do primeiro semestre do curso de TPD é ministrada a disciplina de Laboratório l que tem como objetivo familiarizar o aluno ao uso dos recursos mínimos do computador, tanto em programas aplicativos como aos periféricos disponíveis. Esta disciplina juntamente com o resultado da pesquisa fortalecem a premissa que o aluno do primeiro semestre, em sua grande maioria, já possui conhecimento do computador como ferramenta, e os que ainda não o fazem, terão a oportunidade de aprender durante o primeiro semestre do curso. Diante destas colocações tem-se um ambiente favorável para o desenvolvimento de um modelo de STI que facilitará a aprendizagem da programação estruturada e que será de grande auxílio no desenvolvimento da disciplina de Algoritmos e Programação I. 1.4 Objetivos Para o desenvolvimento deste trabalho de pesquisa foi delineado o seguinte objetivo geral e os seus desmembramentos em objetivos específicos. 1 .4.1 Objetivo Geral Projetar e desenvolver um modelo de STI que auxilie no -aprendizado das estruturas básicas de programação, utilizando os conceitos de algoritmos, exemplos, e proporcionando séries de exercícios apresentadas através de diversas estratégias de aprendizagem e de acordo com o aprendizado demonstrado pelo aluno. 1.4.2 Objetivos Específicos . Desenvolver o modelo de um ambiente inteligente, interativo e dinâmico que: - Proporcione automação na escolha de um próximo algoritmo a ser desenvolvido pelo aluno, observando as condições atual de conhecimento; ~ Apresente diversas visões do mesmo conceito, tornando a base teórica da disciplina ampla e interdisciplinar; z - Apresente conceitos, com teoria e exemplos, através de diversas teorias de aprendizagem; ° Disponibilize uma revisão conceitual, caso o A aluno durante o desenvolvimento de algum algoritmo apresente dificuldades de elaboração; - Proporcione uma série de exemplos de cada estrutura de programação, classificada por grau de dificuldade, onde à medida que o aluno resolva um algoritmo, o próximo sugerido será de acordo com o grau de resolução (dificuldade) apresentado no anterior; ~ Seja aplicado à disciplina de Algoritmos e Programação l, no curso de Tecnologia em Processamento de Dados (TPD), das Faculdades Santa Cruz de Curitiba. 1.5 Metodologia Esta pesquisa é de natureza aplicada pois objetiva gerar um modelo de STI para contribuir na solução do problema de aprendizagem de algoritmo e programação. Está baseada em: “ - Pesquisa bibliográfica; - idealização e desenvolvimento de um modelo. 1.6 Limitações da Pesquisa Esta dissertação está concentrada na disciplina de Algoritmos e Programação I, ministrada no 1° semestre do curso de Tecnologia em Processamento de Dados das Faculdades Santa Cruz de Curitiba. Outras instituições de ensino superior de informática ministram esta disciplina, mas não se pode precisar se com o mesmo conteúdo. Portanto todo o direcionamento da pesquisa está voltado para o curso de Tecnologia em Processamento de Dados das Faculdades Santa Cruz de Curitiba. A aplicação desenvolvida com base no modelo proposto está direcionada à disciplina e instituição acima mencionadas. Não foi objetivo desta pesquisa a análise de currículos de algoritmos e programação ministrados por outras instituições de ensino. 1.7 Estrutura da Dissertação Esta dissertação está estruturada em sete capítulos. No primeiro encontram-se a introdução, a identificação do problema, a questão da pesquisa, a justificativa do trabalho, os objetivos gerais e específicos, a metodologia aplicada e as limitações do trabalho. l z No segundo capítulo inicia-se a revisão bibliográfica com direcionamento explicativo sobre Algoritmos Estruturados. O principal objetivo deste capítulo é demonstrar os principais conceitos e definições, considerando os principais autores da área. Será descrito neste capítulo a estrutura' utilizada em algoritmos e as estruturas básicas de programação. Os exemplos são demonstrados na linguagem conhecida como pseudocódigo. No capítulo 3 encontra-sela revisão bibliográfica sobre Inteligência Artificial (IA), Inteligência Artificial aplicada a Educação (IAED), STI e Formas de Representação do Conhecimento. Neste capítulo encontra-se as principais definições, conceitos e exemplos aplicados a cada um dos temas acima relacionados. No capítulo 4 temos a revisão bibliográfica sobre as principais teorias de aprendizagem, como estão estruturadas em relação aprendizagem, relacionamento professor-aluno, metodologia aplicada e forma de avaliação. O principal objetivo deste capítulo é descrever as principais correntes do pensamento para os modelos educacionais, com base nas idéias das obras de seus representantes mais relevantes, fundamentando as teorias de aprendizagem para serem utilizadas no módulo pedagógico do modelo do STI proposto. O quinto capítulo refere-se ao desenvolvimento do modelo proposto, estando estruturado primeiramente na sua fundamentação e caracterização. Neste capítulo encontra-se as principais telas do protótipo desenvolvido a partir do modelo proposto com explicações que exemplificam algumas situações possíveis de acontecer na utilização do protótipo. No sexto capítulo estão a avaliação do protótipo desenvolvido, as conclusões e recomendações da dissertação, e finalizando no capítulo sete estão as fontes bibliográficas utilizadas nesta dissertação.Estas referências estão relacionadas aos conteúdos de algoritmos estruturados e lógica de programação, aos conteúdos de IA, IAED e STI e Formas de Representação do Conhecimento e aos conteúdos de teorias de aprendizagem. 2 ALGORITMOS ESTRUTURADOS O objetivo deste capítulo é demonstrar os principais conceitos e definições sobre algoritmos estruturados. O capítulo inicia-se com definições de algoritmos compiladas de autores da área. Na seqüência está descrita a estrutura utilizada na construção de um algoritmo e as estruturas básicas de programação, divididas em estruturas de controle e de decisão. Os exemplos apresentados estão demonstrados na linguagem conhecida como pseudocódigo. 2.1 Considerações Iniciais - A automatização de tarefas é um aspecto marcante da sociedade moderna. O aperfeiçoamento tecnológico alcançado teve, como elementos fundamentais, a análise e a obtenção de descrições da execução de tarefas em termos de ações simples o suficiente, tal que pudessem ser automatizadas por uma máquina especialmente desenvolvida para este fim, o computador (Cormen, 1990). Para que esta automatização ocorra é necessário uma seqüência de instruções que fará com que o computador realize determinada tarefa. Segundo Tremblay & Bunt (1983) esta seqüência de instruções não deve possibilitar a interpretação alternativa que possa fazer com que o computador tome um caminho diferente daquele inicialmente planejado. 13 Este cuidado na formulação das instruções e na sua estruturação é o alvo de estudo dos algoritmos, parte da ciência da computação que desenvolve e aprimora técnicas de construção de programas de forma a determinar que o computador siga pelo único caminho correto possível que conduza aos resultados desejados. 2.2 Definição de Algoritmo O algoritmo pode ser usado como uma ferramenta genérica para representar a solução de tarefas independente do desejo de automatizá-Ias,Í mas em geral., está associado ao processamento eletrônico de dados, onde representa oz rascunho para programas ou softwares. ' r Apesar do termo ser novo em si, o conceito é certamente bastante familiar. As .. indicações dadas para se chegar até uma determinada rua constituem um; algoritmo. Uma receita de cozinha é uma forma muito familiar de algoritmo:'“ Uma planta de obra serve ao mesmo propósito num projeto de construção. Estes algoritmos são conhecidos como não computacionais. Um exemplo de um algoritmo não computacional cujo objetivo é usar um telefone público é apresentado a seguir: lnício Tirar o fone do gancho Ouvir o sinal de linha Introduzir o cartão Teclar o número desejado Se der o sinal de chamar Conversar Desligar Retirar o cartão Senão Repetir _V Fim Salveti (1998) define um algoritmo como uma seqüência finita de instruções ou operações básicas (operações definidas sem ambigüidade e executáveis em tempo finito) cuja finalidade é resolver um problema computacional. Segundo Pinto (1990) um algoritmo é uma receita para um processo computacional e consiste de uma série de operações primitivas, interconectadas devidamente, sobre um conjunto de objetos. Os objetos manipulados por essas receitas são as variáveis. Para Terada (1991) algoritmo é uma descrição passo a passo de como um problema é solucionável. Esta descrição deve ser finita, e os passos devem ser bem definidos e sem ambigüidades. Warnier (1991) ressalta que a característica mais importante de um algoritmo é a simplicidade e a isenção de ambigüidade. As instruções devem estar numa ordem cuidadosamente definida e o algoritmo deve ser efetivo, isto é, deve sempre resolver um problema utilizando um número finito de instruções. Szwarcfiter & Markezon (1994) define algoritmo como um processo sistemático para a resolução de um problema. O desenvolvimento de algoritmos é particularmente importante para problemas a serem solucionados em um computador, pela própria natureza do instrumento utilizado. Dois aspectos devem ser considerados no desenvolvimento de algoritmos: a correção e a análise. O primeiro consiste em verificar a exatidão do método empregado, o que é realizado através de uma prova matemática. A análise visa _a obtenção de parâmetros que possam avaliar a eficiência do algoritmo em termos de tempo de execução e memória ocupada. A análise é realizada através de um estudo do comportamento do algoritmo. Como qualquer modelo, um algoritmo é uma abstração da realidade. Wirth (1989) define abstração como uma simplificação dos fatosconstantes da realidade que se encontra o problema a ser resolvido. Os dados utilizados nos algoritmos representam algumas propriedades e características dos fatos reais, pois outras são desprezadas, por serem inexpressivas ou irrelevantes para a solução adotada. Todas as definições apresentadas de algoritmo nos conduzem a descrição de soluções de problemas do mundo real, para serem implementadas utilizando os recursos computacionais. Como o mundo computacional possui severas limitações em relação ao real, exige-se que, sejam impostas algumas regras e utilizadas algumas estruturas adequadas para a solução de problemas. Estas estruturas possibilitam a simulação de rotinas, de decisões e de formas de controle. 2.3 Estrutura Básica de um Algoritmo Para que o computador possa compreender os passos necessários para a resolução de um determinado problema, devemos estruturar estes passos de forma que sejam perfeitamente compreendidos e executados. Esta organização das ações a serem tomadas pela máquina de forma organizada e lógica possui uma rígida regra de sintaxe e semântica. Para Pinto (1990) sintaxe é um conjunto de regras formais, que especificam a composição de algoritmos a partir de letras, dígitos e outros símbolos. As regras de semântica especificam o significado de qualquer algoritmo sintaticamente válido, escrito em uma linguagem. Segundo Salvetti & Barbosa (1998), Pinto (1990), Farrer (1999) e Guimarães (1985) a linguagem mais adequada para representar um algoritmo é a conhecida como pseudocódigo. Em pseudocódigo a estrutura de um algoritmo é: ALGORITMO <<nome do aIgoritmo>> I <<definiçöes das variáveis>> INICIO <<comandos 1>> <<comandos 2>> <<C0mand0S N>> FIM Esta sintaxe permite definir as variáveis que serão utilizadas na resolução do problema e os comandos que serão aplicados para que possam processar as informações de entrada transformando-as em informações de saída. 2.3.1 Variáveis 4 Variáveis são espaços de memória reservados para armazenar informações. Estes espaços possuem endereço específico, e representam células elementares que contém um valor que representa uma variável (Sebesta, 2000). O tipo de informação que será armazenada em uma variável deve ser previamente definida na construção do algoritmo. Existem vários tipos de dados e os mesmos podem ser definidos de maneira distintas nas diversas linguagens de programação existentes. Segundo Wirth (1989) os tipos de dados mais comuns utilizados em algoritmos são: f Inteiro 2 - 50 Real 2,762 - 100,09 Caracter "A" - "4" Texto (String) "Algoritmo" - "X" Boolean Verdadeiro ou Falso Quadro 1 - Tipos de dados O tipo do dado é associado a um nome que representará a variável. Este nome é formado por uma letra ou então por uma palavra que signifique o conteúdo armazenado. Não se permite o uso de caracteresespeciais (acentos), espaços em branco ou de qualquer outro caractere, que não seja letra ou dígito, na formação do nome da variável (Farrer, 1999). São alguns exemplos válidos de variáveis: Numero: inteiro Nota: real ~ Nome: texto Situação: boolean * 2.4 Estruturas ._.. _ `.¡ As estruturas sen/em para conduzir o fluxo dos dados nos algoritmos, «através de testes e condições. Elas diferem umas das outras pela disposição ou manipulação de seus dados ou variáveis. A disposição dos dados em uma estrutura obedece a condições preestabelecidas e caracterizaa estrutura (Szwarcfiter & Markezon, 1994). Estão divididas em estruturas de decisão e de controle (Sebesta, 2000; Salvetti & Barbosa,1998). As de decisão testam condições que tomam caminhos específicos sem retorno. Elas optam entre duas ou mais possibilidades. As de controle ou de repetição permitem executar mais de uma vez um determinado número de comandos. As estruturas de controle servem para executar uma instrução ou um conjunto de instruções repetidamente dependendo da condição determinada no algoritmo. O processo de repetição é conhecido como laço ou loop (Salvetti & Barbosa, 1998). 2.4.1 Estrutura SE-ENTÃO-sENÃo É uma estrutura de decisão. Inicia com a palavra especial "SE", seguida pela condição a ser testada. A alternativa a ser tomada se a condição for verdadeira é precedida pela palavra especial "ENTÃO". A outra alternativa a ser tomada se acondição é falsa é precedida pela palavra especial “SENÃO". Salvetti & Barbosa (1998) e Manber (1989) apresentam esta estrutura na seguinte forma: sE <<‹z<›nd¡çâo>> ENTÃO <<comandos 1>> _ <<comandos N>> SENAO <<comandos 1>> <comandos N>> FIMSE Um exemplo do uso desta estrutura está descrito a seguir: Se João for maior de 18 anos deve ir votar, se ele não for pode ficar em casa. A condição: João maior que 18 anos determina uma ação para João, a de ir votar. A representação em uma estrutura de condição é: SE idade de João > 18 ENTÃO _ João deve votar SENAO João pode ficar em casa FIMSE 2.4.2 Estrutura ESCOLHA-CASO É uma estrutura de decisão. É utilizada quando existem diversas opções a serem seguidas dependendo do que o usuário ou o programa solicite. Segundo Ziviani (1999) e Salvetti & Barbosa (1998) esta estrutura é apresentada na seguinte forma: ` CASO <<condição>> FAÇA opção 1: <<comandos 1>> ~ opção N: <<comandos N>> SENAO <<comandos 1>> <<comandos N>> FIMCASO O exemplo a seguir facilita a compreensão desta estrutura: CASO opção ENTÃO 1: Saldo 2: Extrato 3: Depósito ~ 4: Sair SENAO Inválida FIMCASO Lê-se da seguinte maneira: caso a opção seja 1 execute o saldo, caso seja 2 execute o extrato, caso seja 3 execute o depósito, caso seja 4 saia e se a opção não for nenhuma das opções válidas a escolha será inválida. A estrutura ESCOLHA-CASO também pode ser representada pela estrutura SE-ENTÃO; SENÃO alinhadas, mas é inviável utilizar pois o código ficaria de difícil leitura: SE opção = 1 ENTÃO _ Saldo ' SENAO _ SE opção = 2 ENTAO _ Extrato SENAO _ SE opção = 3 ENTAO __ Deposito SENAO _ Sair FIMSE FIMSE FIMSE O exemplo acima evidencia o aumento da complexidade da leitura se fosse utilizado a estrutura sE-ENTÃQ sENAo. A 2.4.3 Estrutura ENQUANTO-FAÇA Esta estrutura de repetição permite que enquanto uma determinada condição for verdadeira ou válida os comandos pertencentes a estrutura são executados. O término da execução dos comandos está vinculado a condição determinada se tornar falsa. A sintaxe a seguir representa a estrutura ENQUANTO-FAÇA, defina por Sebesta (2000) e Terada & Setzer (1992): ENQUANTO <<condição>> FAÇA ' <<comandos 1>> <<comandos 2>> <<c0mandOS N>> FIMENQUANTO O exemplo abaixo utiliza a estrutura ENQUANTO-FAÇA e escreve na tela do computador os números inteiros de 1 até 200.. 22 contador := 1 ENQUANTO contador <= 200 FAÇA escreva (contador) contador := contador + 1 FIMENQUANTO A variável definida como contador será inicializada com o valor 1 e acrescida de uma unidade toda vez que escrever o valor na tela até chegar no valor 200, quando então o laço será finalizado pois a condição estabelecida se tornará falsa. O nome dado a variável que controla a execução do laço é variável de controle (T erada & Setzer, 1992; Guimarães, 1985) . 2.4.4 Estrutura PARA-FAÇA É uma estrutura de controle. É uma simplificação da estrutura ENQUANTO- FAÇA, pois não necessita do incremento da variável de controle, que será ' automaticamente incrementada na definição da estrutura. A sintaxe abaixo representa a estrutura PARA-FAÇA, segundo Zivlani (1999): PARA <<variável>>:=<<valor iniciaI>> ATE <<valor final>> FAÇA <<comandos 1>> <<comandos N>> FIMPARA O incremento definido na estrutura acima é por padrão uma unidade. O exemplo utilizado no item anterior ficaria da seguinte forma utilizando a estrutura FAÇA-PARA: - PARA contador zz 1 ATÉ zoo FAÇA escreva (contador) FIMPARA Nesta estrutura a variável contador é inicializada com valor 1 e é acrescida de uma unidade até o valor 200. A forma de inicialização e a taxa de acréscimo já estão definidas na própria estrutura e não necessitam de atribuições em linhas de comandos individuais. Esta estrutura em comparação a ENQUANTO-FAÇA é mais simplificada, porém executa o laço do valor *inicial até o final sem interrupção. Caso haja a necessidade de, por algum motivo, o laço seja interrompido a estrutura mais adequada é a ENQUANTO-FAÇA (Guimarães, 1 985). 2.4.5 Estrutura REP|TA-ATÉ É uma estrutura de controle. Assim como a estrutura ENQUANTO-FAÇA que é usada para repetir diversas vezes uma ou mais instruções, a estrutura REPITA- ATÉ também pode ser aplicada para esta finalidade. A diferença está na validação ou condição, que nesta estrutura, REPITA-ATÉ, é no final, fazendo com que os comandos internos a estrutura sejam executados, pelo menos, uma vez. Sebesta (2000), Salvetti & Barbosa (1998) e Terada & Setzer (1992) apresentam esta estrutura na seguinte forma: REPITA <<C0marld0S 1>> <<comandos 2>> <<comandos N>> ATE <<COI'ldiÇã0>> Possui a mesma característica da estrutura ENQUANTO-FAÇA que pode ter a execução do laço interrompida. O exemplo utilizado nos itens anteriores ficaria k 24 N desta maneira utilizando a estrutura REPITA-ATÉ: contador := 1 REPITA escreva (contador) I contador := contador + 1 ATE contador = 201 A variável definida como contador recebe o valor inicial 1. Este valor é escrito na tela do computador pelo_comando escreva e em seguida seu valor é acrescido de uma unidade, quando então será feito o teste da condição para a execução do laço. Neste caso se a condição fosse falsa o comando de escrever na tela e o de acrescer a variável de controle já teriam sido executados, pelo menos, uma vez. 2.5 Considerações Finais A programação está apoiada sobre estruturas de decisão e controle. A combinação e o alinhamento entre elas formam a estrutura de um programa ou 2 software, que é transformação do algoritmo em uma linguagem comercial, industrial ou científica. A habilidade de abstrair um problema e encontrar a estrutura de programação adequada para resolvê-Io é a habilidade desenvolvida na disciplina de Algoritmos e Programação. As estruturas descritas neste capítulo estäo em consonância com o objetivo da disciplina e com o seu conteúdo programático (anexo 1). A perícia adquirida em determinar a estrutura ou a combinação certa entre elas para que o problema seja resolvido é o principal objetivo da disciplina de programação, e o modelo proposto nesta pesquisa vem como mais uma solução, para a dificuldade de aprendizado em algoritmos estruturados. 3 INTELIGÊNCIA ARTIFICIAL Neste capítulo encontram-se a revisão bibliográfica sobre Inteligência Artificial (IA), Inteligência Artificial aplicada a Educação (IAED), STI, Formas de Representação do Conhecimento e exemplos de STI aplicados ao ensino da programaçao estruturada. Um exemplo de STI relacionado ao modelo proposto é apresentado no final deste. O principal objetivo deste capítulo é trazer um panorama conceitual sobre as definições mais relevantes e significativas utilizadas em IA, IAED, STI e Formas de Representação do Conhecimento. Os exemplos ilustrados de STI aplicados ao ensino da programação estruturada fundamentam o modelo proposto e correlacionam este aos STI já desenvolvidos e aplicados na área de programação. 3.1 Inteligência Artificial Etimologicamente a' palavra inteligênciavem do latim inter (entre) e legere (escolher), ou seja, inteligência significa escolher entre uma coisa e outra. Inteligência é a habilidade de realizar de forma eficiente uma determinada tarefa. A palavra artificial vem do latim artificiale, significa algo não natural, isto é, produzido pelo homem. Portanto, inteligência artificial é um tipo de inteligência produzida pelo homem para dotar as máquinas de algum tipo de habilidade que simula a inteligência do homem (Rabuske, 1995). Ao iniciar o estudo de IA, uma das maiores dificuldades é tentar delimitar seu campo de estudo, tendo em vista sua vasta abrangência. Segundo Rich (1988) a IA busca entender a mente humana e imitar seu comportamento, levantando as seguintes questões: como ocorre o pensar; como o homem extrai conhecimentos do mundo; como a memória, os sentidos e a linguagem ajudam no desenvolvimento da inteligência; como surgem as idéias; como a mente processa informações e tira conclusões decidindo por uma coisa ao invés de outra. Essas são algumas perguntas que a IA precisa responder para simular o raciocínio humano e implementar aspectos da inteligência. O histórico da IA está diretamente interligado com o desenvolvimento dos computadores. O termo IA, foi oficialmente, apresentado na conferência em Dartmouth College, em New Hampshire, nos Estados Unidos, em 1956 (Bittencourt, 1998). Deste encontro participaram grandes pesquisadores da área, como Allen Newell, Herbert Simon, Marvin Minsky e John McCarthy. No mesmo período desta conferência Allen Newell e Herbert Simon tentaram construir um sistema que manipulava símbolos, ao invés dos baseados em números, o que gerou inúmeros estudos para incorporar inteligência às máquinas. Isto se refletiu em enormes mudanças na forma de conceber e utilizar a tecnologia para o ensino e para a aprendizagem. Diante do surgimento formal desta tão complexa concepção, inúmeras dúvidas e desafios foram colocados perante os pesquisadores, muitos dos quais permanecem até hoje e continuam sendo objeto de continuados estudos. Um dos aspectos que merece consideração especial é o que se refere à própria definição de IA, que para os seus pesquisadores permanece sem uma única interpretação, a qual é feita normalmente em função dos objetivos e metas pretendidos com a utilização deste campo de estudos. Para Winston (1987) inteligência artificial é “o estudo de conceitos que permitemaos computadores serem inteligentes”. Segundo Charniac (apud Barreto, 1998, p. 19) inteligência artificial é “o estudo das faculdades mentais com o uso de modelos computacionais". Rich & Knight (1994) definem inteligência artificial como “o estudo de fazer os computadores realizarem coisas que, no momento, as pessoas fazem melhor”. Para Bittencourt (1998) existem duas linhas de pesquisa em IA: a conexionista e a simbólica. A primeira visa à modelagem da inteligência humana simulando componentes do cérebro. A segunda estabelece uma manipulação simbólica entre os fatos de um domínio. Estas diferentes correntes de pensamentos em IA têm estudado formas de estabelecer comportamentos inteligentes nas máquinas, sendo Ó grande desafio a tentativa de sintetizar o pensamento de como fazer as máquinas compreenderem as coisas. A IA fornece métodos e técnicas para o desenvolvimento de programas que simulam nas máquinas comportamentos inteligentes, isto é tornam os computadores capazes de pensar e tomar decisões. Por isso, as técnicas de IA necessitam de uma grande quantidade de conhecimentos e de mecanismos de manipulação de símbolos. Esses conhecimentos devem ter a possibilidade de representação, modificação e ampliação. A expressão comportamentos inteligentes traz à mente a idéia de máquinas capazes de pensar do mesmo modo que o ser humano, no entanto, para criar uma máquina inteligente não é necessário que ela tenha o mesmo nível de inteligência do homem (Rabuske, 1995). Atualmente já existem máquinas que utilizam aspectos da inteligência humana para realizar tarefas e, no entanto, estão longe de serem comparadas com o nível de inteligência do homem. Para Rich & Knight (1994) o importante é o aspecto funcional ou prático da simulação da inteligência, por exemplo, um avião voa de maneira similar ao pássaro e não de forma igual, no entanto, isto não invalida ou diminui sua aplicabilidade e a contribuição que o mesmo tem dado para. o desenvolvimento da humanidade. A pesquisa em IA evoluiu muito, mas ainda encontra muitas limitações, pois o objetivo de conferir inteligência aos sistemas é construir uma máquina que venha imitar ou exceder as capacidades mentais humanas, incluindo nestas capacidades, o raciocínio, a compreensão, a imaginação, a criatividade e as emoções, pois hoje, encontram-se máquinas que imitam áreas específicas e refinadas da atividade mental humana, como por exemplo, os computadores que jogam xadrez. 3.2 Inteligência Artificial aplicada na Educação A evolução das técnicas de IA e das pesquisas no campo das ciências cognitivas, aumentou o grau de inteligência dos sistemas educacionais e antigas dificuldades estão sendo aos poucos superadas (Chaiben, 1998). Segundo Chaiben (1998) uma das principais motivações para as pesquisas em IAED é o desenvolvimento de princípios pelos quais os ambientes de aprendizagem computacionais possam ser concebidos como lugares onde os estudantes possam ter experiências de aprendizagem individualizadas, isto é, experiências que sejam fundamentais e benéficas para eles, sem importar suas diferenças individuais, experiências anteriores, ou outras situações cognitivas. Desta forma sistemas que utilizam técnicas de IA podem personalizar o ensino, compatibilizando a apresentação dos conteúdos com o nível de conhecimento do estudante e com o seu índice de aprendizagem. Todo sistema que tenha como objetivo principal a função de ensinar, deve incorporar princípios de IA (Giraffa, 1996). Os sistemas de IA armazenam e tratam com dados, adquirem, representam e manipulam conhecimentos, deduzindo e inferindo novos conhecimentos. Estes sistemas estão classificados, segundo Viccari (1996) em: CAI (Computer Assisted Instruction), ICAI (lnteligent Computer Assisted /nstruction) e STI (Sistemas Tutores Inteligentes). O CAI (Computer Assisted /nstruction) ou Instrução Assistida por Computador, utiliza a instrução programada, cujo método educacional, influenciado pela Teoria Comportamentalista de Skinner, é a forma expositiva centrada no professor, e onde o aluno deve compreender a lição e depois responder as questões para reforçar sua aprendizagem. ICAI (lnteligent Computer Assisted /nstruction) ~ ou Instrução Inteligente Assistida por Computador, se desenvolveram após pesquisas, a partir do CAI e da evolução da IA, bem como da ciência cognitiva, onde houve um aumento da inteligência dos sistemas educacionais. A possibilidade de um ambiente de aprendizagem computacional onde o aluno pode ter uma aprendizagem individualizada, personalizando a instrução através da modelagem do estudante, onde a forma de descoberta é centrada no aprendiz e os diálogos tutoriais são determinados pelo conhecimento conceitual e pelo comportamento da aprendizagem, motivam sobremaneira todos os pesquisadores, desenvolvendo a aplicação da IAED. Os STI são sistemas educacionais que englobam a IA, chamados de inteligentes e voltados para construção de outros sistemas para a área educacional. Segundo Eberspächer (1998) os STI buscam potencializar a informática educativa através da aplicação de técnicas de IA junto aos programas de computador. O papel da IA nos programas computacionais educativos pode ser resumido através do destaque de três alternativas de recursos: - a possibilidade de modelar o conhecimento; - a capacidade do sistema em resolver problemas que o aprendiz tem que resolver; - a viabilidade do sistema em conduzir as interações. A IA dentro daeducação possibilita o desenvolvimento de softwares que envolvem o raciocínio humano, imitando-o e realizando interferências. Chaiben (1998) afirma que ao simular a inteligência humana através do software, as possibilidades de ensino e aprendizagem estarão aumentadas em centenas de vezes. 3.3 Sistemas Tutores Inteligentes Sistemas Tutores Inteligentes são softwares de propósito educacional que utilizam técnicas de IA para aquisição e representação do conhecimento. Os STI são um campo de pesquisa e desenvolvimento interdisciplinar e, segundo .,,.I ai Bibi' se-I U' -if* .Fl 1 io cífisrëversôdr O*/ro? v * ¬‹ ~ ,....‹,›~.-¬..›.. .› .S ...,.., . ' Kearsley (1987), os domínios envolvidos neste campo de pesquisasão: ° a Ciência da Computação, com técnicas de IA; ~ A Psicologia, com os aspectos cognitivos; e ~ os segmentos de Educação e Treinamento, com a aplicação da informática educativa. A aquisição de conhecimento tem sido considerada um obstáculo para o desenvolvimento de sistemas inteligentes, especialmente para o desenvolvimento do modelo do especialista do STI, onde para se ter eficiência é necessário adquirir e representar uma grande quantidade de conhecimento de vários especialistas em determinado domínio. Embora derivados dos CAI, os STI oferecem a vantagem sobre estes por simularem o processo do pensamento humano dentro de um determinado domínio. Segundo Dillenbourg (1994) o termo inteligente se refere tanto a técnica usada quanto ao desempenho do sistema, ou seja, aquilo a que o sistema se propõe a fazer. Para Giraffa (1998, p. 5) “o objetivo fundamental dos STI é proporcionar uma instrução adaptada ao aluno, tanto em conteúdo como na forma, superando desta maneira alguns dos problemas mais cruciais do software educativo na atualidade. Os STI se comportariam de forma mais próxima a um professor humano ou um comportamento mais próximo possível disto. Porém,'a realidade está muito distante de alcançar tais propósitos. Existem muitas razões para que isto ocorra: temos limitações a nível de hardware e software que não nos permitem colocar dispositivos que possam trabalhar com aspectos relativos aos sentidos do olfato, tato e visão. Um professor humano pode e leva em consideração estes estímulos para poder organizar seu trabalho junto ao aluno e, além disto, utiliza as saídas deste sentidos para fins de feedback do aluno. O fato é que desconhecemos a maneira com que nós humanos efetivamente processamos informação dentro de nosso cérebro”. 3.3.1 Estrutura de um STI A maioria dos STI desenvolvidos possuem certas características em comum, sendo que suas implementações seguem uma arquitetura básica constituída de quatro módulos. Segundo Kaplan & Rock (1995) e Giraffa (1998), os STI são estruturados em: ' ~ Modelo do Especialista; - Modelo do Estudante; - Modelo Pedagógico; - Modelo de Interface. A figura 1 representa a estrutura básica de um STI. Modelo Modelo do Modelo do Pedagógico Especialista Estudante Figura 1 - Diagrama em blocos de um STI básico. . 3.3.1.1 Modelo do Especialista O Modelo do Especialista ou conhecimento de domínio (Eberspächer, 1998) descreve o conhecimento de um especialista na área de domínio do sistema, servindo como base para a construção do Modelo do Estudante. Este modelo contém o conhecimento sobre o domínio que se deseja ensinar ao estudante. Segundo Giraffa (1996) vários modelos de representação de conhecimento podem ser usados aqui: redes semânticas, frames, scripts, regras de produção, entre outras.-A escolha .deve recair sobre aquele método que melhor e mais facilmente atenda os requisitos de representação e manipulação do raciocínio. Esta base de conhecimento contém os elementos necessários para que o estudante aprenda o conhecimento e os procedimentos necessários para que possa utilizar na resolução de problemas. Woolf (1988) e Giraffa (1998) citam que nos casos em que o domínio a ser representado é de natureza descritiva e teórica (por exemplo, geografia ou física), a representação do conhecimento mais adequada é declarativa (redes semânticas ou Frames). Já nos casos em que o domínio é orientado a uma tarefa (por exemplo, programação estruturada ou Pascal), a representação tende a ser procedural, onde se aplicam as regrasde produção. _ 3.3.1.2 Modelo do Estudante O Modelo do Estudante é a representação do conhecimento do estudante e dos seus erros, mapeando quais informações do professor que já foram assimiladas. Ele contém uma representação do estado do conhecimento do aluno no momento que interage com o STI (Giraffa, 1996). É neste modelo que reside a chave para um ensino personalizado e inteligente. A dimensão mais significativa de um STI é sua capacidade de modelar o conhecimento do estudante (Jonassen & Wang, 1993). Este modelo deve ser dinâmico, contendo o conhecimento e as capacidades do estudante bem como seu comportamento de aprendizagem passado. Segundo Costa (1996) e Eberspächer (1998) o modelo do aluno pode ser representado, apoiando-se em alguns modelos de descrição como: ~ Modelo diferencial: neste modelo a resposta do aluno é comparada com a da base de conhecimento. ° Modelo de Overlay ou superposição: o conhecimento do aluno é representado como um subconjunto da base de conhecimento do STI. ° Modelo de Perturbação: este modelo também relaciona o modelo do aluno com a base de conhecimento do domínio, porém assume que os erros do aluno são decorrentes da concepção errônea de algum conceito ou ausência dele. ~ Modelo de Crenças: consiste em um conjunto de crenças que refletem que pensamos o quanto o estudante entende sobre determinado conceito. 3.3.1.3 Modelo Pedagógico O Modelo Pedagógico, também chamado de Módulo lnstrucional (Eberspächer, 1998), representa os métodos e técnicas didáticas utilizadas no processo da comunicação de conhecimento. Executa o diagnóstico do estudante, decide quais as estratégias de ensino serão utilizadas e determina qual a informação que será apresentada. Sua principal função é a de gerenciar a seqüência das instruções, monitorando o comportamento e a performance do estudante de maneira a auxiliá-lo no processo de aprendizagem. Neste modelo o STI pode mudar de estratégia pedagógica de acordo com os resultados que o estudante vem apresentando. Wenger (1987, p.45) enfatiza que “as decisões pedagógicas são tomadas no contexto de um ambiente educacional que determina o grau de controle sobre a atividade e sobre a interação possuídos respectivamente pelo sistema tutorial e pelo estudante”. Portanto, um processo de aprendizagem depende de diversos fatores e o STI deve observar para não destruir a motivação pessoal do estudante ou o senso de descobrimento. Breuker (apud Giraffa, 1996, p. 32) cita que a estratégia de ensino adotada deve definir: ° "Quando ocorrerá a interrupção do STI sobre o raciocínio ou aprendizagem do aluno; ° O que deverá ser abordado, considerando a seleção dos tópicos apresentados e sua ordenação; ' Como transmitir os conhecimentos inseridos dentro de cada tópico a ser explorado. As teorias pedagógicas existentes trabalham como o conhecimento deve ser transmitido”. 3.3.1.4 Modelo de Interface O Modelo de Interface ou, simplesmente, Interface é a forma como a comunicação será realizada com o meio externo ao sistema. Ele apresenta o material instrucional que será armazenado na base de conhecimento (Modelo do Especialista) ao estudante, traduzindo a representação do conhecimento adotada em uma linguagem de interface compreendida pelo estudante. Na engenharia de software, a interface do usuário tem sido a primeira preocupação dos projetistas quando estão discutindo a criação de uma nova aplicação pois, para os usuários, a interface é o próprio sistema (Chaiben, 1998y Este modelo é fundamental para o sucesso de um STI, já que ele é responsável pela apresentação do material e* por receber oseventos e solicitações do usuário. É responsável pelo fluxo de informação de entrada e de saída, transformando as solicitações de entrada em informações que o STI possa compreender, bem como adaptando as de saída para o contexto, mais adequado, do estudante. Segundo Giraffa (1996) este módulo possui duas principais funções: ° a apresentação do material instrucionai; - a monitoração do progresso do estudante através da recepção da resposta do aluno. A partir destas funções, Giraffa (1998) cita algumas características do módulo de interface: - é necessário evitar que o estudante se entedie, ou seja, é preciso riqueza de recursos na apresentação do material instrucionai; ° é desejável que haja facilidade para troca da iniciativa do diálogo: o estudante deve poder intervir facilmente no discurso do tutor, e vice-versa; - o tempo de resposta deve, evidentemente, permanecer dentro de limites aceitáveis; - a monitoração deve ser realizada o máximo possível em background, para não onerar o estudante com questionários excessivos, mas respeitando também a barreira do tempo de resposta. 3.4 Formas de Representação do Conhecimento A representação do conhecimento é o componente fundamental em STl. Os mecanismos utilizados na representação dos conhecimentos determina o comportamento do STI (\/iccari, 1996). A De acordo com os formalismos de IA, o conhecimento é codificado através de objetos, atributos, objetivos, ações e é processado através de estruturas e procedimentos. A representação do conhecimento é uma redução, coerente e com o senso comum suficiente, de determinadas circunstâncias que permitirão o computador decidir de forma semelhante a um ser humano (Bittencourt, 1998). Para representar o desempenho de especialistas humanos, o sistema deve possuir não só um conjunto de informações mas, também, a habilidade de utilizá-las na resolução de problemas de forma criativa, correta e eficaz. Segundo Fialho (1998) esta habilidade representa uma série de palpites e regras intuitivas que o especialista utiliza para resolver os problemas; sua aplicação possibilita, de uma maneira mais econômica, a chegada a soluções aceitáveis, embora nem sempre ótimas. Um STI precisa conhecer o contexto do fato em estudo e reconhecer os processos que causariam mudanças nos fatos. Para resolver problemas, em alguns casos, é recomendado conhecer tudo sobre o problema e quais as possíveis soluções que se pretende encontrar, juntamente com algumas estratégias para solucionar cada problema. O estudo da representação do conhecimento consiste nos caminhos que podem ser trilhados para codificá-Io em um programa computacional. 40 Para Chaiben (1998) uma das principais características dos programas de IA é que o sistema é estruturado de modo a separar o código executável dos dados ou conhecimento do sistema. Assim, em IA, o termo conhecimento significa a informação que um programa de computador necessita para que possa comportar-se inteligentemente. Segundo Fialho (1998) os conhecimentos que representam objetos são modeiados por rede semântica, os que representam situações e os acontecimentos, são expressos por esquemas e os que representam ações são modeiados por procedimentos. ' 3.4.1 Procedimentos Segundo Chaiben (1998) a representação procedimental é aquela em que as informações de controle necessárias ao uso do conhecimento estão embutidas no próprio conhecimento, ou seja, a maior parte do conhecimento é representada como procedimentos para a sua utilização. Nesta representação o conhecimento é expresso em forma de procedimentos ou passos seqüenciais que determinam ações, diagnosticam problemas e encontram soluções. Este tipo de conhecimento é usualmente representado em um conjunto de regras ou án/ores de decisão. Dentre as principais vantagens da utilização da representação procedimental incluem-se (Rich, 1988): - A facilidade em representar o conhecimento de como fazer as coisas; ~ A facilidade em representar o conhecimento que não se enquadra dentro de muitos esquemas declarativos simples, como por exemplo, o raciocínio por omissão e o raciocínio probabilístico; - A facilidade em representar o conhecimento heurístico de como fazer eficientemente as coisas. O exemplo abaixo representa o conhecimento em forma de procedimento, através das regras de produção: SE o carro não quer ligar e a bateria está carregada ENTÃO examine 0 distribuidor 3.4.2 Esquemas A noção de esquemas foi introduzida para explicar o papel desempenhado pelos conhecimentos na compreensão, na memorização, e na produção de inferências. Os mais significativos são os scripts e os frames. r 3.4.2.1 Scripts Os scripts são estruturas de informação que auxiliam a compreensão de situações do comportamento padronizado. Foram propostos por Schank & Abelson em 1977 (apud Barreto, 1998, p. 59) e inspiraram o estudo de sistemas de Raciocínio Baseado em Casos (RBC). Os scripts são uteis porque, no mundo real há padrões para a ocorrência de eventos. Contudo, o conceito de um script não é compartilhado por todos, já que cada memória compreende um script sobre uma experiência a partir do próprio ponto de vista. Portanto a teoria dos scripts não é uma teoria completa. Os scripts contém o conhecimento normativo, mas não o conhecimento da experiência. Um exemplo de script, segundo Schank & Abelson (apud Fialho 1998, p. 218), é o do restaurante e é representado da seguinte forma: Trilha: Sala do Café Participam: Props: Mesa S - Cliente Menu W - Atendente F - Comida C - Cozinheiro Cheque M - Recebedor Dinheiro O - Proprietário Condições de Entrada: Resultados: S está com fome S tem menos dinheiro S tem dinheiro O tem mais dinheiro S não está com fome « S está satisfeito (opcional) Cena 1: Entrada S Ptrans S para dentro do restaurante S Attend olhos para a mesa S Mbuild onde sentar S Ptrans S para a mesa S Move S para a posiçao sentada Cena 2: Fazendo o pedido (menu sobre a mesa) (W traz menu) (S pede pelo menu) S Ptrans menu to S S Mtrans um sinal to W W Ptrans W to mesa F S Mtrans 'preciso do menu' to W W Ptrans W to menu W Ptrans W to mesa W Atrans menu to S S Mtrans a lista de comida to CP (S) * S Mbuild escolha de F S Mtrans sinal to W W Ptrans W to mesa S Mtrans 'Eu quero F' to W W Ptrans W to C W Mtrans (Atrans F) to C C Mtrans 'não tem F' to W C Do (prepara F script) W Ptrans W to S vai para a CENA 3 W Mtrans 'náo tem F' to S (volta para *) ou (vai para a CENA 4 para o caminho de não pagamento) Cena 3: Comendo C Atrans F to W W Atrans T to S' S Ingest F (opcionalmente retorna a Cena 2 e pede mais, ou vai para a Cena 4) Cena 4: Saindo H S Mtrans to W (\/V Atrans cheque to S) W Move (escreve cheque) W Ptrans W to S W Atrans cheque to S S Atrans gorjeta to W S Ptrans S to M S Atrans dinheiro to M (caminho de não pagamento) S Ptrans S to fora do restaurante 3.4.2.2 Frame Segundo Fialho (1998) frame é uma estrutura de dados que representa uma entidade através de suas características e potenciais habilidades. Suas características estäo representadas por pares atributo-valor e as potencialidades são representadas por métodos. Um frame abstrato (ou frame de classe) não tem instâncias, por esta razão seus atributos não são valorados, suas subclasses são ligadas a instâncias da entidade representada por essa classe. Para exemplificar, será representado o conhecimento necessário a uma situação específica, como “jantar fora” através de frames. Para “jantar fora" é necessário um estabelecimento comercial onde é servido comida pronta; sabe- se, no entanto, que existem vários tipos desses estabelecimentos: lanchonetes, bares, restaurantes, churrascarias, entre outros, cada um com características próprias. Levando em conta que os restaurantes ainda podem ser de preço médio ou preço alto, tem-se a seguinte estrutura de frames: Frame EsTABE|_Ecuv|ENTocoMERc|Al. oNDE É sERv|oo coM|DA PRONTA Frame Frame Frame Frame uxNcHoNETE BAR RESTAURANTE CHURRAsCAR|A Frame Frame PREço |v|Eo|o PREÇO ALTO Uma sugestão para o frame RESTAURANTE: 1. Especialização de estabelecimento comercial onde é sen/ido comida pronta; 2. Frames correlatos: lanchonete, bar, churrascaria Se refeições rápidas então lanchonete Se bebidas vendidas em balcão então bar Se carne servida em rodízio então churrascaria H 3. Estilo de comida: brasileira, portuguesa, italiana; default: brasileira 4. Forma de operação: com resen/a, sem resen/a; default: sem reserva 5. Horário de funcionamento: variável; default: 09:00 h da manhã à 02:00 h da madrugada 6. Forma de pagamento: dinheiro, cheque, cartão 7. Seqüência de eventos: Roteiro jantar no restaurante 8. Quadros especializados: preço médio e preço alto Se maioria dos pratos custa entre 10 e 50 reais, então preço médio Se maioria dos pratos custa acima de 50 reais, então preço alto 3.4.3 Redes Semânticas As Redes Semânticas são grafos direcionados ligados por nós para representar objetos e conexões e a relação entre estes. A rede semântica é usada para representar elementos de uma representação tal como uma classe, suas instâncias e suas características. Seus arcos são direcionados e representam as relações entre os atributos. Chaiben (1998) define rede semântica como uma estrutura de representação do conhecimento definida como um padrão de nodos interconectados por arcos rotulados. As redes deste tipo não só captam as definições dos conceitos mas também, inerentemente, proporcionam ligações com outros conceitos. Para representar, por exemplo, que "Todo carro é um veículo" temos: É um _-_-ir Veículo Figura 2 - Exemplo de Rede Semântica. Os arcos em geral dependem da espécie de conhecimento que está sendo representado; por exemplo, é-um e é-parte-de são arcos para representar hierarquias entre objetos. Uma característica chave da representação por rede semântica é que importantes associações podem ser feitas explicitamente e sucintamente. Fatos importantes sobre um objeto ou conceito podem ser deduzidos dos nós aos quais eles estão ligados diretamente, sem uma pesquisa no contexto. Desta forma, o exemplo a seguir mostra uma rede semântica mais abrangente que representa "Todo carro tem rodas é um veículo é um meio de transporte": Roda Meio de Transporte É parte de É um É um í---í› V9ÍCU|O Figura 3 - Exemplo de Rede Semântica. 3.5 Exemplos de STI aplicados a Programação Estruturada Os STI destinados a iniciantes de programação associam técnicas de IA, ambientação construtivista por exploração livre e recursos de visualização científica para, no final, criar interfaces de razoável versatilidade para o aluno (Pimentel & Direne, 1997). Direne & Pimentel (1998) cita alguns exemplos de STI aplicados ao ensino da programação: o Lisp Tutor, GIL, LAURA, BIP, Proust, Spade, Talus e Bridge. Entretanto, estes STI e micromundos enfatizam apenas os aspectos semânticos da solução de um exemplo de programação, independentemente do grau de dificuldade do enunciado do exercício em questão. O projeto MENO, iniciado no final da década de 70 tinha por objetivo construir um STI para ensinar alunos iniciantes na linguagem Pascal (programação estruturada). Segundo Giraffa (1998), o objetivo deste projeto era diagnosticar erros não sintáticos em pequenos programas e associá-los ao nível de compreensão apresentado pelo aluno. Desta forma era possível identificar qual o conceito que o aluno não aprendeu bem através do tipo de erro que ele cometeu. A utilização destes STI apontaram a integração de comandos individuais como a principal dificuldade demonstrada por iniciantes que utilizam linguagens de programação convencionais, ou seja, a falta de perícia na utilização das estruturas básicas de programação (Direne & Pimentel, 1998). Os STI apresentados não consideram a complexidade' do enunciado de um problema de programação, que possui diversas componentes cognitivas que aumentam o grau de dificuldade da resolução do problema. Parte da importância deste procedimento pode ser constatado quando um problema de programação significativamente mais complexo do que o anterior é proposto a um aprendiz. Esta fato pode levar à ocorrência de erros múltiplos, impedindo o sucesso do aluno por longos períodos de tempo (Pimentel & Direne, 1997). Alguns STI como BALSA II (Brown, 1988) e o TINKER (Liberman, 1984), apresentam, aos alunos, seus enunciados em uma ordem de complexidade extremamente rígida e inflexível, o que aumenta o grau de compreensão do enunciado proposto, dificultando a resolução dos exercícios. 3.6 Exemplo de STI relacionado ao Modelo Proposto Silveira (1996) desenvolveu um STI denominado de ELETROTUTOR, cujo objetivo é auxiliar o ensino de tópicos de eletricidade, Lei de Ohm e temas relacionados, para alunos do terceiro ano do segundo grau e cursos de eletricidade básica. O conteúdo está dividido em oito unidades estruturadas em um texto base sobre o assunto, um gerador de exemplos e um de exercícios. Os textos são apresentados em telas e os exemplos gerados são estáticos, não permitindo qualquer edição ou modificação por parte do aprendiz. Os exercícios são do tipo V (verdadeiro) ou F (falso). Se o aluno erra a resposta correta é apresentada antes do novo exercício. Os problemas propostos ao aluno são escolhidos randomicamente a partir de um arquivo de exercícios. Este processo de escolha de problemas é aleatório, considerando a atuação do aluno no exercício anterior. O sistema faz um diagnóstico inicial, com perguntas, a fim de levantar o perfil do aluno, após isto faz um plano de trabalho que o aluno pode ou não aceitar. Os textos e os exercícios mudam em função da atuação do aluno. O protótipo foi implementado em Arity-Prolog e serviu para avaliar o desempenho de um STI de física e foi utilizado como base para o projeto ELETROTUTOR-II (Silveira, 1998). 3.7 Considerações Finais Diante de tais colocações, a IA é uma tecnologia chave para o software do futuro, portanto, pode-se afirmar que o campo de lA tem como objetivo, o contínuo aumento da inteligência do computador, pesquisando, para isto, também os fenômenos da inteligência natural na resolução de problemas, da compreensão de linguagem natural, da visão e da robótica, formas de aquisição e metodologias de representação de conhecimento. O desenvolvimento científico e tecnológico vem criando nos educadores a necessidade de adotar modelos de ensino que atendam às profundas modificações que a sociedade do início do novo século passa a exigir, ondea crescente perspectiva de diversificar os espaços educacionais revela um aprendizado sem fronteiras. A adoção das técnicas de IA aos softwares educacionais tornam possível a criação de ambientes de aprendizagem, nos quais as diferenças e experiências individuais dos aprendizes são consideradas (Alves & Simões, 1999). A modularização em um STI e as pesquisas individuaiizadas de aprimoramento de cada modelo, destacando a separação entre estratégias de ensino e conhecimento representado proporciona um aumento significativo na interação do aprendiz e o sistema. Os STI estão em aprimoramento. Ainda não cumprem todos os objetivos a que se propuseram resolver. Chaiben (1998) cita que as razões estão relacionadas aos altos custos de desenvolvimento e a falta de um paradigma estabelecido para descrever o processo de aquisição de conhecimento. Várias teorias foram desenvolvidas, mas nenhuma tem sido aceita como um modelo apropriado de cognição. Outro problema, é a incapacidade de um sistema em gerarum raciocínio pedagógico inteiramente autônomo, o que possibilitaria ao sistema tomar decisões que não tivessem sido antecipadas pelos especialistas. Assim, os projetos são baseados em modelos que podem ou não representar o processo de aquisição de conhecimento. Desta forma
Compartilhar