UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO

Tamanho: px
Começar a partir da página:

Download "UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO"

Transcrição

1 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE UM AGENTE PEDAGÓGICO UTILIZANDO JCLIPS Área de Inteligência Artificial por Alisson Oldoni Anita Maria da Rocha Fernandes, Dra. Orientadora Janice Inês Deters, M. Sc. Co-orientadora Itajaí (SC), novembro de 2006

2 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE UM AGENTE PEDAGÓGICO UTILIZANDO JCLIPS Área de Inteligência Artificial por Alisson Oldoni Relatório apresentado à Banca Examinadora do Trabalho de Conclusão do Curso de Ciência da Computação para análise e aprovação. Orientadora: Anita Maria da Rocha Fernandes, Dra. Itajaí (SC), novembro de 2006

3 DEDICATÓRIA Dedico este trabalho a todos que, de alguma forma, me ajudaram no desenvolvimento deste trabalho, principalmente ao meu pai Vilmar Oldoni, a minha mãe Maria Telma Oldoni e a minha irmã Larissa Oldoni. Eles são a minha família e eu os amo muito. ii

4 AGRADECIMENTOS Agradeço inicialmente a minha família que me ajudou desde o início deste curso, sempre me apoiando, e que teve principalmente paciência comigo no desenrolar do desenvolvimento deste TCC. Eu não poderia ter nascido no meio de uma família mais querida. Agradeço ao famoso Seu Vilmar (meu pai), que levava os sucos e sanduíches nos momentos mais oportunos. Mesmo que às vezes eu estava completamente concentrado e nem falava obrigado, eu ficava muito agradecido, é sério! Não só por isso, claro, mas por tudo que ele fez na minha vida, me apoiando em tudo. Principalmente na música: uma das minhas paixões. Agradeço a Dona Telma (minha mãe), a melhor pessoa do mundo, que fazia a logística da minha vida enquanto eu tava ocupado com este trabalho: marcando hora nos médicos, fazendo aquele rango esperto, entre todas as tarefas de mãe. Agradeço a Mariá Dufloth Pelissa e a toda a sua família (incluindo animais de estimação). Mariá é a minha namorada, companheira e amiga, a quem eu amo muito e que dá brilho a minha tímida existência. Ela, durante todo o tempo, deu todo o apoio, seja ele psicológico ou não, no estilo: Alisson, é claro que você consegue!. Ela é minha base de sustentação, a pessoa a quem mais procuro para conselhos e opiniões no sobre a minha vida, que faz de tudo pra eu não me estressar com as coisas do dia-a-dia e que ainda me faz comida (percebam que eu como bastante). Agradeço a Professora Anita (minha orientadora e segunda mãe) que, apesar de brigar comigo todo dia, sempre fazia tudo pelo meu bem. Se for parar pra pensar, eu merecia bem mais xingões dos que eu levei. Ela é muito querida e atenciosa! Agradeço ao pessoal do IEB, aos companheiros de projeto (desculpem se esqueci alguém): Janice, Marcos, Luciana (que me deu 32 apelidos ao longo da minha vida acadêmica) e Vander. Aos colegas de laboratório: Ricardo, Bruno (representa!), Maylla, Guilherme, Vinicius, Rudimar, Marlei, Heitor, Poolney (culpa do Poolney!), Crispim, Benjamin e Rafael (o único Corinthiano no meio de tantos São Paulinos). Agradeço também aos meus professores e os muitos colegas de faculdade (os que eu lembro agora): Elias, Santiago, Higor, Sidnei, Alôncio, Douglas, Deivid e Armando. Agradeço aos meus colegas (na verdade melhores amigos) de banda: Rodrigo, Rafael, Fabiano e Galego. Ao pessoal das minhas bandas: Contra, Garden All e Hot Spot, que sempre entenderam caso faltasse algum ensaio ou coisa parecida. Agradeço também aos meus amigos(as) de sempre: Morandi, Cristiano, André, Cadore, Vinicius, Filipi, Maria (que trouxe meu contrabaixo novo de avião!), Briane, Pinha e Camila. iii

5 SUMÁRIO LISTA DE ABREVIATURAS...vi LISTA DE FIGURAS...vii LISTA DE TABELAS...viii RESUMO...ix ABSTRACT...x 1 INTRODUÇÃO PROBLEMATIZAÇÃO Formulação do problema Solução proposta OBJETIVOS Objetivo geral Objetivos específicos METODOLOGIA ESTRUTURA DO TRABALHO FUNDAMENTAÇÃO TEÓRICA INFORMÁTICA NA EDUCAÇÃO (IE) Histórico da IE Taxonomia STI Histórico dos STI Arquitetura clássica dos STI AGENTES INTELIGENTES Características dos agentes inteligentes Arquiteturas de agentes Taxonomia de agentes Agentes de interface Agentes de interface pedagógicos Arquitetura de STI utilizando agentes Exemplos de STI utilizando agentes SISTEMA ESPECIALISTA (SE) Shells estudadas Ferramenta escolhida Algoritmo de Rete DESENVOLVIMENTO PORTAL SAÚDE+EDUCAÇÃO STI E AGENTE PEDAGÓGICO CONCEPÇÃO VISUAL DO AGENTE PEDAGÓGICO iv

6 3.4 FUNCIONAMENTO DO AGENTE IMPLEMENTAÇÃO CRIAÇÃO DAS REGRAS DIAGRAMAS CONCLUSÕES...71 REFERÊNCIAS BIBLIOGRÁFICAS...73 v

7 LISTA DE ABREVIATURAS CAI CGI CLIPS FINEP FORTRAN GNU GPL GPS HTML HMD HTTP IA ICAI IE IEB ILE IP JAR JCLIPS JDBC JEOPS JESS JSP JSF LISP NASA MCT OpenSUSE PEAS SBIE SE SMAR STI SWF TCC UCB UFSC UML UNIVALI WIN WWW XML Computer Aided Instruction Common Gateway Interface C Language Integrated Production System Financiadora de Estudos e Projetos Formula Translator GNU is Not Unix General Public License Global Positioning System Hyper Text Markup Language Head-Mounted Display Hypertext Transfer Protocol Inteligência Artificial Intelligent Computer Aided Instruction Informática na Educação Instituto de Engenharia Biomédica Integrated Learning Environments Internet Protocol Java ARchive CLIPS for Java Java Database Connectivity Java Embedded Object Production System Java Expert System Shel Java Server Pages Java Server Faces List Processing National Aeronautics and Space Administration Ministério da Ciência e Tecnologia Open Software und System Entwicklung Performance, Environment, Actuators, Sensors Simpósio Brasileiro de Informática na Educação Sistema Especialista Sistema Multi-Agente Reativo Sistemas Tutores Inteligentes Small Web Format Trabalho de Conclusão de Curso Universidade Católica de Brasília Universidade Federal de Santa Catarina Unified Modeling Language Universidade do Vale do Itajaí Workshop de Informática Médica World Wide Web extensible Markup Language vi

8 LISTA DE FIGURAS Figura 1. Arquitetura clássica de um STI...13 Figura 2. Arquitetura ampliada do STI...14 Figura 3. Agentes interagem com ambientes por meio de sensores e atuadores...16 Figura 4. Pseudocódigo de um agente reativo simples...21 Figura 5. Diagrama esquemático de um agente reativo simples...22 Figura 6. Pseudo-código de um agente reativo baseado em modelo...22 Figura 7. Um agente reativo baseado em modelo...23 Figura 8. Um agente baseado em modelos e orientado para objetivos...24 Figura 9. Um agente baseado em modelo e orientado para utilidade...24 Figura 10. Taxonomia de agentes baseada no mundo natural...25 Figura 11. Uma parte da tipologia de agentes multidimensional...27 Figura 12. Classificação multidimensional completa...27 Figura 13. Como os agentes de interface funcionam...28 Figura 14. Arquitetura baseada em agentes...33 Figura 15. STI com arquitetura usando agente...34 Figura 16. O agente Adele, explicando a importância de certos procedimentos...35 Figura 17. O agente Guilly...36 Figura 18. Sistema Especialista...38 Figura 19. Unificação de padrões: fatos e regras...42 Figura 20. Recursos computacionais desnecessários quando as regras procuram fatos...43 Figura 21. Fatos em busca de regras...43 Figura 22. Organização simplificada do projeto...46 Figura 23. O agente Bernardo...48 Figura 24. Arquitetura do agente Bernardo...49 Figura 25. Organização do assunto...51 Figura 26. STI e o agente Bernardo...52 Figura 27. Feições do agente Bernardo...54 Figura 28. Tela de login e senha...59 Figura 29. Agente explicando o ambiente...60 Figura 30. Itens do STI...61 Figura 31. Auto-avaliação...61 Figura 32. Agente interagindo com o aluno...62 Figura 33. Árvore de decisões do sistema especialista...64 Figura 34. Regras do sistema especialista...67 Figura 35. Regras do sistema especialista...67 Figura 36. Diagrama contendo os módulos do sistema...68 Figura 37. Diagrama de seqüência...69 Figura 38. Diagrama do banco de dados...70 vii

9 LISTA DE TABELAS Tabela 1. Exemplos de tipos de agentes e suas descrições de PEAS...19 Tabela 2. Características de agentes pedagógicos baseados em objetivos...31 Tabela 3. Comparação das shells...41 Tabela 4. Tabela de alunos...56 Tabela 5. Tabela de acessos dos alunos...56 Tabela 6. Tabela de itens...57 Tabela 7. Tabela de questões...57 Tabela 8. Tabela de tópicos...57 Tabela 9. Desempenho do aluno...63 viii

10 RESUMO OLDONI, Alisson. Desenvolvimento de um agente pedagógico utilizando JCLIPS. Itajaí, f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, Dentre os recursos computacionais aplicados à educação explorados atualmente, tem-se os Sistemas Tutores Inteligentes. Uma das abordagens modernas para este tipo de sistema é a que faz uso do conceito de agentes inteligentes. Estes agentes são denominados pedagógicos quando estão ligados a um ambiente de ensino, como os Sistemas Tutores Inteligentes. Este projeto apresenta o estudo de caso do desenvolvimento de um agente pedagógico de interface inteligente para um Sistema Tutor Inteligente de neurofisiologia desenvolvido dentro do projeto Sistemas Virtuais de Ensino Baseados na Internet para Suporte à Educação e Treinamento na Área da Saúde do Instituto de Engenharia Biomédica da Universidade Federal de Santa Catarina. Este agente tem sua inteligência modelada através de sistemas especialistas e foi implementado utilizando o JCLIPS, biblioteca Java que faz uma conexão entre o Java e o software CLIPS. Para isso foram necessárias as seguintes etapas: análise do modelo conceitual do Sistema Tutor Inteligente; análise e programação da conexão entre JCLIPS e o PostgreSQL, que foi o sistema gerenciador de banco de dados utilizado no projeto; estabelecimento das variáveis do Sistema Tutor Inteligente que o agente pedagógico faz uso; criação da árvore de decisões do sistema especialista; validação das regras de produção geradas pela árvore de decisões; implementação das regras de produção no JCLIPS; e realização de testes do agente pedagógico dentro do contexto de uso do Sistema Tutor Inteligente. A entrega das feições do agente ao navegador Web foi feita utilizando um filme em Macromedia Flash, com uma comunicação com o navegador através de Javascript e com o servidor através de requisições a arquivos JSP. O JCLIPS é acessado pelo JSP e a quantidade de regras de produção necessárias para que o sistema especialista funcione adequadamente são definidas pelo conteúdo que foi abrangido e pela quantidade de classes de desempenho existentes para o aluno. Palavras-chave: Agentes Pedagógicos. Sistemas Tutores Inteligentes. JCLIPS. ix

11 ABSTRACT Among the computational resources applied to the education currently explored, there are the Intelligent Tutoring Systems. One of the modern approaches for this kind of system it s one that makes use of the intelligent agents concept. These agents are called pedagogical agents when connected to a learning environment, like the Intelligent Tutoring Systems. This project introduces the case study of the development of an intelligent interface pedagogical agent for a neurophysiology Intelligent Tutoring System developed inside the Web Based Virtual Education Systems to Support Education and Training in Heath Area project, coordinated by the Instituto de Engenharia Biomédica, an institute inside the Universidade Federal de Santa Catarina. The agent s intelligence is modeled using expert systems and was implemented using JCLIPS, a Java library that makes a bridge between Java and the CLIPS software. For this project s conclusion, the following steps were necessary: conceptual model of the Intelligent Tutoring System analysis; JCLIPS and PostgreSQL (the database management system used in this project) connection analysis and programming; establishment of the Intelligent Tutoring System variables that the pedagogical agent will make use of; creation of the decision trees for the expert system; decision trees generated production rules validation; production rules implementation using JCLIPS; and tests realizations using the pedagogical agent in the Intelligent Tutoring System context. The media content of the agent was delivered to the Web browser using a Macromedia Flash film, with a communication with the browser through Javascript and with the server through requisitions to JSP files. The JCLIPS is accessed by the JSP and the amount of production rules necessary to the system to work adequately are defined by the enclosed content and by the quantity of performance levels needed for the student. Keywords: Pedagogical agents. Intelligent Tutoring Systems. JCLIPS. x

12 1 INTRODUÇÃO O atual uso da informática na educação faz muitos recursos de aprendizado em uma sociedade onde é necessário a constante presença de tecnologias de comunicação e informação. Essas tecnologias possibilitam a inovação, a interação, a troca e a pesquisa em inúmeros segmentos do conhecimento humano. O processo de ensino tem sido revolucionado pela inserção da tecnologia. Dentro das características percebidas com esta inserção, pode-se citar: a otimização de recursos, a melhora do processo de ensino-aprendizagem, uma educação mais eqüitativa, a geração de uma formação contínua, e uma melhor sintonia da escola com a sociedade (BRUNER, 2000 apud VILLAREAL, 2003). Dentre os recursos educacionais explorados atualmente, tem-se os Sistemas Tutores Inteligentes (STI). Tais sistemas têm a tendência moderna de fazer uso do conceito de agentes pedagógicos inteligentes (BIGUS e BIGUS, 2001). Nissen (1995 apud COSTA, 1999) apresenta uma idéia mais informal do que seriam agentes inteligentes, dizendo que um agente é alguma coisa que atua como um procurador com o propósito específico de realizar ações que podem ser entendidas como benéficas à parte representada. Outra definição é a de Shoham (1997 apud COSTA, 1999) que mostra o agente como sendo uma entidade de software funcionando continuamente e de forma autônoma em um ambiente particular, freqüentemente habitado por outros agentes e processos. Pereira e Geyer (1999) falam que os agentes são denominados pedagógicos quando estão ligados a um ambiente onde existe uma sociedade de agentes que compõem um sistema de ensinoaprendizagem. Estes agentes pedagógicos, no intuito de melhor interagir com o aluno, aparecem como agentes gráficos animados de interface, que são personagens geralmente animados como personagens de desenho animado em 2D ou 3D. Eles aparentam vida e são utilizados como ferramentas cognitivas para dar suporte ao aprendizado do aluno (AHMED, KASSIM e RANGANATH, 2001). Os agentes pedagógicos possuem um conjunto de regras que determinam os objetivos de ensino e os planos para atingí-los. Estes planos são determinados pelo uso de estratégias de ensino.

13 Dentro deste contexto, este projeto implementou um agente pedagógico cuja inteligência foi modelada através de Sistemas Especialistas (SE). A ferramenta de SE utilizada foi o JCLIPS, que fez a ligação do CLIPS (C Language Integrated Production System) com o Java. O agente e a arquitetura desenvolvida foram utilizados dentro do STI de neurofisiologia, do portal Saúde+Educação do projeto Sistemas Virtuais de Ensino Baseados na Internet para Suporte à Educação e Treinamento na Área de Saúde. 1.1 PROBLEMATIZAÇÃO Formulação do problema Atualmente na área de Neurofisiologia identifica-se uma defasagem de conteúdos on-line, principalmente na língua portuguesa, o que levou a construção de um STI que disponibilize conteúdos desta natureza. Porém, pela grande abrangência dos conteúdos do STI, o aluno pode ter dificuldades em guiar sua leitura. O STI então poderá perder um pouco seu potencial pedagógico caso não tenha um guia especialista para o conteúdo, problema que pode ser corrigido através de um agente pedagógico inteligente. O agente entra, então, como mediador do conteúdo, orientando o aluno em como ele deve proceder nos seus estudos. Dowling (2000) afirma que agentes pedagógicos são agentes autônomos que apóiam o aprendizado humano, interagindo com os estudantes no contexto de ambientes de aprendizado interativos. Eles ampliam e melhoram o trabalho sobre STI de várias formas. São capazes de adaptar seu comportamento de acordo com o estado dinâmico do ambiente, tendo a vantagem de buscar as oportunidades de aprendizado assim que elas surgem. Podem apoiar tanto o aprendizado colaborativo quanto o individualizado, pois múltiplos estudantes e agentes podem interagir num ambiente compartilhado. Outro aspecto do problema é a integração das tecnologias usadas. Por ser um sistema online, o STI necessita tecnologias que controlem a animação do agente, os acessos do usuário, a disponibilização de conteúdo, o acesso a banco, o processamento no servidor e a Inteligência Artificial (IA) do agente. Além disso, as tecnologias existentes no servidor devem utilizar software livre, por restrições do projeto no qual este TCC está inserido. Sendo assim, este trabalho desenvolveu um agente pedagógico que possua uma base de conhecimento capaz de fazer com que ele decida qual a melhor estratégia de aprendizagem que 2

14 deve ser oferecida ao aluno, bem como qual a maneira mais amigável de incentivá-lo, tendo como parâmetro atitudes comuns tomadas pelos professores reais Solução proposta A fim de implementar a base de conhecimento do agente pedagógico, este projeto utilizou a ferramenta JCLIPS (MENKEN, 2005) que serviu como ligação entre a ferramenta de desenvolvimento de sistemas especialistas CLIPS (RILEY, 2005) e a linguagem Java (SUN, 2006b), na qual o Sistema Tutor Inteligente de Neurofisiologia foi implementado. Para armazenar as interações de cada aluno, bem como as diversas atitudes e feições do agente, foi utilizado o banco de dados PostgreSQL (POSTGRESQL, 2006) por ser o mesmo utilizado pelo Sistema Tutor Inteligente em estudo. 1.2 OBJETIVOS Objetivo geral A criação de um agente pedagógico inteligente para um estudo de caso na área da biomedicina, com enfoque em neurofisiologia, e desenvolver o sistema de comunicação e acoplamento de um STI com a ferramenta JCLIPS Objetivos específicos O trabalho focou-se nos seguintes objetivos: Analisar o modelo conceitual do Sistema Tutor Inteligente; Analisar conexão entre JCLIPS x PostgreSQL; Estabelecer as variáveis do Sistema Tutor Inteligente que o agente fará uso; Criar a árvore de decisões do sistema especialista; Validar as regras de produção geradas pela árvore de decisões; Implementar as regras de produção no JCLIPS; Implementar comunicação JCLIPS x PostgreSQL; e Testar o agente dentro do contexto do Sistema Tutor Inteligente. 3

15 1.3 Metodologia Para o desenvolvimento deste TCC, a seguinte metodologia foi seguida. Primeiramente foi feita uma análise do modelo conceitual do STI em Neurofisiologia. A análise baseou-se na modelagem feita pela equipe responsável pela implementação do sistema junto ao projeto Sistemas Virtuais de Ensino Baseados na Internet para Suporte à Educação e Treinamento na Área de Saúde. A modelagem do portal é apresentada no ANEXO I, e a modelagem do sistema tutor é apresentada no ANEXO II. Verificou-se então quais as variáveis de banco de dados do STI o agente pedagógico faria uso. A próxima etapa foi analisar a conexão entre o JCLIPS e o PostgreSQL, a fim de verificar as formas de implementação desta comunicação. Foram criadas então as regras de decisão do agente pedagógico, que foram validadas no Expert Sinta (LIA/UFC, 1996), sendo que a implementação das regras de produção no JCLIPS foi feita com base nos conceitos do CLIPS e do funcionamento do algoritmo de Rete. A implementação da comunicação do JCLIPS com o PostgreSQL foi feita considerando os tipos de variáveis a serem manipuladas. Foi estudada a forma de exibição para o usuário das feições do agente, por se tratar de uma variável complexa para exibição, uma vez que sua aparição em tempo real requer uma programação individualizada. 1.4 Estrutura do trabalho Este trabalho está dividido nos seguintes capítulos: Introdução, Fundamentação Teórica, Desenvolvimento e Conclusão. O primeiro capítulo apresenta a introdução, os objetivos, a metodologia e a estrutura do trabalho. O capítulo seguinte traz uma abordagem geral das teorias vistas neste trabalho. Inicia apresentando como a informática começou a ser aplicada na educação, sua evolução e problemas até os dias de hoje. São vistas várias abordagens de uso do computador na informática, onde uma delas refere-se a utilização de Sistemas Tutores Inteligentes (STI) para ensino. É feita, então, uma análise das questões a que o STI se propõe a resolver, seu crescimento e desenvolvimento ao longo do tempo. A explicação então se encaminha para os agentes pedagógicos inteligentes, que é a abordagem moderna de desenvolvimento de STI. É descrito também o estudo para escolha das melhores tecnologias para desenvolvimento tanto da inteligência do agente, como da armazenagem dos dados pertinentes. 4

16 O terceiro capítulo refere-se ao projeto de desenvolvimento do sistema que foi concebido neste TCC. É feita também uma descrição de como a comunicação dos módulos do sistema funciona. Também é mencionada no processo de desenvolvimento, os problemas encontrados, a implementação da comunicação e da arquitetura do agente, juntamente com as modificações necessárias do modelo original. No quarto e último capítulo tem-se as conclusões e recomendações para trabalhos futuros, que contém as percepções e considerações obtidas com o desenvolvimento do trabalho. 5

17 2 FUNDAMENTAÇÃO TEÓRICA 2.1 Informática na educação (IE) Os recursos atuais de aprendizados disponíveis devido à tecnologia da informação faz com que o computador acabe mudando a relação do aluno com o professor, sendo uma ferramenta poderosa dentre as várias disponíveis em um ambiente de ensino. O computador é entendido como uma ferramenta porque além de trazer todos os recursos de hipermídia inerentes a ele, os fazem disponíveis virtualmente em qualquer ponto do planeta com acesso à Internet. Segundo Mason (1998, apud SILVA, 2006), existem poucas dúvidas de que a Internet é a ferramenta educacional mais poderosa surgida nos últimos tempos. Deve-se ter claro que as atividades com o computador na escola podem ser feitas de duas formas distintas (BARROS e D AMBROSIO, 1998 apud MENESES, 2000): ensino de informática e ensino pela informática. O ensino de informática caracteriza-se por dar noções de conceitos de programação e princípios de funcionamento do computador ao aluno. Esta forma contribui muito pouco para a melhoria da qualidade do ensino no geral, sendo na maioria das vezes usada pelas escolas visando atrair a atenção dos alunos. Este conhecimento é um conhecimento específico da ferramenta, e de pouco valor pedagógico. O segundo modelo, de ensino pela informática, é o que se chama e caracteriza a informática educativa, e usa o computador como ferramenta de ensino. Este modelo envolve o aluno em diversas atividades que podem ser desenvolvidas pelo computador, permitindo desenvolver estratégias de aprendizagem que contribuam na assimilação dos conteúdos de diversos domínios trabalhados em sala de aula. Este segundo modelo é o que se tornou alvo de fortes estudos pedagógicos para um formato de melhor uso possível do computador como ferramenta Histórico da IE As tentativas de se utilizar o computador como ferramenta de aprendizagem em ensino começaram no início dos anos 60 nos Estados Unidos com a instrução programada (VALENTE e ALMEIDA, 1997). Segundo Valente (1993) o conceito de instrução programada eletrônica consistia em dividir o material em pequenos segmentos, denominados módulos, que são encadeados logicamente. Fatos e conceitos do assunto de domínio eram representados em módulos seqüenciais. No final de cada módulo o aluno respondia uma questão referente ao módulo através do

18 preenchimento de um espaço em branco ou da escolha de uma das alternativas de resposta. Sendo assim o estudante seria sempre questionado do fato ou conceito que acabou de ler. Se a resposta fosse correta seria permitido ao aluno então passar ao módulo seguinte. Caso a resposta fosse errada o programa poderia apresentar reações diferentes, como fornecer a resposta correta, convidar o aluno a rever módulos anteriores ou, ainda, realizar a leitura e estudo de outros módulos, cujo objetivo era remediar o processo de ensino. Esta alternativa eletrônica era denominada CAI (Computer Aided Instruction) e viabilizava a popularização deste conceito de instrução programada, já que a produção destes materiais instrucionais no formato impresso é difícil e os materiais que existem não possuem padronização alguma. O Brasil tem uma abordagem acadêmica da informática na educação. Aqui este tema surgiu nas universidades e continuou sendo discutido dentro delas. Sendo assim, as decisões e as propostas nunca foram totalmente centralizadas no governo, mas eram fruto de propostas feitas pela comunidade de técnicos e pesquisadores da área e tendo o governo o papel de acompanhar, viabilizar e implementar essas decisões (VALENTE e ALMEIDA, 1997) Taxonomia Inicialmente é necessário definir o que se entende por programa educacional. Tem-se a definição de Viccari e Giraffa (2003) que diz que todo programa pode ser considerado um programa educacional, desde que utilize uma metodologia que o contextualize no processo de ensino-aprendizagem. Já Lucena (1992, apud TEIXEIRA e BRANDÃO, 2003) diz que um software educacional é todo aquele programa que possa ser usado para algum objetivo educacional, pedagogicamente defensável, por professores e alunos, qualquer que seja a natureza ou finalidade para o qual tenha sido criado. Os CAI são formados basicamente de softwares que têm a aprendizagem focada na aquisição de habilidades específicas (VICCARI e GIRAFFA, 2003). São softwares que funcionam como a máquina de ensinar de Skinner, e pregam as idéias do cientista. As teorias de Skinner dizem que o comportamento e a aprendizagem são conseqüências de estímulos que resultem em uma recompensa e defendem a idéia de que toda ação que produza satisfação tenderá a ser repetida e conseqüentemente aprendida (SKINNER, 1953 apud MENESES, 2000). Esta é a teoria do 7

19 condicionamento, ou o behaviorismo. Dentro deste grupo se observam também as seguintes modalidades (VICCARI e GIRAFFA, 2003): 1. Programas de reforço ou exercício: o aluno pratica e testa conhecimentos de forma dirigida e procedural; 2. Tutoriais: o conteúdo é definido e organizado pelo professor, seguindo o padrão de ensino da sala de aula; e 3. Jogos educacionais e as simulações: Utiliza recursos pesados de hardware e software. O jogo se diferencia da simulação por causa da competição e da coexistência de vitória e derrota. Os jogos também podem ter outras abordagens que não são behavioristas. Os CAI, então, adquiriram técnicas de IA e originaram os ICAI (Intelligent Computer Aided Instruction) como tentativa de sobressair aos sistemas sem inteligência, levando em conta as críticas de que os CAI são sistemas que simplesmente fazem a mesma coisa que o papel, sem ganhos significativos no nível de ensino-aprendizagem. Os ICAI, então, passam a ter os conteúdos em módulos mais independentes e tentam se ajustar de acordo com o desempenho do aluno. Eles saem do behaviorismo, e passam a se basear no cognitivismo (VICCARI e GIRAFFA, 2003). Essas críticas aos sistemas de ensino CAI e ao behaviorismo de Skinner são presentes em muitos trabalhos, como o de Rego (1995 apud KOMOSINSKI, 2000), que diz que nos trabalhos de Skinner a aprendizagem é confundida com memorização de um conjunto de conteúdos desarticulados, conseguida através da repetição de exercícios sistemáticos de fixação e cópia e estimulada por reforços positivos (elogios, recompensas) ou negativos (notas baixas, castigos, etc.). Alguns exemplos de softwares educacionais que seguem estas filosofias não-behavioristas são citados a seguir (VICCARI e GIRAFFA, 2003): 1. Micromundos: trabalham basicamente com a solução de problemas, dando ferramentas e recursos para o aluno montar a sua solução; 2. Sistemas de Autoria: são ferramentas de criação que possibilitam ao aluno viabilizar seu projeto de trabalho, exercendo sua criatividade; 3. Jogos Educacionais: aqui o jogo educacional é abordado de uma maneira mais complexa, e vai além de ganhar ou perder. A existência de um modelo de simulação, 8

20 onde o tipo de ação executada pelo aluno irá influenciar nas condições de término e resultado do jogo, nos traz ao final do jogo um grau de controle atingido pelo aluno; e 4. ILE (Integrated Learning Environments): ambientes de convivência social que utilizam técnicas de IA. Caracterizam-se por ter mais de um aluno ou tutor trabalhando simultaneamente. Os STI (Sistemas Tutores Inteligentes) surgem como uma evolução dos ICAI, que já eram inteligentes, mas que agora também levam em conta uma modelagem de perfil do aluno. Isso implica em um certo grau de autonomia aos STI durante sua interação, também de personalização e adaptação, de acordo com as necessidades do aluno. Para isso, os STI precisam ter acesso a várias formas de representação de conhecimento e a vários tipos de raciocínio (SELF, 1995). Dessa forma, os STI têm sido utilizados para qualquer abordagem pedagógica. 2.2 STI As definições de STI são muitas, sendo que algumas tratam o STI como qualquer sistema de suporte ao ensino com um grau de inteligência. Segundo Gamboa e Fred (2001) Os STI são programas de software que dão suporte às atividades da aprendizagem. Essa afirmação é reiterada, com uma ressalva mais destacada de IA, por Freedman (2000), que diz que STI é um termo amplo que abrange qualquer programa de computador que contém alguma inteligência e pode ser usado em aprendizagem. Sleeman (1982, apud VICCARI e GIRAFFA, 2003) diz que os STI são programas de computador que utilizam técnicas de IA para representar o conhecimento e levar a termo uma interação com o aluno. Há também a definição de Fowler (1991, apud ALVES, 2002) que diz que os STI são programas de computador com propósitos educacionais e que incorporam técnicas de IA, geralmente utilizando-se da tecnologia dos sistemas especialistas. A definição de Loinaz (2001) diz que STI são aqueles sistemas desenvolvidos num contexto de pedagogia cujas capacidades fazem uso de IA. Loinaz (2001) também diz que para podermos abordar com um certo grau de adequação o desenvolvimento de um STI, é necessário contar com técnicas de ciência da computação, exposições que facilitem a motivação de um aluno em frente ao computador, e parâmetros pedagógicos ou de ciências da educação que reiterem e sustentem o processo de instrução e aprendizagem mediante as novas tecnologias. 9

21 Tem-se clara a necessidade do STI de suporte ao aluno, ou seja, a existência de um meio de guiar o aluno pelo conteúdo da melhor forma possível, levando em conta suas dúvidas, dificuldades e facilidades. Segundo Viccari e Giraffa (2003), isso faz com que o objetivo fundamental do STI seja proporcionar um ambiente adaptado ao aluno, tanto no conteúdo como na forma, superando dessa maneira alguns dos problemas mais cruciais do software educativo. Loinaz (2001) mostra um resumo das principais características dos STI que embasam este objetivo: o conhecimento do domínio anotado está claramente articulado; possuem conhecimento do aluno que permitam dirigir e adaptar sua educação; a seqüência de ensinamento não está predeterminada pelo projetista; realizam processos de diagnóstico mais detalhados e adaptados aos estudantes; e melhoria da comunicação aluno-tutor. Os STI se baseiam em uma grande quantidade de conteúdo informacional, elaborado por pesquisadores e especialistas em um domínio, a partir do qual o sistema interage com o aluno através de um tutor com capacidade de comunicação e orientação. Pode-se dizer então que os sistemas tutores inteligentes são uma composição de diversas disciplinas como psicologia, educação e treinamento através de uma ciência cognitiva e inteligência artificial (EBERSPÄCHER e KAESTNER, 1998). O objetivo principal destes sistemas é a modelagem e representação do conhecimento especialista humano para auxiliar o estudante através de um processo interativo (HALL, 1990 apud COSTA 1999). É responsabilidade dos STI compor interações educacionais dinamicamente (CHAIBEN, 1999), além de adaptar o conteúdo a inteligência que mais está ativa no aluno. Para Jonassen (1993 apud ALVES, 2002), um STI deve passar em três testes antes de ser considerado inteligente : o conteúdo do tema ou especialidade deve ser codificado de modo que o sistema possa acessar as informações, fazer inferências ou resolver problemas; o sistema deve ser capaz de avaliar a aquisição deste conhecimento pelo estudante; e as estratégias tutoriais devem ser projetadas para reduzir a discrepância entre o conhecimento do especialista e o conhecimento do estudante. Segundo Silva (2006), os STI também são usados em conjunto com as aulas tradicionais sem computador e com um tutor humano, através da Internet, para aumentar o nível de interação do aluno à medida que implementam estratégias para supervisionar as suas ações e propor alternativas dinamicamente, de acordo com os princípios e a proposta pedagógica do conteúdo em questão. Sendo assim observa-se também uma possível abordagem de uso do STI onde ele não se 10

22 comporta sobrepondo um tutor humano, mas visa apenas agregar valor e qualidade às interações em um ambiente virtual de aprendizagem Histórico dos STI Nos anos 50 apareceram os primeiros sistemas de ensino, os chamados programas lineares (LOINAZ, 2001). Estes softwares iniciais eram caracterizados por mostrar seu conteúdo de forma linear, sendo que nenhuma mudança do educador era permitida no software depois que ele tivesse vindo do programador. Os sucessores destes softwares lineares foram os programas ramificados (CROWDED, 1959 apud LOINAZ 2001). Estes eram diferentes pela habilidade de se modificar de acordo com as respostas do aluno. Nos anos 70 surgiram sistemas chamados sistemas generativos (também chamados sistemas adaptativos), que seguiam a idéia de que os problemas que o aluno enfrenta deveriam ter graus de dificuldade adequáveis ao conhecimento do aluno. Na década de 70 surgiram os STI. Carbonell (1970 apud GIRAFFA e GOULART, 2001) apresentou uma nova proposta sobre como tratar a questão da aprendizagem-computadorizada. Ele propôs, com um sistema denominado SCHOLAR, com uma nova maneira de conceber sistemas educacionais, levando em consideração a forma como o professor estrutura e desenvolve o conteúdo em sala de aula. Ou seja, considerando a dinamicidade que existe na relação aluno-professor. Ele se baseou no fato de que numa situação de sala de aula o professor observa os alunos e faz uma verificação constante do que está acontecendo durante o andamento das atividades na sala de aula, sendo que isto deveria ser possível de ser modelado em um software educacional. (GIRAFFA e GOULART, 2001). A partir dos anos 80 o estudo passou a focar o aspecto pedagógico e os especialistas em educação foram incorporados as equipes de estudo (VICCARI e GIRAFFA, 2003). Os últimos 10 anos têm funcionado como adaptação aos novos recursos de informática, tais como multimídia, hipermídia e o surgimento de novos paradigmas de desenvolvimento de software, como a programação orientada a objetos, e o uso de agentes. Estes estudos geraram o crescimento de sistemas de diversos pontos de vista didáticos e pedagógicos, e de vários métodos de desenvolvimentos de STI que vem em contrapartida ao método clássico de desenvolvimento que era utilizado anteriormente. Sendo assim dois paradigmas 11

23 de desenvolvimento de STI têm se mostrado mais presentes, o clássico e o baseado em agentes (VICCARI e GIRAFFA, 2003) Arquitetura clássica dos STI As arquiteturas de STI geralmente apresentam organizações básicas observáveis na maioria dos casos, mesmo que cada sistema possua suas peculiaridades (VICCARI e GIRAFFA, 2003). Este modelo, o chamado clássico, foi formado ao longo dos anos e de evolução dos STI e foi iniciado no SCHOLAR, sistema anteriormente citado e proposto por Carbonel (1970 apud GIRAFFA e GOULART, 2001), no qual o conteúdo era representado de uma forma onde um diálogo era mantido com o aluno, através do formato textual, utilizando um subconjunto da língua natural em que o sistema foi desenvolvido. O sistema se baseava nos avanços da área de IA, na época (década de 70). Esse foi o primeiro STI e tinha como principal objetivo realizar a tarefa de ensino de um dado conteúdo (domínio) na forma mais adaptada às necessidades individuais do aluno. Segundo Giraffa e Goulart (2001), estes sistemas se baseiam em uma arquitetura (representada na Figura 1) composta basicamente por: Módulo aluno: neste módulo estão armazenadas/modeladas as características individuais do aluno (conhecimento individual sobre o domínio, por exemplo); Módulo tutor: possui estratégias e táticas e as seleciona em função das características do aluno (representadas no módulo aluno); Módulo domínio: detêm o conhecimento sobre a matéria no formato de regras de produção, estereótipos, etc.; e Interface: faz o intermédio da interação entre o tutor e o aluno. Esta arquitetura é denominada de clássica e também conhecida como funcional tripartida ou tradicional de STI. O termo tripartida se refere às funções associadas aos módulos tutor, do aluno e domínio. Esta proposta trouxe grandes avanços à modelagem de ambientes educacionais, pois separou o domínio da sua forma de manipulação (no sentido de utilização), permitindo, assim, que estratégias de ensino fossem associadas em função das informações oriundas da modelagem do aluno (GIRAFFA e GOULART, 2001). 12

24 Figura 1. Arquitetura clássica de um STI Fonte: Giraffa e Goulart (2001). A Figura 2 mostra como Self (1999 apud GIRAFFA e GOULART, 2001) associou à arquitetura clássica um modelo de interação. Segundo Giraffa e Goulart (2001) neste modelo o módulo de domínio não é mais uma forma de tornar as informações inter-relacionadas, mas sim um modelo dos aspectos do conhecimento sobre o domínio que o aluno pode acessar durante as interações com o STI (Modelo da situação). Pode-se dizer então, de maneira mais detalhada, que o modelo de domínio, ou situação, é constituído pelo material instrucional (lições, animações, filmes, exercícios, exemplos, desafios, dicas, etc.). Ele contém o conhecimento sobre o domínio que se deseja trabalhar com o estudante. Vários modelos de representação de conhecimento podem ser usados para armazenar o conteúdo, como: regras de produção, páginas HTML (Hyper Text Markup Language), entre outras, e a escolha deve recair sobre aquele método que melhor e mais facilmente atenda aos requisitos de representação e manipulação do conteúdo (GIRAFFA e GOULART, 2001). O módulo do estudante passa então a não relacionar somente as informações sobre a análise das interações do aluno com o domínio, mas a buscar uma contextualização maior destas interações em função das ações do aluno, o contexto em que elas ocorrem e a estrutura cognitiva do aluno naquele momento (Modelo de Interação). O módulo tutor deixou de ser o responsável pela seleção do conteúdo e estratégias para se tornar, de uma forma mais ampla, aquele que conduz o aluno de acordo com objetivos e desafios educacionais que o ambiente proporciona ao aluno (Modelo de permissões) (GIRAFFA e GOULART, 2001). 13

25 Figura 2. Arquitetura ampliada do STI Fonte: Self (1999 apud GIRAFFA e GOULART, 2001). Já o modelo do aluno, ou de interação, representa o conhecimento e as habilidades cognitivas do aluno em um dado momento. Segundo Viccari (1990 apud VICCARI e GIRAFFA, 2003), o modelo é constituído por dados estáticos e dinâmicos que serão de fundamental importância para o tutor poder comprovar hipóteses a respeito do conhecimento e do comportamento do aluno. Para construir este modelo muitas técnicas são utilizadas, tais como: reconhecimento de padrões aplicados às respostas fornecidas, comparação dos pontos em comum da conduta do aluno com a de um especialista e a captura de esquecimentos comuns, preferências, desejos, crenças e intenções do aluno. O sistema então infere a partir deste modelo e do conhecimento na base de domínio, a melhor estratégia de ação para ser usada para cada aluno (VICCARI e GIRAFFA, 2003). O módulo tutor decide quando uma intervenção é desejável, se o aluno deve ser interrompido em sua atividade ou não e o que deve ser apresentado em função das informações avaliadas em um dado momento. A ordem e a maneira com que cada assunto é trabalhado pode produzir diferentes resultados na aprendizagem (GIRAFFA e GOULART, 2001). Segundo Wenger (1987 apud GIRAFFA e GOULART, 2001), na abordagem clássica o papel do módulo tutor é tomar as decisões pedagógicas em função das interações com o aluno. Estas decisões derivam de regras ou estruturas de conhecimento que representam o conhecimento do tutor a respeito do domínio, estando representadas de forma definida no sistema (Módulo Tutor) (GIRAFFA e GOULART, 2001). Nos STI clássicos o controle varia conforme algum critério de otimização, e costuma ser uma decisão de projeto, ou seja, não existe mudança na forma com que é controlada a interação. 14

26 Alguns sistemas podem monitorar as atividades dos alunos de perto, adaptando suas ações as respostas dos alunos, mas nunca cedendo o controle da interação. Observa-se também que os STI clássicos, de uma forma geral, se caracterizam por utilizar uma única estratégia para o ensino do aluno. Ou seja, estes sistemas possuem pouca versatilidade em seu comportamento pedagógico, sem proporcionar uma adaptação dinâmica (em nível de estratégias) para as características individuais de aprendizagem de cada aluno (GIRAFFA e GOULART, 2001). 2.3 Agentes inteligentes A idéia de agentes não é nova na Ciência da Computação. Segundo Kay (1984 apud COSTA, 1999), ela foi originada na década de 50 por John McCarthy e Oliver Selfridge. Ambos idealizaram um sistema que tentaria atingir um objetivo dado através da execução de uma seqüência de ações. Esse software seria um robô virtual, ou soft robot, vivendo e realizando seus negócios dentro de um universo computacional. A partir da década de 70, Hewitt (1977 apud COSTA, 1999) propôs um sistema auto-suficiente, interativo e com execução concorrente, o qual ele denominava ator. A dificuldade em definir o que seriam agentes inteligentes está, principalmente, na definição do que é inteligência. Em geral, o termo agente aparece na literatura computacional determinando diversos tipos de programas que não precisam, necessariamente, ser "inteligente" ou apresentar algum comportamento característico, mas que são atrelados a algum contexto. De qualquer forma, caracterizar o que é "inteligência", ou estabelecer o que seria um comportamento inteligente é uma tarefa difícil (COSTA, 1999). Segundo Spector (1997) um agente pode ser qualquer sistema autônomo que percebe e age para alcançar um estreito conjunto de metas dentro de um específico ambiente virtual ou real. Segundo Hendler (1996 apud COSTA, 1999), pode-se afirmar que os pesquisadores em agentes inteligentes procuram, de forma geral, desenvolver programas sofisticados que podem ser úteis em ambientes de importância para os humanos. Estes ambientes podem variar desde locais físicos de difícil acesso ou perigosos para os humanos, até domínios virtuais, como as redes de computadores. Russell e Norvig (2004) dizem que um agente é tudo o que pode ser considerado capaz de perceber seu ambiente por meio de sensores e de agir sobre esse ambiente por intermédio de atuadores. Assim como um agente humano, que tem olhos, ouvidos, entre outros órgãos sensoriais para captar o que acontece ao seu redor, um agente robô, por exemplo, teria sensores de movimento 15

27 ou infra-vermelho para capturar o que acontece. No agente robô também teríamos motores que funcionariam como atuadores, no lugar dos braços, mãos, bocas e pernas do agente humano. A Figura 3 mostra como essa interação ocorre. Tendo-se um agente de software, por exemplo, capturariam-se as seqüências de teclas digitadas, conteúdo de arquivos e pacote de redes como entradas sensoriais e, no lugar de braços ou motores, os atuadores deste agente seriam mensagens exibidas na tela, arquivos gravados e arquivos enviados pela rede (RUSSELL e NORVIG, 2004). Figura 3. Agentes interagem com ambientes por meio de sensores e atuadores Fonte: Russel e Norvig (2004) Características dos agentes inteligentes Como visto na Figura 3, Russel e Norvig (2004) usam o termo percepção para fazer referência às entradas perceptivas do agente em qualquer momento dado. Os autores explicam que os agentes mantêm um histórico de tudo que foi percebido e, a partir disso, tomam uma decisão. Isso faz com que toda ação de um agente seja baseada na seqüência inteira de percepções baseadas até o momento (RUSSEL e NORVIG, 2004). Estes autores também afirmam que os agentes têm várias características especiais, que os definem como inteligentes, tais como racionalidade, onisciência, aprendizado e autonomia. Um agente racional é aquele que faz tudo certo, ou seja, toda ação executada por ele deve ser a certa, ou a que fará com que ele tenha o maior sucesso. Deve-se então ter um método para se medir o sucesso, ou uma medida de desempenho, que devem ser criadas de acordo com o resultado realmente desejado no ambiente. Então, segundo Russel e Norvig (2004), um agente racional deve 16

28 selecionar uma ação que se espera vir a maximizar sua medida de desempenho, dada a evidência fornecida pela seqüência de percepções e por qualquer conhecimento interno do agente. Russel e Norvig (2004) também explicam a onisciência, um conceito que parte da racionalidade. Um agente onisciente deve ser capaz de não simplesmente tomar ações baseadas nas suas percepções, que é o que seria a racionalidade, mas deve saber o resultado real de suas ações, realizando a chamada coleta de informações. A coleta de informações ajuda o agente a maximizar seu desempenho nas suas tarefas, pois compreende a realização de ações simplesmente para modificar a sua seqüência de percepções. Como exemplo os autores sugerem um agente que tem como meta atravessar a rua. Este agente deve saber que deve olhar para os lados antes de atravessar a rua, para assim incluir em sua seqüência de percepções se existe algum caminhão vindo ou não em sua direção. Definições paralelas de agentes trazem uma noção de que um agente é uma entidade que parece carregar crenças, desejos, etc. (SEEL, 1989 apud WOOLDRIDGE e JENNINGS, 1995). A partir desta afirmação, Wooldridge e Jennings (1995) explicam o agente como um sistema que tem um processo de inteligência baseado em suas intenções e, sendo assim, abordam também as seguintes definições de características para verificar se uma entidade é um agente inteligente ou não: Autonomia: agentes que operam sem a intervenção de humanos ou outros, e que tem algum tipo de controle sobre suas ações e estados internos (CASTELFRANCHI, 1995 apud WOOLDRIDGE e JENNINGS, 1995). Nwana (1996) diz que os agentes autônomos possuem estados e metas internos, agindo de maneira a atingir estas metas em favor de seus usuários. Nwana (1996) dá como elemento chave da autonomia de um agente a pró-atividade, que é a sua habilidade de tomar iniciativas, e Foner (1993) fala que a autonomia tem como requisito básico aspectos de ação periódica, execução espontânea, e iniciativa, e que assim o agente deve ser capaz de tomar ações preemptivas e independentes; Habilidade social: agentes interagem com outros agentes (e possivelmente humanos) através de algum tipo de linguagem de comunicação de agente cooperando e trabalhando em conjunto (GENESERETHAND e KETCHPEL, 1994 apud WOOLDRIDGE e JENNINGS, 1995); 17

29 Reatividade: agentes percebem seu ambiente e respondem em tempo hábil as mudanças que ocorrem nele; Pro-atividade: agentes não simplesmente respondem as alterações nos seus ambientes, mas são capazes de exibir um comportamento dirigido a atingir seus objetivos através da tomada de iniciativas; Mobilidade: é a habilidade do agente de se mover em uma rede eletrônica entre computadores (WHITE, 1994 apud WOOLDRIDGE e JENNINGS, 1995). Esta capacidade é intimamente ligada a agentes que auxiliam seus usuários na busca de informações; Veracidade: assume-se que um agente não vai conscientemente informar dados falsos (GALLIERS, 1988b apud WOOLDRIDGE e JENNINGS, 1995); Benevolência: trata do fato que agentes não tem objetivos conflitantes e, portanto, todo agente fará o que lhe é pedido (ROSENSCHEIN e GENESERETH, 1985 apud WOOLDRIDGE e JENNINGS, 1995); e Racionalidade: agentes sempre atuam de forma a atingir seus objetivos, e caso atuaram a ponto de prevenir que seus objetivos sejam realizados é porque seus conhecimentos não lhe deram o devido suporte a tomara de decisão (GALLIERS, 1988b apud WOOLDRIDGE e JENNINGS, 1995). O conceito agentes aprendendo, relacionado com a característica autonomia, é perfeitamente subentendido nessa classificação de Wooldridge e Jennings (1995). Uma real autonomia só pode estar presente quando um agente possui a habilidade de avaliar as variações de seu ambiente externo e escolher qual a ação mais correta. Entretanto, mesmo quando um agente não reconhece nenhuma ação a ser executada, é esperado que ele procure encontrar uma saída. A questão não é acertar sempre, mas aprender continuamente por experiência, seja através de sucessos ou de fracassos (COSTA, 1999). Foner (1993) também fala da característica do antropomorfismo. Essa característica denotaria o fato de um agente de software se assemelhar graficamente a um ser humano, tendo feições e silhuetas humanas. Esta característica, apesar de não tão importante quanto outras como, por exemplo, autonomia e reatividade, é marcante em softwares com agentes de interface. 18

30 Segundo Russel e Norvig (2004), o ambiente em que o agente é inserido é, essencialmente, o conjunto dos problemas para quais o agente é a solução e influenciam diretamente no projeto do agente. Estes ambientes devem ser investigados e especificados e podem ser agrupados em descrições chamadas PEAS (Performance, Environment, Actuators, Sensors), como vistos na Tabela 1. As especificações de um ambiente dizem respeito aos tipos de dados lá encontrados, suas variações e a existência de outros agentes (RUSSEL e NORVIG, 2004). Tabela 1. Exemplos de tipos de agentes e suas descrições de PEAS Tipo de Agente Sistema de diagnóstico médico Sistema de análise de imagens de satélite Instrutor de inglês interativo Medida de Desempenho Paciente saudável, minimizar custos, processos judiciais Definição correta da categoria da imagem Maximizar nota do aluno em teste Fonte: Adaptado de Russel e Norvig (2004). Ambiente Atuadores Sensores Paciente, hospital, equipe Link de transmissão de satélite em órbita Conjunto de alunos, testes de agência Exibir perguntas, testes, diagnósticos, tratamentos, indicações Exibir a categorização da cena Exibir exercícios, sugestões, correções Entrada pelo teclado para sintomas, descobertas e respostas do paciente Vetor de pixels e cores Entrada pelo teclado Os autores Bigus e Bigus (2001) falam da possibilidade de controle do ambiente, onde o projetista do agente poderia inclusive alterar o ambiente onde o agente estará situado. No contexto de agentes inteligentes, um evento é tudo que vem a mudar o ambiente ou qualquer acontecimento do qual o agente deva estar ciente. Para um agente de software ficar constantemente procurando alterações do ambiente pode ser desgastante e esgotar recursos computacionais, como processamento ou memória principal, necessários a outras atividades e, portanto, ter sinais partindo do ambiente (ou outro agente, por exemplo) avisando o agente (que poderia estar processando outras informações ou inativo) a cada evento ou ocorrência importantes é uma possibilidade muito saudável. Esta idéia de Bigus e Bigus (2001) vai contra o conceito de pro-atividade, e estabelece um outro paradigma de comportamento, chamado evento-condição-ação. A partir da ocorrência do evento, o agente passaria a etapa de reconhecer e avaliar o evento para então determinar a condição 19

31 ou estado no qual o ambiente se encontra. Assim que os dados do ambiente são levantados, o agente reage de acordo com o seu conhecimento e inteligência e executa uma ação a fim de chegar ao objetivo a qual ele foi projetado Arquiteturas de agentes Russel e Norvig (2004) consideram a arquitetura de um agente algo que torna as percepções dos sensores disponíveis para o programa agente, executa o programa e alimenta as opções de ação do programa para os atuadores à medida que eles são gerados. O próprio agente, então, seria a união da arquitetura com o programa de agente. Se, por exemplo, um programa de agente estiver sendo executado em algum dispositivo de computação com sensores e atuadores físicos, chama-se esse conjunto de arquitetura. Tipicamente a arquitetura de software em geral descreve a configuração de alto-nível dos componentes constituintes de um sistema e as conexões que coordenam as atividades destes componentes (ABOWD et al., 1996). A arquitetura de software representa decisões de projeto mais difíceis de serem alteradas e que têm mais impacto sobre a qualidade do software e é, em geral, feita depois da coleta dos requerimentos e antes de um projeto mais detalhado. A escolha da arquitetura, então, deve se adequar às necessidades básicas do agente. Wooldridge e Jennings (1995) se baseiam na definição de Mães (1991 apud WOOLDRIDGE e JENNINGS, 1995) sobre arquitetura de agentes para defini-las: Uma arquitetura é uma metodologia particular para a construção de um agente. A arquitetura especifica como um agente pode ser decomposto na construção de um conjunto de módulos e como esses módulos devem se interagir. O conjunto total dos módulos e suas interações deve dar a resposta de como os dados sensoriais e os estados internos do agente determinam suas ações e seus futuros estados internos. Uma arquitetura abrange técnicas e algoritmos que suportam esta tecnologia. Seguindo esta definição, Wooldridge e Jennings (1995) dividem então as arquiteturas em três áreas: 1. Arquiteturas deliberativas: é o que o autor chama de abordagem clássica de construção de agentes, no qual ele é visto como um sistema baseado em conhecimento mais particular, ou parte de um. Aqui os agentes possuem modelos simbólicos de seus ambientes; 20

32 2. Arquiteturas reativas: é uma arquitetura que não inclui nenhum tipo de modelo simbólico, ou qualquer raciocínio simbólico complexo. O comportamento inteligente surgiria do resultado de uma interação do agente com o seu ambiente; e 3. Arquiteturas híbridas: aqui o agente é dividido em camadas que incluem ambos, tendo comportamentos dos agentes deliberativos quanto dos agentes reativos. Russel e Norvig (2004) baseiam a sua classificação das arquiteturas nas suas definições de características de agentes (racionalidade, onisciência, aprendizado e autonomia) e as dividem em 4 tipos básicos: agentes reativos simples, agentes reativos baseados em modelo, agentes baseados em objetivos, e os agentes baseados em utilidade. Inicialmente, como primeira arquitetura descrita por Ruseel e Norvig (2004), os agentes reativos simples selecionam ações baseando-se na percepção atual, ignorando o histórico de percepções. O agente realiza algum processamento para identificar o que os seus sensores acabaram de captar e identificar aquilo como uma condição. Ele então tenta achar alguma conexão entre uma condição e uma ação a ser tomada. Estas conexões podem ser chamadas de várias formas, tais como: regras condição-ação, regras situação-ação, regras de produção ou regras se-então (RUSSEL e NORVIG, 2004). Na Figura 4 este processamento está melhor descrito através de um pseudo-código. função AGENTE_REATIVO_SIMPLES(percepção) retorna uma ação fim_função variáveis_estáticas regras : um conjunto de regras condição-ação estado <- INTERPRETAR_ENTRADA(percepção) regra <- REGRA_CORRESPONDENTE(estado, regras) ação <- AÇÃO_DA_REGRA[regra] retornar ação Figura 4. Pseudocódigo de um agente reativo simples Fonte: Adaptado de Russel e Norvig (2004). Para a construção de um agente deste tipo deve-se então implementar um interpretador de entradas e criar um conjunto de regras. O interpretador nos retorna o estado do ambiente, e as regras definem que ação deve ser tomada levando em conta este estado. Os agentes reativos simples têm como forte propriedade a sua simplicidade, o que implica em uma inteligência muito limitada. A Figura 5 mostra a estrutura desse agente e mostra como as regras funcionam exatamente para trazer esta conexão entre percepção e ação (RUSSEL e NORVIG, 2004). 21

33 Para situações onde apenas a percepção atual não é o suficiente, deve-se então adicionar mais complexidade ao agente. O agente pode, por exemplo, tentar controlar a parte do mundo que ele não pode ver agora, através da manutenção de um estado interno que mantenha um histórico de percepções. Para isto o agente precisa de um conhecimento extra, contendo algumas informações de como o mundo funciona, ou um modelo do mundo. E é isso que os agentes reativos baseados em modelos, descritos por Russel e Norvig (2004), fazem e que pode ser visto no diagrama da Figura 6 e Figura 7. Figura 5. Diagrama esquemático de um agente reativo simples Fonte: Russel e Norvig (2004). função AGENTE_REATIVO_COM_ESTADOS(percepção) retorna uma ação fim_função variáveis_estáticas estado : uma descrição do estado atual do mundo regras : um conjunto de regras condição-ação ação : a ação mais recente, inicialmente nenhuma estado <- ATUALIZAR_ESTADO(estado, ação, percepção) regra <- REGRA_CORRESPONDENTE(estado, regras) ação <- AÇÃO_DA_REGRA[regra] retornar ação Figura 6. Pseudo-código de um agente reativo baseado em modelo Fonte: Adaptado de Russel e Norvig (2004). Como visto na Figura 6, um agente reativo com estados, ou baseado em modelo, passa então a ter um controle do mundo usando um modelo interno. Logo após ele determinar o estado atual do mundo, ele escolhe uma ação da mesma maneira que o agente reativo simples, conforme visto na Figura 7 (RUSSEL e NORVIG, 2004). 22

34 Figura 7. Um agente reativo baseado em modelo Fonte: Russel e Norvig (2004). Acontece que conhecer o ambiente nem sempre é o suficiente para atribuir poder de decisão ao agente. Pode-se ter como exemplo o agente motorista de táxi, descrito no PEAS da Tabela 1. Caso esse agente esteja com seu carro parado em um entroncamento de estradas percebido por seus sensores, o táxi pode virar a qualquer um dos lados ou seguir em frente. Como saber aonde seguir? Uma decisão correta dependeria de onde se quer chegar, e isso o agente motorista de táxi não sabe. Deve-se então, como descrito na Figura 8, adicionar alguma informação sobre objetivos que descrevam metas necessárias ou desejáveis, como, por exemplo, para o motorista de táxi o destino do passageiro (RUSSEL e NORVIG, 2004). Os agentes baseados em objetivos têm alguns problemas, como a realização de muitas ações para atingir um objetivo, onde entrariam técnicas de busca e planejamento para esse possível impasse, porém eles possuem um nível maior de flexibilidade quando possibilitam a alteração de um objetivo para modificar o comportamento do agente. Um agente reativo simples, por exemplo, teria de ter todas as suas regras alteradas para a mudança de seu comportamento (RUSSEL e NORVIG, 2004). 23

35 Figura 8. Um agente baseado em modelos e orientado para objetivos Fonte: Russel e Norvig (2004). A quarta e última arquitetura de agente descrita por Russel e Norvig (2004) é a de agentes baseados na utilidade. O funcionamento deste tipo de agente é visto no diagrama da Figura 9. Figura 9. Um agente baseado em modelo e orientado para utilidade Fonte: Adaptado de Russel e Norvig (2004). A função de utilidade examina um ou mais estados e determina graus de utilidade para cada um. Sendo assim, um agente que trabalha desta forma usa um modelo do mundo, juntamente 24

36 com uma função de utilidade que mede suas preferências entre estados do mundo. Em seguida, ele escolhe a ação que leva à melhor utilidade esperada, na qual a utilidade esperada é calculada pela média entre todos os estados resultantes possíveis, ponderados pela probabilidade do resultado Taxonomia de agentes Pode-se afirmar que é a função do agente que determinará a escolha das suas características e arquiteturas e é o que, em geral, define sua tipologia. Franklin e Graesser (1996) seguem essa idéia e defendem uma taxonomia que envolva as definições do agente, como visto na Figura 10. Os autores, porém, subdividem a classificação baseando-se no jeito qual as espécies do mundo natural são classificadas, criando um diagrama que se assemelha a uma árvore. As nomenclaturas se subdividem da seguinte forma (FRANKLIN e GRAESSER, 1996): reino (agentes biológicos, robóticos e computacionais), filo (agentes de software e de vida artificial), e classe (agentes de tarefas específicas, de entretenimento e os vírus de computador). Já Caglayan e Harrison (1997 apud COSTA 1999) propõem uma taxonomia mais objetiva, e que leva em conta os conceitos de ambiente, tarefa e arquitetura dividindo assim os agentes em três categorias. A primeira, chamada Desktop, abrange os agentes de interface que oferecem serviços de assistência aos seus usuários. Em segundo tem-se os agentes chamados Internet, que oferecem serviços de busca, filtragem e recuperação de informações. Os agentes móveis e de notificação também estão inclusos nesta categoria. Por último ele define a categoria de agentes do tipo Intranet como sendo aqueles que existem dentro das organizações, automatizando processos do fluxo de trabalho. Aqui também se classificam os agentes que manipulam bancos de dados e que alocam recursos em uma arquitetura cliente/servidor. Figura 10. Taxonomia de agentes baseada no mundo natural Fonte: Adaptado de Franklin e Graesser (1996) 25

37 Em uma abordagem mais ampla, Nwana (1996) se baseia em mais características e defende uma tipologia dividida em várias dimensões para a classificação de agentes de software. Nwana (1996) estudou os agentes existentes e tentou colocá-los dentro de diferentes classes de agentes, chegando as seguintes dimensões: 1. Estático ou móvel: agentes podem ser classificados por sua mobilidade, ou sua habilidade de se mover em uma rede de computadores. Lange (1998) considera essa habilidade como importante em sistemas distribuídos e mostra alguns benefícios, tais como: redução de carga na rede, superação da latência da rede, adaptação dinâmica, tolerância à falhas, etc. 2. Deliberativo ou reativo: agentes deliberativos derivam de um paradigma de raciocínio baseado em modelos simbólicos internos enquanto os reativos agem usando um comportamento do tipo estímulo/resposta respondendo ao estado presente do ambiente onde se encontram. 3. Quanto a existência de autonomia, aprendizado e cooperação: Nwana (1996) diz que essas três características são as mais básicas de um agente, e que uma classificação adequada deveria incluir ou não a existência dessas características no agente em questão. Essas três características geram quatro das sete classificações finais dadas por Nwana (1996), são elas: agentes inteligentes, agentes de aprendizagem colaborativa, agentes colaborativos e agentes de interface. Esta derivação pode ser visto na Figura Quanto a tarefa: uma das dimensões categoriza o papel funcional do agente. Agentes podem ser, por exemplo, de busca ou de recuperação de informação. Agentes deste tipo em geral exploram ferramentas de busca e ajudam a organizar informações em uma rede ampla, como a Internet. Refere-se então a esta classe de agentes citando o seu papel como buscadores de informação, no caso, agentes de informação. Então, estes agentes de informação podem também ser móveis, ou deliberativos. Além dos agentes de informação temos também os agentes de relatório, agentes de apresentação, agentes de análise, agentes de teste, agentes de interface, etc. 5. Características híbridas: se o agente inclui características híbridas de uma ou mais filosofias de agente. 26

38 Figura 11. Uma parte da tipologia de agentes multidimensional Fonte: Adaptado de Nwana (1996). Na Figura 12 é possível ver como os quatro tipos de classificação, obtidos quanto a existência de autonomia, aprendizado e cooperação no agente, se juntam as outras três classificações obtidas das outras características gerando a tipologia de Nwana (1996), que é composta por: agentes colaborativos, agentes de interface, agentes móveis, agentes de informação/internet, agentes reativos, agentes híbridos e agentes inteligentes. Figura 12. Classificação multidimensional completa Fonte: Adaptado de Nwana (1996) Agentes de interface Agentes de interface dão ênfase a autonomia e ao aprendizado (NWANA, 1996). Como metáfora básica, o agente de interface é visto como um assistente pessoal que colabora com o usuário num mesmo ambiente de trabalho. O agente de interface utiliza o poder da colaboração, porém não com outros agentes, mas com o usuário em si. Segundo Minsky (1994 apud COSTA 1999), a idéia de utilizar agentes inteligentes como assistentes pessoais torna-se mais clara a medida que a tecnologia de agentes evolui. 27

39 A Figura 13 demonstra o funcionamento de agentes de interface segundo Maes (1994 apud NWANA, 1996). A figura demonstra como o agente faz perguntas a outros agentes, como em um trabalho colaborativo, porém a interação do agente poderia ser dada diretamente com, por exemplo, um banco de dados, ou um web service. Um web service é um sistema baseado em web que usa protocolos de transporte baseados em XML (extensible Markup Language) para a troca de dados com clientes requisitores (SUN, 2006a). Já XML é uma linguagem em formato texto que foi originalmente desenvolvida para a publicação de material eletrônico em larga escala (W3C, 2006). Por essência, agentes de interface têm a função de prover suporte e assistência, tipicamente para um usuário em fase de aprendizado de algum programa ou assunto. Um agente de interface que ajudasse na utilização de um programa, por exemplo, observaria e monitoraria as ações tomadas pelo usuário na interface (como se fosse um agente humano olhando sobre o ombro do usuário ), ensinaria novos atalhos e sugeriria novas formas de realizar tarefas (NWANA, 1996). Além disso, o agente se comportaria como um assistente pessoal autônomo, que coopera com o usuário na realização de tarefas do software. Figura 13. Como os agentes de interface funcionam Fonte: Adaptado de Maes (1994 apud NWANA, 1996). Quanto ao aprendizado dos agentes de interface, Maes (1994 apud NWANA, 1996) diz que esta é uma forma do agente auxiliar melhor os seus usuários. O autor mostra quatro maneiras, todas demonstradas na Figura 13, com as quais o agente aprende. São elas: Observando e imitando o usuário (aprendendo a partir do usuário). 28

40 Recebendo do usuário feedback positivo e negativo (aprendendo a partir do usuário). Recebendo instruções explícitas do usuário (aprendendo a partir do usuário). Solicitando orientação para outros agentes (aprendendo a partir de parceiros). A cooperação com outros agentes, se existente, é tipicamente limitada a realização de perguntas e interpretação de respostas. A realização de perguntas é, basicamente, num contexto de aconselhamento e não adentrando em negociações complexas como no caso de agentes colaborativos. Em resumo, um agente de interface, ao contrário de outros tipos de agente, é o que usa técnicas de aprendizado para apresentar ações de interface pseudo-inteligentes (FONER, 1993 apud NWANA, 1996). Segundo Costa (1999), há um grande número de aplicações na Internet que dizem possuir a habilidade de aprendizado e, normalmente, estes agentes estão relacionados com recomendação de serviços, tais como livros ou músicas. Nwana (1996) cita vários exemplos de uso de agentes de interface, tais como: agentes de interface como assistentes de agenda (KOZIEROK e MAES, 1993 apud NWANA, 1996), guias (LIEBERMANN, 1995 apud NWANA, 1996), ajudantes para controle de tarefas (RHODES e STARNER, 1996 apud NWANA, 1996), ajudantes na filtragem de informação (SHETH e MAES, 1993 apud NWANA, 1996), ajudantes para encontro de padrões (FONER, 1996 apud NWANA, 1996), compra e venda em seu interesse (CHAVEZ e MAES, 1996 apud NWANA, 1996) e para entretenimento (MAES, 1995b apud NWANA, 1996) Agentes de interface pedagógicos Segundo Bigus e Bigus (2001) a interação com o computador hoje em dia se dá por meios não naturais. O autor diz que uma interação natural seria por meios de linguagem, expressões faciais e linguagem corporal, e uma linguagem simplesmente textual pode não detectar sarcasmos, referências literárias e figurativas. Personagens gráficos se tornaram importantes, como assistentes que aparecem na tela para ajudar e dar auxílio sensível ao contexto. Estes personagens mudam de expressão a medida que o usuário interage com o computador, piscam os olhos e chamam a atenção quando se passa o mouse sobre eles. Um programa com estes personagens para interação tem uma abordagem moderna, pois eles mostram como será a interação entre humanos e computadores daqui a algum tempo (BIGUS e BIGUS, 2001). 29

41 Segundo Pereira e Geyer (1999), a tecnologia de agentes tem sido incorporada na modelagem do STI e nos ambientes educacionais na Internet. O agente, no STI, teria uma intenção além de simplesmente guiar o aluno no melhor uso do programa, mas também orientar o aluno pedagogicamente sobre o domínio da aplicação. Tem-se então a missão de fazer o agente saber o que está ensinando, definir estratégias de como melhor ensinar, e perceber se o aluno aprendeu ou não. Para melhorar a interação humano-computador (BIGUS e BIGUS, 2001) estes personagens gráficos podem usar de recursos como animação, sons e texto, originando os agentes pedagógicos animados. Segundo Johnson (1998), agentes pedagógicos animados são personagens animados que facilitam o aprendizado em ambientes de aprendizado baseados em computador. O autor conceitua claramente a idéia de um personagem ajudando o aluno ao longo do STI. Johnson (1998) especifica também que os agentes animados respondem as ações do usuário, tendo conhecimento o suficiente do contexto de aprendizado e do domínio que está sendo demonstrado a ponto de apresentar atuações relevantes no contexto de aprendizagem. Agentes pedagógicos animados são fortemente baseado em pesquisas prévias sobre STI, porém, mesmo assim, trazem uma perspectiva diferente na facilitação de aprendizado on-line. O fato deste tipo de agente ser autônomo faz com que eles herdem características dos agentes autônomos de outras aplicabilidades, devendo exibir um comportamento no qual se leva em conta ambos, os estudantes e o ambiente de aprendizagem (JOHNSON, 1998). Ritter (1997 apud JOHNSON, 1998) verificou que o contraste de um STI com um personagem em sua interface diante de um que ignora esse tipo de abordagem é descrito como uma falta de interação do usuário no programa. É também verificado, como no trabalho de André et al. (1998 apud JOHNSON, 1998), que os personagens animados fazem com que aprendizes sintam o material utilizado na educação computacional menos difícil. Lester et al. (1997 apud JOHNSON, 1998) fala do aumento da motivação e da atenção dos estudantes. É fundamental, porém, a possibilidade que os agentes pedagógicos animados dão de melhor modelar diálogos e interações que ocorrem durante o aprendizado (JOHNSON, 1998). Segundo Giraffa e Viccari (1998), agentes pedagógicos são entidades cujo propósito fundamental é a comunicação com o aluno, a fim de realizar eficientemente a função de tutor, como parte da missão pedagógica do sistema. A abordagem de agentes em STI possibilita interações mais naturais e mais próximas entre alunos e o sistema tutor, onde a iniciativa da interação é 30

42 normalmente compartilhada entre o sistema e o aluno. Tais interações são um contraste preciso com os documentos estáticos, que geralmente são encontrados em materiais de cursos baseados na Internet. Segundo Santos et al. (2001), os agentes pedagógicos atuam como monitores, que observam as ações dos alunos e os ajudam durante o seu aprendizado. Além disso, eles trocam informações com o aluno, a fim de adaptar a apresentação do conteúdo conforme o modelo ideal do aluno, supervisionando o ambiente de aprendizado. O objetivo central destes agentes é contribuir para uma aprendizagem efetiva do aluno, gerando um ganho de qualidade, sob o ponto de vista pedagógico, para o ambiente onde estão inseridos. Sendo assim, eles caracterizam-se por (SANTOS et al., 2001): guiar o aluno durante a interação com o sistema; monitorar as atividades do aluno, fornecendo auxílio em situações críticas; registrar informações necessárias à modelagem do perfil do aluno; selecionar estratégias de ensino adequadas, com base no perfil do aluno; motivar o aluno a aprender; e prover interatividade ao sistema, oferecendo aos alunos a idéia de ter um amigo tutor que lhes fornecerá ajuda. Ahmed, Kassim e Ranganath (2001) dizem que agentes pedagógicos, como agentes autônomos que incorporam características de agentes de tarefa específica e de entretenimento, podem ser divididos em duas categorias: orientado por objetivos descritos na Tabela 2 ou orientado por utilidade. O agente orientado por utilidade é utilizado para vários propósitos, como ajudar os alunos a encontrar referências e materiais de aprendizado, agendar aulas em grupo, lembrar o prazo limite de entrega de relatórios, etc. Tabela 2. Características de agentes pedagógicos baseados em objetivos Tutor Mentor Assistente Conhecimento sobre o Forte Forte Média ambiente Conhecimento sobre o Forte Forte Forte domínio Modelo do aluno Forte Média Fraca Aspectos pedagógicos Forte Média Fraca Fonte: Adaptado de Ahmed, Kassim e Ranganath (2001). Ahmed, Kassim e Ranganath (2001) em suas pesquisas perceberam que os agentes pedagógicos têm alguns atributos desejáveis que seu projetista deve procurar implementar. Algumas 31

43 destas características são, em geral, desejáveis em todos os tipos agentes, porém aqui elas são vistas com um enfoque pedagógico, sendo elas: Autonomia: deve realizar a maioria de seus problemas de resolução de tarefas sem a intervenção direta de um humano ou outro agente. Ele deve ter um certo grau de controle sobre seus próprios atos e estados internos; Reatividade: o agente deve ser reativo a partir do momento que eles são habilitados a sentir mudanças no ambiente e responder dentro de um certo período de tempo; Orientação por objetivo: deve ter pro-atividade e exibir comportamentos orientados por um objetivo através da iniciativa; Comunicação: deve responder aos aprendizes com uma combinação de comunicação verbal e gestos não-verbais como apontar, posicionar o corpo e balançar a cabeça. Ele pode demonstrar emoções como surpresa, aprovação e desapontamento; Efeito visual: eles devem dar a impressão de serem vivos e de verdade, interagindo com o usuário em uma base contínua; Afetividade: eles devem demonstrar expressão emocional nas interpretações faciais, gestuais e de linguagem corporal. A expressão emocional é importante porque tem influência no processo cognitivo do aluno; Servir em nome de alguém: Agir na maioria das vezes em nome do tutor; Adaptativo: agir de acordo com o estado cognitivo do aprendiz; e Capacidade social: capaz de se comunicar com humanos e outros agentes através de uma linguagem de comunicação que satisfaça seus objetivos de design Arquitetura de STI utilizando agentes A arquitetura do sistema tutor inteligente desenvolve-se inserindo um agente pedagógico de interface em um STI para o ensino computacional. Segundo Viccari e Giraffa (2003), modelar um STI utilizando agentes é mais do que uma abordagem generalista e deve considerar que teoricamente não temos um limite para o número de agentes que podem participar do processo. Na Figura 14, Santos et al. (2001) apresentam um exemplo de arquitetura, utilizado na sua agente Dóris. 32

44 Figura 14. Arquitetura baseada em agentes Fonte: Santos et al. (2001). Na arquitetura de Santos et al. (2001), o agente pedagógico é inserido em um ambiente de ensino computacional que utiliza um STI para o aprendizado de um domínio específico, refletindo os seguintes módulos: perceptivo, cognitivo e reativo. A arquitetura do agente envolve, ainda, uma base de conhecimento interna. O módulo perceptivo é o responsável pela extração e armazenamento das informações referentes à interação do aluno com o sistema. É através dele que é realizada a tarefa de monitoração das ações do aluno. O módulo cognitivo é o responsável por realizar as inferências sobre a base de conhecimento, determinando quais ações devem ser executadas pelo agente, a partir de suas percepções. É através deste módulo que é feita a escolha das mensagens que serão emitidas pelo agente na sua interação com o aluno, bem como determinados os recursos áudio-visuais a serem utilizados. O módulo reativo é o responsável por executar as ações indicadas pelo módulo cognitivo e estabelece a interface animada com o aluno. É através deste módulo que são efetivamente apresentadas as mensagens e animações do agente aos alunos. A base de conhecimento é onde todas as informações pertinentes do sistema são armazenadas, tais como: Recursos áudiovisuais: formada pelos elementos usados para formar a aparência do agente; Conteúdos: contém informações sobre os conteúdos das aulas; Respostas do aluno: contém as respostas às perguntas feitas ao aluno; e 33

45 Mensagens: contém perguntas, dicas e lembretes utilizados pelo agente na interação com o aluno. Outra proposta de arquitetura é a de Giraffa (1999 apud VICCARI E GIRAFFA, 2003) no seu STI chamado MCOE, que pode ser visto na Figura 15. Ele trata a base do domínio do STI através de um cenário interativo onde as ações dos alunos transcorrem de forma dinâmica e com resposta imediata. Ele modela o domínio no que chama de SMAR (Sistema Multi-Agente Reativo), sendo utilizados agentes reativos, pois eles permitiriam uma leitura direta do que está acontecendo no ambiente. O SMAR é composto dos elementos do cenário do jogo, constituindo-se de um conjunto de entidades simples (agentes reativos) que não possuem representação no seu ambiente. Já seu kernel cognitivo é baseado num modelo organizacional humano mantendo uma representação explícita do seu ambiente e de outros agentes da sociedade. Figura 15. STI com arquitetura usando agente Fonte: Adaptado de Giraffa (1999 apud VICCARI E GIRAFFA, 2003) Exemplos de STI utilizando agentes Nos últimos 10 anos a utilização de agentes pedagógicos animados tem se tornado muito popular. Nesta seção será feita uma pequena descrição de alguns exemplos de agentes pedagógicos implementados e seus atributos Herman-the-Bug Herman-the-Bug (LESTER e STONE, 1997) é um agente que aparenta vida cujas ações visuais e verbais são controladas por um seqüenciador de comportamento em tempo real para resolver contextos de solução de problemas. Ele realiza uma vasta quantidade de atividades, que 34

46 incluem andar, voar, nadar, encolher, expandir e acrobacias. Ele habita um ambiente de aprendizado chamado Design-a-Plant, cujo domínio é de anatomia e fisiologia botânica Cosmo Cosmo (LESTER et al., 1997) é uma personagem 3D que atua num papel de aconselhador da Internet em um ambiente de ensino para o domínio de roteamento de pacotes para Internet. Cosmo é designado para o estudo de agentes num âmbito espacial, ou seja, a habilidade de agentes de, dinamicamente, combinar gestos, locomoção e fala para se referir a objetos no ambiente enquanto eles entregam o conselho para a resolução do problema Adele O agente Adele (SHAW et al., 1999) foi desenvolvido para operar através da Internet. A arquitetura deste agente implementa funções pedagógicas essenciais como: apresentação, monitoramento do estudante, questões de sondagem e feedback, dicas e explicações. Os cursos baseados no agente Adele estão atualmente sendo desenvolvidos para educação médica em medicina familiar e no nível de graduação para odontologia geriátrica. O Sistema Adele consiste em quatro componentes principais: o agente pedagógico, a simulação, o cliente e o servidor, e o servidor de armazenamento. O agente pedagógico, mostrado na Figura 16, consiste de mais dois sub-componentes, o personagem animado e um motor de raciocínio. Figura 16. O agente Adele, explicando a importância de certos procedimentos Fonte: Shaw et al. (1999). 35

47 Steve Steve (RICKEL e JOHNSON, 1997), é uma personagem em 3D que auxilia alunos em ambiente de imersão em rede e tem sido aplicado para treinamento de tarefas navais como a operação de motores abordo de navios da marinha dos Estado Unidos. O sistema no qual o Steve foi inserido permite múltiplos estudantes e agentes para co-habitar num mundo virtual. Cada estudante é imerso em um ambiente através de equipamentos especiais, e vêem o mundo através de um display acoplado em suas cabeças, chamado HMD (Head-Mounted Display) Guilly O agente Guilly (NUNES et al., 2002) trabalha dentro do Intelligent Virtual Teaching Environment, implementado com tecnologias multi-agentes e utilizando características pedagógicas. Este agente foi desenvolvido para ensinar crianças de 8 a 10 anos sobre a preocupação de selecionar corretamente o lixo urbano. Ele tem como características interessantes algumas reações, como, por exemplo, quando o aluno está respondendo questões ou agindo corretamente ele usa moderadamente somente expressões faciais e de corpo, porém ao identificar um comportamento ruim do aluno ele utiliza, além da face e do corpo, sons e texto (NUNES et al., 2002). Figura 17. O agente Guilly Fonte: Nunes et al. (2002). 2.4 Sistema Especialista (SE) Segundo Savaris (2002) a palavra sistema significa um conjunto de elementos, materiais ou ideais, entre os quais se possa encontrar ou definir alguma relação, e a palavra especialista se refere a uma pessoa que se consagra com particular interesse e cuidado a certo estudo ou, 36

48 resumidamente, um perito de uma determinada disciplina. Sistemas especialistas são sistemas que solucionam problemas que são resolvíveis apenas por pessoas especialistas (que acumularam conhecimento exigido) na resolução destes problemas (SAVARIS, 2002). São sistemas computacionais criados para resolver problemas e que devem apresentar um comportamento semelhante a um especialista em um determinado domínio, cujo conhecimento utilizado é fornecido por pessoas que são especialistas naquele domínio (SAVARIS, 2002). A inteligência do agente deste TCC se dá pelo uso de um sistema especialista, pois a idéia de orientação vinda do agente se baseia em algumas várias observações feitas, tais como o aluno já visitou a correlação clínica?. Estas regras são do tipo se <condição envolvendo fatos> então, o que se encaixa no perfil da técnica de regras do sistema especialista. Esta também já era a técnica escolhida pelo projeto Sistemas Virtuais de Ensino Baseados na Internet para Suporte à Educação e Treinamento na Área de Saúde, no qual este TCC está inserido, e é descrito na Seção 3.1. Para validação e verificação das regras no sistema é necessário utilizar um motor de inferência. Neste projeto está sendo utilizado o Expert Sinta (LIA/UFC, 1996) para validação e o CLIPS para implementação das regras. Tais ferramentas, também chamadas de expert system shell, são softwares que combinam fatos e regras de modos diversos, embutem uma máquina de inferência específica, assim como uma representação própria de conhecimento, e permitem a construção de sistemas especialistas que utilizem a sua representação de conhecimento e máquina de inferência (MOURA e CRUZ, 2001). Um sistema especialista é um programa projetado para modelar a habilidade de resolver problemas que segue o esquema apresentado na Figura 18, composto das seguintes partes (DURKIN, 1984 apud MOURA e CRUZ, 2001): Base de Conhecimento: parte contendo o conhecimento do domínio, ou seja, as regras de produção obtidas para o sistema; Memória de Trabalho: parte contendo os fatos sobre os problemas que são descobertos, concluídos, em uma sessão de execução; e Máquina de Inferência: processo que combina os fatos da memória com a base de conhecimento para chegar às conclusões sobre o problema. 37

49 Figura 18. Sistema Especialista Fonte: Durkin (1984 apud MOURA e CRUZ, 2001). Este TCC levou em conta o estudo de ferramentas de sistema especialista, tendo como intuito utilizar a ferramenta que mais se adequasse aos requisitos do projeto. O sistema especialista para este projeto foi implementado de acordo com os seguintes requisitos: Ser compatível com a linguagem Java (SUN, 2006b); Ser possível seu uso pela Internet; e Ser de uso livre. Para ser de uso livre um software deve ter as licenças comuns de uso livre, por exemplo, GNU (GNU is Not Unix) (FREE SOFTWARE FOUNDATION, 2006a) ou GPL (General Public License) (FREE SOFTWARE FOUNDATION, 2006b). Inicialmente o projeto optou em utilizar o JESS (Java Expert System Shell) (JESS, 2006), desenvolvido pela Sandia National Laboratories, nos Estados Unidos, porém seu uso foi desconsiderado quando identificou-se que sua licença não era livre. Sendo assim, as ferramentas encontradas até o momento para estudo foram: CLIPS (C Language Integrated Production System): um expert system shell que tem sido desenvolvido pela NASA (National Aeronautics and Space Administration) desde 1985 (RILEY, 2005); WebCLIPS: CGI (Common Gateway Interface) para o CLIPS, desenvolvido por Michael Giordano (GIORDANO, 2003); e 38

50 JCLIPS (CLIPS for Java): Ponte em software entre o Java e o CLIPS, desenvolvido por Maarten Menken (MENKEN, 2005) Shells estudadas Nesta subseção serão apresentadas as ferramentas avaliadas no processo de escolha do sistema especialista a ser utilizado CLIPS O CLIPS é uma ferramenta que permite o total desenvolvimento de sistemas especialistas baseados em regras. Ele pode ser embutido em código procedural, chamado como uma sub-rotina, e integrado com linguagens como C, Java e FORTRAN (Formula Translator). Ele é facilmente extensível através do uso de protocolos já fortemente definidos (RILEY, 2004). O CLIPS é desenvolvido na linguagem C, implementando o algoritmo Rete em sua máquina de inferência e tendo como preocupação principal a portabilidade entre vários sistemas operacionais, o que se torna uma das suas grandes vantagens. Ele compila em vários sistemas operacionais, incluindo o Linux que já é usado no ambiente do STI utilizado para o desenvolvimento do agente. Como já dito, o fato de ele ser desenvolvido em C não impede um possível encapsulamento em Java, pois ele pode ser compilado como uma biblioteca. (RILEY, 2004). A documentação para orientação de uso do CLIPS é abrangente e orienta a utilização sob vários aspectos, desde a construção de sistemas especialistas até a expansão do CLIPS e seu encapsulamento em outras ferramentas de desenvolvimento. Não há custo de distribuição, a utilização é gratuita e deve apenas ser feito um registro de uso on-line (RILEY, 2004). O CLIPS funciona permitindo a entrada de regras e fatos através de código armazenado em arquivos texto com a extensão.clp ou com código digitado no próprio console que é fornecido juntamente com a biblioteca WebCLIPS O WebCLIPS cria uma interface CGI do CLIPS para a Internet, fornecendo uma comunicação com a Web. O WebCLIPS é implementado em C e há versões para plataformas UNIX e Windows. Sua distribuição é gratuita e ele se encontra sob licença GNU (GIORDANO, 2003). 39

51 Inicialmente o WebCLIPS demonstrava ser uma ferramenta promissora com possibilidade de utilização no projeto por ser feita exatamente para uso na Internet, porém sua pouca flexibilidade para a comunicação com Java desencorajou seu uso. Os scripts rodados em WebCLIPS devem atender as mesmas especificações do CLIPS, tendo como único elemento incomum o fato dos resultados obtidos no WebCLIPS terem algumas tags HTML incluídas para a amostragem apropriada no navegador Web (GIORDANO, 2003). As páginas e formulários são gerados dinamicamente em HTML pelo WebCLIPS, sendo que, para isso, ele obtém as informações vindas das variáveis GET e POST, da requisição enviada ao servidor. Para informações perenes, esta ferramenta permite salvar o status do cliente em cookies. Seu funcionamento se dá no momento que uma requisição é feita ao CGI. A partir dela o WebCLIPS identifica qual o arquivo de regras que deve ser usado, e tenta montar os fatos vindos da requisição, e verifica se este mesmo cliente já não tinha fatos armazenados no servidor em um cookie. Os fatos então são carregados e o CLIPS é iniciado e o processamento das regras e dos fatos é feita. Depois da máquina de inferência terminar o seu trabalho, o sistema então atualiza sua memória de trabalho com os resultados, monta e envia a saída com os devidos comandos HTML para o cliente JCLIPS JCLIPS é um software livre, sob licença GNU, que permite programadores Java usarem o CLIPS em combinação com Java através da incorporação do motor CLIPS em uma classe Java. Sendo assim, torna-se possível controlar o motor CLIPS através do Java, podendo-se então carregar arquivos CLIPS, executar o motor, executar comandos arbitrários, e receber informações de volta do CLIPS no formato texto (MENKEN, 2005). O JCLIPS pode ser embutido em uma aplicação Java que seja entregue através de uma página Web via Applet (CRIGHTON, 2005). As aplicações são escritas normalmente em Java e utilizam-se dois arquivos JCLIPS (um.dll e um.jar ) para estabelecer sua ponte entre Java e CLIPS. O arquivo.dll contém toda a distribuição CLIPS compilada pra Windows, assim não é necessário obter o CLIPS separadamente. O arquivo.jar completa a parte Java desta ponte. O JCLIPS é conhecido por rodar em ambas as plataformas Windows e Linux (MENKEN, 2005). A integração do JCLIPS com qualquer aplicação Java se dá adicionando os arquivos contendo a classe Java e a biblioteca CLIPS em um mesmo diretório do classpath Java, ou 40

52 adicionar o diretório da aplicação e do arquivo na variável de ambiente classpath, utilizada pelo Java. A classe a ser instanciada chama-se JClips (MENKEN, 2005). Esta classe contém os métodos para configuração e controle do ambiente CLIPS. O CLIPS pode enviar mensagens de retorno ao Java. Isto é feito chamando uma função definida pelo usuário no Java, que tem a mensagem de retorno como argumento de entrada (MENKEN, 2005). Só é possível um ambiente CLIPS rodando simultaneamente e, portanto, uma única instância dessa classe é automaticamente criada e uma referência pode ser obtida através do método getinstance. Não é possível criar mais instâncias (MENKEN, 2005) Ferramenta escolhida A ferramenta de sistema especialista escolhida para o desenvolvimento do agente foi a JCLIPS. O JCLIPS levou em conta os requisitos básicos de fácil acoplamento com Java e de software livre. A Tabela 3 apresenta um comparativo entre as ferramentas estudadas. Tabela 3. Comparação das shells Ferramenta Compatível com Linguagem Documentação Licença Java CLIPS Sim, mas requer CLIPS Boa Livre esforço extra de programação para encapsulamento WebCLIPS Não CLIPS, com Média Livre inclusão de tags HTML JESS Sim JESS, fortemente Boa Paga baseada na linguagem CLIPS JCLIPS Sim CLIPS + Java Regular Livre A deficiência na documentação específica para JCLIPS não se sobressai aos outros itens, isso porque boa parte da documentação do CLIPS (informações da linguagem de especificação das regras, informações sobre funcionamento, etc.) se aplica ao uso do JCLIPS. O JCLIPS, então, foi escolhido como ferramenta por ter uma interação completa com o CLIPS, fácil instalação e suas restrições em relação às ferramentas pagas não vão de encontro aos objetivos e necessidades do projeto. Além disso, o CLIPS é conhecido por sua segura implementação do algoritmo de Rete para resolução dos fatos e regras do sistema especialista. 41

53 2.4.3 Algoritmo de Rete As linguagens baseadas em regras, ou sistemas especialistas, usam um algoritmo bastante eficiente para unificação dos padrões das regras a fim de determinar quais regras têm seus antecedentes satisfeitos, chamado Algoritmo de Unificação de Padrões de Rete (GAIRRATANO e RILEY, 1989 apud FERNANDES, 1996). Este foi o algoritmo utilizado neste projeto. O problema tratado por este algoritmo, ilustrado na Figura 19, é o do processo de unificação dos padrões das regras. Caso a unificação ocorrer apenas uma vez, a solução se torna mais simples. A máquina de inferência pode examinar cada regra e, então, procurar o conjunto de fatos que determinam se os padrões da regra serão satisfeitos. Se os padrões das regras são satisfeitos então a regra pode ser colocada na agenda (FERNANDES, 1996). Figura 19. Unificação de padrões: fatos e regras Fonte: Adaptado de Fernandes (1996). Porém nos sistemas especialistas o processo de unificação ocorre repetidamente (Figura 20), e a lista de fatos é, em geral, modificada a cada ciclo de execução, tendo novos fatos adicionados ou velhos removidos. Essas modificações podem fazer com que regras que antes não eram satisfeitas agora se tornem satisfeitas e vice-versa (BROWNSTON, 1985 apud FERNANDES, 1996). 42

54 Figura 20. Recursos computacionais desnecessários quando as regras procuram fatos Fonte: Adaptado de Fernandes (1996). A técnica do algoritmo de Rete inicia com a seguinte conclusão: os fatos devem procurar as regras, e não as regras procurarem fatos (Figura 21). Isso porque é comum as regras alterarem apenas alguns poucos fatos da lista de fatos a cada ciclo de execução e seria desnecessário e demorado cada regra correr toda a lista de fatos a cada ciclo, como demonstrado pela área sombreada na Figura 20. Deve-se então reduzir esta chamada redundância temporal (FERNANDES, 1996). Figura 21. Fatos em busca de regras Fonte: Adaptado de Fernandes (1996). O algoritmo de unificação de padrões Rete foi projetado para tirar vantagem da redundância temporal que existe em um sistema especialista baseado em regras (FORGY, 1985 apud FERNANDES, 1996). Ao invés de buscar as semelhanças dos fatos em todas as regras em todos os 43

55 ciclos de reconhecimento das ações, o algoritmo Rete somente procura por trocas semelhantes em todos os ciclos, o que faz o algoritmo de Rete muito veloz (MAIA, 1998). Realiza-se então um armazenamento da informação obtida sobre a aplicação das regras, fazendo com que cada regra lembre quais fatos usou, e apenas atualiza os fatos processados na lista de fatos a cada novo ciclo (FERNANDES, 1996; MAIA, 1998). O estado do processo de unificação é armazenado a cada ciclo, recalculando as mudanças de um estado apenas para estados ainda não encontrados. O algoritmo de Rete então faz alusão ao princípio da similaridade estrutural, referindo-se ao fato de que muitas regras podem conter padrões ou grupo de padrões similares, colocando componentes juntos de maneira que eles não sejam considerados mais de uma vez. O fato de o algoritmo armazenar o estado do sistema especialista, entretanto, pode intensificar o consumo de memória (FERNANDES, 1996). 44

56 3 DESENVOLVIMENTO Neste capítulo será esclarecido o processo de desenvolvimento deste projeto, que implementou um agente pedagógico para um sistema tutor inteligente da área de Neurofisiologia, implementado dentro do projeto Sistemas Virtuais de Ensino Baseados na Internet para Suporte à Educação e Treinamento na Área de Saúde, onde cada seção descreve uma das partes do projeto. A Seção 3.1 contextualiza as intenções do projeto, indicando também a equipe que o idealizou e as pessoas envolvidas. A Seção 3.2 descreve o comportamento do agente no STI e a Seção 3.3 apresenta o processo de desenvolvimento do conceito visual do agente, este último trabalho realizado pela equipe de design do projeto. A Seção 3.4 apresenta a estrutura da arquitetura de comunicação e a Seção 3.5 apresenta como foi o desenvolvimento de cada um desses passos. Na Seção 3.6 tem-se a descrição do desenvolvimento das regras de produção e na seção 3.7 os diagramas UML (Unified Modeling Language). 3.1 Portal Saúde+Educação O portal Saúde+Educação, desenvolvido pelo projeto Sistemas Virtuais de Ensino Baseados na Internet para Suporte à Educação e Treinamento na Área de Saúde do IEB (Instituto de Engenharia Biomédica) fomentado pela FINEP (Financiadora de Estudos e Projetos) (FINEP, 2006), englobou a construção de um STI na área de Neurofisiologia. O portal foi desenvolvido através de uma parceria do IEB da UFSC (Universidade Federal de Santa Catarina), da UCB (Universidade Católica de Brasília), da Mediasoft e da UNIVALI. Como mostrado na Figura 22, a equipe de desenvolvimento do portal se subdividiu, chegando a uma equipe específica, alheia ao desenvolvimento desta monografia, que desenvolveu e programou o STI. Já o desenvolvimento do agente pedagógico se deu em parceria com um designer, que idealizou e desenhou o personagem do agente pedagógico, e uma analista, que criou as regras de comportamento do agente. Este TCC, então, refere-se ao desenvolvimento da arquitetura e análise do motor de verificação de regras para o agente pedagógico, e sua acoplagem ao STI de neurofisiologia já desenvolvido pelo projeto. 45

57 Quanto às tecnologias e ferramentas escolhidas, o projeto preza por utilização de ferramentas de uso livre, portanto utiliza a linguagem Java (SUN, 2006b), com as técnicas de JSP (Java Server Pages) (SUN, 2006c) e JSF (Java Server Faces) (SUN, 2004), o banco de dados PostgreSQL (POSTGRESQL, 2006) e o sistema operacional OpenSUSE Linux (Open Software und System Entwicklung) (NOVELL, 2005). Figura 22. Organização simplificada do projeto O STI oferece acesso aos conteúdos relacionados à neurofisiologia, onde o aluno estudante acessará cada um dos tópicos do tutorial. Todo tópico é dividido em itens, descritos a seguir: Mão na Massa: ao selecionar este item o sistema exibe um desafio prático para o aluno resolver. Neste ambiente o aluno entra em um ambiente 3D munido de ferramentas onde ele pode fazer experimentos com objetos e itens do contexto de Neurofisiologia; Correlação Clínica: neste item o aluno encontra informações relacionadas à prática clínica; História: neste item é exibida a contextualização histórica do tópico selecionado; e Auto-Avaliação: o sistema permite ao aluno a realização de uma auto-avaliação, que consiste de questões objetivas diversas apresentadas aleatoriamente. 46

58 Além desses itens principais, tem-se: o Glossário, que permite ao aluno redigir uma palavra chave e o sistema exibe o seu significado; a Ajuda, contendo uma explicação de como operar o sistema; o Chat, que permite a comunicação síncrona dos alunos no ambiente; e o Fórum, que permite a comunicação assíncrona. 3.2 STI e agente pedagógico O agente pedagógico deste STI tem como objetivo maximizar o desempenho do aluno nas auto-avaliações do STI. Para chegar-se nesse objetivo, a construção do agente pedagógico levou em consideração algumas informações obtidas no sistema, com o registro dos acessos do aluno dentro do STI, o que permite que o agente saiba quais os itens que o aluno já visualizou, para então orientá-lo no caso de um mau desempenho na auto-avaliação. O conteúdo está dividido pelos conteudistas em tópicos, cada tópico foi dividido em itens e cada item foi dividido em sub-itens. As questões da auto-avaliação foram formuladas baseando-se nos tópicos e seus itens, ou seja, cada questionário será formado de questões sobre o tópico. Ao clicar na auto-avaliação o sistema seleciona dez das perguntas cadastradas para o tópico em que o aluno atualmente se encontra. A avaliação é gerada dinamicamente e a mesma avaliação não se repetirá para o mesmo aluno. Após a realização da auto-avaliação o sistema retorna ao usuário, através do agente, o seu desempenho. E, em caso de desempenho baixo, o agente pedagógico apresenta alternativas a fim de reforçar a aprendizagem. As alternativas apresentadas pelo agente, levam em conta o que o aluno já acessou, incluindo os itens Mão na Massa, Correlação Clínica e História. Toda a comunicação do tutorial para o aluno se dá através do agente, e as falas principais do agente pedagógico não são repetidas. Tudo isso para dar a idéia de um agente que seja um real companheiro de aprendizagem, animado e com vida. 3.3 Concepção visual do agente pedagógico A primeira versão do aspecto visual do agente foi dada por uma personagem feminina, denominada Luciana, que foi substituída devido à baixa aceitação na comunidade científica pelo fato de conter características que não condiziam com profissionais da área de saúde e por ter uma imagem considerada polêmica, como, por exemplo, roupa muito extravagante. A modelagem e implementação do personagem que compõe o agente proposto chegou então a sua segunda versão, 47

59 que foi denominado Bernardo, e levou em conta as seguintes características (FERNANDES et al., 2006): Possuir expressões faciais dos mais variados sentimentos como alegria, admiração, tristeza, entre outros; expressando emoções de acordo com o momento, não interrompendo o usuário em seu aprendizado com intervenção escrita ou falada; Falar e escrever, usando balões de texto e/ou recursos de som, gesticular e ter reações diversas para não tornar a interação com o usuário monótona. Por exemplo, usar a comunicação escrita num primeiro contato, na segunda abordagem dar um sorriso ou dicas; Ser simpático e prender a atenção do usuário. As características abrangem também o fato do desenho seguir um estilo cartoon, sendo menos preso a personificação de feições reais do ser humano. O estilo do desenho não deve levar em conta luz para então ter um ar menos formal. O contorno dos membros do personagem reafirma essa proposta, juntamente com o uso de cores vivas em suas vestimentas, que são trocadas de acordo com a situação, como visto na Figura 23. Figura 23. O agente Bernardo 3.4 Funcionamento do Agente A arquitetura de comunicação se dá com uma animação em SWF (Small Web Format) embutida num frame HTML na parte cliente, gerado pelo JSP. Essa animação então se comunica por requisições ao servidor para o processamento de regras no JCLIPS e busca de diálogos e sons, como demonstrado na Figura 24. A escolha do formato SWF se dá pela sua facilidade de lidar com gráficos, sons, texto e interações em interfaces Web o que é imprescindível para a personagem 48

60 gráfica do agente e suas feições. Arquivos neste formato são desenvolvidos com a ferramenta Macromedia Flash (MACROMEDIA, 2004a). Na Figura 24 tem-se a seta verifica interações do aluno e a seta atua, que indicam a parte da arquitetura de comunicação que interage diretamente com o navegador Web do aluno. Esta interação é possível graças ao formato SWF, que também possui uma forte linguagem de programação, chamada ActionScript (MACROMEDIA, 2004b), e que permite a personagem gráfica do agente observar o ambiente HTML (sensores) através da comunicação direta com o Javascript (REFSNES DATA, 2006b) e conversar com o usuário através de sons, desenhos, animações e textos (atuadores). A seta grava, também na Figura 24, faz relação à gravação e obtenção das informações do aluno necessárias para a posterior inferência das regras. Figura 24. Arquitetura do agente Bernardo A seta carrega indica que o agente identificou (capturou pelo sensor) que o aluno clicou em algum item e comunicou ao navegador Web para que o navegador carregue o item correspondente. Por último, a seta nomeada infere regras indica o momento em que o aluno finalizou a realização da auto-avaliação. Ali o agente inicia a inferência das regras contidas em um arquivo de regras no servidor ( Regras.clp ) sobre as informações do aluno existentes no banco de dados (seta grava ) e obtém a resposta do que fazer para orientar o aluno com estratégias de aprendizado. Somadas estas funcionalidades, pode-se observar no agente os seguintes sensores: 49

61 1. Integração Javascript/Actionscript: verifica as interações do aluno com o navegador quanto à requisição de conteúdo; 2. Integração Javascript/Actionscript: verifica as interações do aluno com o navegador quanto à realização de auto-avaliação; e 3. Identificador das estratégias vindas do JCLIPS: recebe e trata as respostas do JCLIPS. Também se pode observar no agente os seguintes atuadores: 1. Integração Javascript/Actionscript: indica ao navegador qual conteúdo carregar quando requisitado pelo aluno; 2. Exibidor de animações e texto no SWF: faz a atuação entre a personagem gráfica do agente e o aluno, mostrando mensagens, caixas de diálogo e suas respectivas expressões e gestos; 3. Gravador de informações do aluno: grava as informações obtidas do aluno no banco de dados no servidor através de uma requisição HTTP (Hypertext Transfer Protocol) ao JSP no servidor; e 4. Requisitor de estratégias do JCLIPS: requisita estratégias de ensino ao JCLIPS através de uma requisição HTTP ao JSP no servidor, que por sua vez o repassa ao JCLIPS. 3.5 Implementação Durante o desenvolvimento do agente algumas partes da arquitetura foram alteradas. Apesar de a arquitetura ter sido discutida e estabelecida junto com a equipe de programadores do STI, o STI ainda não havia sido programado efetivamente durante a modelagem do agente. Esta não implementação influencia nos itens da arquitetura do agente (sensores e atuadores) e, em como o agente será entregue ao cliente Web (navegador). O STI e as regras, porém, não foram concluídos antes do início da implementação desta arquitetura de agente, o que desencadeou a necessidade de utilizar um STI protótipo, em parte para poder se testar a arquitetura. Este STI protótipo conta com o assunto dividido conforme a Figura 25. A implementação do protótipo, assim como as regras, só têm abrangência até o elemento item. Portanto caso um aluno tenha apresentado baixo desempenho no questionário, só lendo o item história, o agente indicará a leitura de um outro item, conforme as regras indicarem. 50

62 Figura 25. Organização do assunto Uma dúvida constante durante a modelagem foi se o agente em filme SWF agiria como uma espécie de centralizador das atividades relacionadas à obtenção de conteúdo e gravação dos acessos do aluno, ou se o STI se encarregaria de fazer esta operação. Caso o STI se encarregasse desta operação o sensor número 1 e os atuadores números 1 e 3 deixariam de existir. No protótipo deste TCC, porém, eles foram implementados. Uma imagem do protótipo pode ser visto na Figura 26. Quanto à entrega do agente pela Web, inicialmente havia sido definido como sendo em um frame HTML a parte contendo o filme SWF, mas que acabou sendo feito em um layer HTML, que é uma camada flutuante sobre os outros itens da página. Isto porque o protótipo foi feito utilizando um modelo que divide as áreas do STI usando a tecnologia de iframe (REFSNES DATA, 2006c), o que não implica em um recarregamento completo da página a cada clique do usuário. 51

63 Figura 26. STI e o agente Bernardo As feições do agente estão organizadas em um filme elaborado na ferramenta Macromedia Flash. O Flash permite organizar, através de rótulos em seu timeline (ou linha de tempo), pedaços específicos de filme, o que facilita a construção do agente e a estruturação de suas feições. O filme então aciona, quando necessário, o servidor para executar o JCLIPS e ao receber a resposta, analisa as variáveis resultantes e verifica a qual feição ela se refere. A feição correspondente é executada através da função gotoandplay, do ActionScript (MACROMEDIA, 2004b). Este filme com todas as feições é carregado por inteiro no início da aplicação com a utilização de uma técnica chamada preloader, ou um carregador que mostra o filme sendo carregado sem desestruturar a aplicação ou confundir o aluno. Exemplos das feições podem ser vistos na Figura 27. Para comunicação dentre os elementos da interface (mensagens do STI pro agente), necessária para gravar quais páginas o aluno visualizou e quanto tempo ele ficou em cada página, o Javascript utiliza métodos disponibilizados pelo objeto do Flash embutido no documento HTML, como o SetVariable() que faz com o que o Flash armazene dados e informações enviadas pelo Javascript no seu filme. O filme em Flash do agente, para gravar essa informação no servidor, 52

64 utiliza uma classe ActionScript chamada LoadVars. Essa classe envia e recebe requisições ao servidor, possibilitando uma comunicação do agente com o JSP e JCLIPS, permitindo também monitorar a transferência de informações. Esta comunicação se dá atribuindo as variáveis a serem enviadas as propriedades de um objeto da classe LoadVars, e estas propriedades são enviadas para o servidor através do método sendandload() existente nesta classe. A classe então fica esperando uma resposta do servidor, que deverá enviar a seqüência de variáveis de resposta no mesmo formato da requisição GET, com o nome da variável seguido de um símbolo de igualdade = e o respectivo valor dessa variável, sendo que o caractere & é inserido no fim de o valor de uma variável indicando a separação entre as mesmas, por exemplo variavel1=valor1&variavel2=valor2&variaveln=valorn. Ao obter a resposta do servidor e finalizar a conexão com o mesmo, o objeto da classe LoadVars que fez a requisição tem o seu evento onload disparado. O evento é uma função que, tipicamente, trata estes resultados obtidos do servidor, que a classe automaticamente já decodifica do formato de requisição GET para torná-los propriedades do objeto. 53

65 Figura 27. Feições do agente Bernardo A configuração para se poder acessar o filme SWF através do Javascript requer a utilização de uma propriedade chamada swliveconnect atribuída como true, ou verdadeiro em português, já na inclusão do objeto Macromedia Flash na página HTML, para este funcionar em navegadores que não iniciam esta comunicação automaticamente. Fazer com que esta comunicação funcionasse nos dois navegadores mais utilizados atualmente, Internet Explorer (MICROSOFT CORPORATION, 2006) e Mozilla Firefox (MOZILLA FOUNDATION, 2006) foi um problema corrente durante a implementação. A soma da utilização destes dois navegadores chega, em média, a 95% dos usuários Web (REFSNES DATA, 2006a). Tratando das feições do agente, o tamanho do filme em Flash tem tamanho o suficiente para mostrar o agente, suas feições, e o seu balão de diálogo, contendo os textos e as suas frases na qual ele interage com o aluno. Para este filme não ocultar o texto e os componentes visuais do sistema tutor, foi utilizada uma outra propriedade chamada wmode, também do objeto Macromedia Flash na página HTML, com o valor transparent, ou transparente em português. Assim, o filme fica transparente acima do texto, só cobrindo-o com os balões de diálogo quando necessários. 54

66 Já para o desenvolvimento da parte residente no servidor (Java e JSP) foi utilizado o ambiente de desenvolvimento NetBeans (SUN, 2006d). O NetBeans é uma IDE (Integrated Development Environment) de uso livre para desenvolvimento Java, desenvolvida pela Sun Microsystems, desenvolvedora desta linguagem. O desenvolvimento JSP é facilitado nessa IDE por ela incorporar o servidor Tomcat (APACHE SOFTWARE FOUNDATION, 2005), o que já proporciona um ambiente de testes. O servidor Tomcat também é um projeto de uso livre, e que provê soluções server-side, linguagens processadas pelo servidor, com o uso da linguagem Java. No NetBeans, então, foi criado um projeto que utiliza a linguagem JSP. A linguagem JSP funciona como outras linguagens orientadas a objeto como, por exemplo, o C++, onde se tem uma linguagem de desenvolvimento com funcionalidades básicas e deve-se adicionar outros pacotes ao código (os includes do C++, chamados imports no JSP) caso sejam necessárias funcionalidades mais avançadas ou específicas. Este é o caso quando se tenta acessar o banco PostgreSQL. Ele foi integrado ao JSP através de um pacote que implementa a funcionalidade de conexão e que é importado pelo código JSP, permitindo acesso a funções de acesso ao PostgreSQL. O arquivo do pacote está no formato JAR (Java ARchive), onde as classes Java são distribuídas, e é disponibilizado na Internet pelo fabricante do banco. As requisições SQL são feitas através dessa classe para contato do JSP com o banco, e utilizada a interface JDBC (Java Database Connectivity), comum a acessos a banco através do Java. O JDBC é um conjunto de classes e interfaces escritas em Java que faz o envio de instruções SQL para qualquer banco de dados relacional, ampliando o que se pode fazer com Java e possibilita o uso de banco de dados. Para cada banco de dados há um driver, ou interface, JDBC (POSTGRESQL, 2005). Durante sua utilização, porém, constataram-se algumas deficiências neste driver, principalmente no momento da contabilização dos acessos dos alunos. Este driver JDBC de acesso ao PostgreSQL não permite uma obtenção adequada do conjunto de dados. Para poder se acessar os dados do conjunto de resultados deve-se utilizar o método next(), chamado para mover o ponteiro que especifica qual linha do resultado será retornada, porém isto torna cada linha retornada pelo banco acessível somente uma vez. Além disso, o driver não disponibiliza um método que contribua para a contagem dos resultados. Uma solução seria navegar por entre os resultados contabilizando-os, e depois retornar ao resultado inicial para acessá-los novamente para extrair as informações, porém, como já dito, isto também não é possível. A 55

67 segunda, e definitiva, solução foi a extração dos dados para vetores do tipo String e a execução de consultas extras ao banco de dados que retornassem o número de dados correspondentes, mesmo não sendo uma solução ótima, pois algum dado poderia ser modificado entre a primeira e a segunda consulta. É necessário que o agente saiba todo o caminho e itens visualizados pelo aluno dentro do STI, e que ele armazene esses dados para serem utilizados novamente em sessões futuras do aluno. Então, para o armazenamento das informações obtidas do aluno (seta grava da Figura 24) foram adicionadas ao servidor as seguintes tabelas de dados, sendo seus dicionários de dados mostrados na Tabela 5, na Tabela 6, na Tabela 7 e na Tabela 8. Para manipulação do banco e criação de tabelas foi utilizada a ferramenta pgadmin (PGADMIN, 2006). Tabela 4. Tabela de alunos Campo Tipo de Dado Tamanho Descrição IdAluno Int (auto increment) 6 Chave primária Login Char 15 Nome de usuário do aluno Senha Char 15 Senha do aluno Nome Char Seu nome PrimeiroLogin Bool Esta informação é necessária, pois caso o aluno esteja entrando no sistema pela primeira vez o agente deverá apresentar o ambiente. Tabela 5. Tabela de acessos dos alunos Campo Tipo de Dado Tamanho Descrição IdAcesso Int (auto increment) 6 Chave primária IdAluno Int 6 Identifica o aluno que acessou o sistema IdTopico Int 6 Identifica o tópico que o aluno estava visualizando iditem Int 6 Identifica qual item o aluno acessou (1 = Conteúdo, 2 = História, 3 = Correlação clínica, 4 = Mão na massa) Data Date A data de acesso Tempo Int 6 Tempo em minutos no qual o aluno ficou lendo o texto. 56

68 Tabela 6. Tabela de itens Campo Tipo de Dado Tamanho Descrição IdItem Int (auto increment) 6 Chave primária NumeroItem Int 6 1 = Conteúdo, 2 = História, 3 = Correlação clínica, 4 = Mão na massa TempoMin Int 6 Tempo mínimo (em minutos) que o aluno deverá ler este item para ser considerado um acesso idtopico Int 6 Identifica a qual tópico este item se refere clipsregra Char 50 Nome da variável CLIPS correspondente a este item Tabela 7. Tabela de questões Campo Tipo de Dado Tamanho Descrição IdQuestao Int (auto increment) 6 Chave primária IdTopico Int 6 A qual tópico essa questão se refere Enunciado Text Enunciado da questão Opcao1 Char Primeira opção de resposta Opcao2 Char Segunda opção de resposta Opcao3 Char Terceira opção de resposta Opcao4 Char Quarta opção de resposta Figura Char O nome da figura a ser utilizada no enunciado da questão (deixar em branco caso não existam figuras para esta questão) Correta Int Qual a resposta correta Tabela 8. Tabela de tópicos Campo Tipo de Dado Tamanho Descrição IdTopico Int (auto increment) 6 Chave primária Nome Char 15 O nome do tópico Para identificar a qual regra no CLIPS um item está relacionado, o nome da variável do CLIPS que ele representa está gravado no banco de dados na Tabela 6. Isso possibilita que o JSP gere dinamicamente as variáveis de entrada para o sistema especialista, isto para um número não fixo de variáveis. 57

69 Após recuperação das informações de acesso do aluno do banco de dados e a organização das mesmas em estruturas de dados adequadas, para poder-se acessar o JCLIPS foi então desenvolvido um programa externo que recupera as informações do banco e executa o sistema especialista. O processamento da IA, então, é dado através da leitura da saída de um programa externo que processa as regras. O programa externo é iniciado através de uma chamada de sistema que tem como argumento o desempenho do aluno. O JSP então permanece lendo tudo que o programa externo retorna e espera até o final de sua execução. O programa externo (também feito em Java e que acopla o JCLIPS) recupera o desempenho do aluno, o categoriza nas quatro classes de desempenho (fraco, regular, bom, ótimo) e produz os fatos no JCLIPS. Para produzir estes fatos, este programa também busca no PostgreSQL as informações do aluno necessárias ao JCLIPS (áreas que o aluno já visitou, por exemplo). Depois de todos os valores serem atribuídos às variáveis de entrada, o JCLIPS é rodado e devolve as variáveis de saída, através da saída padrão do sistema, que está sendo armazenado em um buffer pelo JSP e posteriormente são enviadas ao filme em Macromedia Flash. Tem-se então os seguintes passos do aluno dentro do sistema, explicado através da seqüência de telas a seguir. No início do sistema, assim que o aluno acessa o sistema tutor, seus dados de nome de usuário, ou login, e senha são requisitados em uma tela de autenticação (Figura 28). Caso ele insira dados não condizentes com os que constam no banco de dados, ou deixe um dos campos em branco, o sistema mostra uma mensagem de erro. 58

70 Figura 28. Tela de login e senha Após a verificação de login e senha do aluno, seus outros dados existentes no banco (Tabela 4), como o nome completo e a informação de que é a primeira vez que o aluno acessa o sistema, são adicionados a uma sessão JSP. Uma sessão mantém variáveis comuns a todos os scripts JSP guardadas em um objeto, sendo estas informações perenes e somente perdidas no momento em que o usuário fecha seu navegador. Caso seja a primeira vez que o usuário acessa o sistema o agente exibe um diálogo sobre as funcionalidades do mesmo (Figura 29). Logo após exibir a explicação o sistema grava no banco a informação de que o aluno já acessou e então o aluno entra no sistema tutor em si e pode navegar pelos itens e sub-itens do sistema (Figura 35). A partir deste momento o agente fica monitorando os passos do aluno dentro do sistema, a fim de gravar sua interações. Quando o aluno escolhe o item auto-avaliação, o sistema tutor gera um conjunto de perguntas aleatórias correspondentes ao tópico atual (Figura 31). O aluno, ao clicar em avaliar, faz com que o sistema contabilize os acertos e informe o agente do valor destes acertos, o que dispara o acesso ao JCLIPS para obtenção da feição a ser exibida pelo agente (Figura 32). Caso o aluno tenha deixado de preencher alguma questão o sistema a contabilizará como um erro. 59

71 Figura 29. Agente explicando o ambiente 60

72 Figura 30. Itens do STI Figura 31. Auto-avaliação 61

73 Figura 32. Agente interagindo com o aluno 3.6 Criação das Regras Durante a modelagem e implementação do agente, a árvore de decisões ainda não havia sido inteiramente definida, o que implicou em mudanças no comportamento do agente e das interações no ambiente. Inicialmente, para organizar o funcionamento das regras do sistema especialista, fez-se necessário ter ao alcance algumas informações referentes a como o conteúdo está organizado e como seria tratado pela ótica do pedagogo. Sendo assim, algumas planilhas foram fornecidas para os conteudistas a fim de que eles organizassem estes aspectos. Estas planilhas estão no ANEXO IV e mostram todas as hierarquias de acesso possíveis e suas respectivas estratégias, onde o conteudista deve preencher colocando a estratégia de resposta correspondente. Uma estratégia é o próximo item do conteúdo do STI que o agente indicará para o aluno a visualizar. Respondidos estes questionários implementou-se então, no que se refere ao desempenho do aluno, cinco classes ou níveis de desempenho possíveis na auto-avaliação. Posteriormente essas 62

Desenvolvimento de um Agente Pedagógico Inteligente para um Sistema Tutor na área da Saúde

Desenvolvimento de um Agente Pedagógico Inteligente para um Sistema Tutor na área da Saúde Desenvolvimento de um Agente Pedagógico Inteligente para um Sistema Tutor na área da Saúde Alisson Oldoni 1, Anita Maria da Rocha Fernandes 2, Benjamin Grando Moreira 3, Janice Inês Deters 4 1,2,3 Grupo

Leia mais

AGENTES INTELIGENTES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

AGENTES INTELIGENTES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com AGENTES INTELIGENTES Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Agentes Inteligentes Um agente é tudo o que pode ser considerado capaz de perceber seu ambiente por meio de sensores e de agir sobre

Leia mais

TCC04040 Inteligência Artificial. Inteligência Artificial

TCC04040 Inteligência Artificial. Inteligência Artificial Inteligência Artificial Aula 2 Profª Bianca Zadrozny TCC04040 Inteligência Artificial Página web: http://www.ic.uff.br/~bianca/ia Material: Livro texto: Inteligência Artificial, Russell & Norvig, Editora

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Licenciatura em Computação Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Agentes Inteligentes Um agente é algo capaz de perceber seu ambiente por

Leia mais

9º Congresso de Pós-Graduação AGENTE PARA MEDIAÇÃO DE APRENDIZAGEM ELETRÔNICA

9º Congresso de Pós-Graduação AGENTE PARA MEDIAÇÃO DE APRENDIZAGEM ELETRÔNICA 9º Congresso de Pós-Graduação AGENTE PARA MEDIAÇÃO DE APRENDIZAGEM ELETRÔNICA Autor(es) MICHELE CRISTIANI BARION FREITAS Orientador(es) CECÍLIA SOSA ARIAS PEIXOTO 1. Introdução A partir de ferramentas

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial INF 1771 Inteligência Artificial Aula 02 Agentes Inteligentes Edirlei Soares de Lima Agentes Inteligentes Um agente é algo capaz de perceber seu ambiente por meio de sensores e de

Leia mais

Uma Experiência com Agentes Inteligentes e Jogos de Cartas

Uma Experiência com Agentes Inteligentes e Jogos de Cartas 1 Uma Experiência com Agentes Inteligentes e Jogos de Cartas Anita Maria da R. Fernandes Daniel de Oliveira Helton Machado Kraus Universidade do Vale do Itajaí Universidade do Vale do Itajaí Universidade

Leia mais

Inteligência Artificial. Agentes Inteligentes

Inteligência Artificial. Agentes Inteligentes Inteligência Artificial Agentes Inteligentes Agentes Um agente é algo capaz de perceber seu ambiente por meio de sensores e de agir sobre esse ambiente por meio de atuadores. em busca de um objetivo Exemplos

Leia mais

Sistemas Tutores Inteligentes

Sistemas Tutores Inteligentes Sistemas Tutores Leila Cristina Vasconcelos de Andrade Jorge Juan Zavaleta Gavidia Trabalho de conclusão da disciplina Inteligência Artificial do Programa de Pós-Graduação da COPPE-Sistemas da Universidade

Leia mais

Sistema Educacional e Médico On-line (SEMedicOn): uma ferramenta híbrida para auxiliar pacientes, médicos e estudantes da saúde

Sistema Educacional e Médico On-line (SEMedicOn): uma ferramenta híbrida para auxiliar pacientes, médicos e estudantes da saúde Sistema Educacional e Médico On-line (SEMedicOn): uma ferramenta híbrida para auxiliar pacientes, médicos e estudantes da saúde Cláudia Batista Melo 1, 2, Ulrich Schiel 3, Lourdes Mattos Brasil 4, Edilson

Leia mais

UMA ESTRATÉGIA DE ENSINO HÍBRIDA PARA SISTEMAS TUTORES INTELIGENTES. Andréa Aparecida Konzen andrea@polaris.unisc.br Autora

UMA ESTRATÉGIA DE ENSINO HÍBRIDA PARA SISTEMAS TUTORES INTELIGENTES. Andréa Aparecida Konzen andrea@polaris.unisc.br Autora UMA ESTRATÉGIA DE ENSINO HÍBRIDA PARA SISTEMAS TUTORES INTELIGENTES Andréa Aparecida Konzen andrea@polaris.unisc.br Autora Rejane Frozza frozza@dinf.unisc.br Orientadora UNISC Universidade de Santa Cruz

Leia mais

SISTEMA DE APOIO AO ENSINO BASEADO EM AGENTES. Resumo

SISTEMA DE APOIO AO ENSINO BASEADO EM AGENTES. Resumo SISTEMA DE APOIO AO ENSINO BASEADO EM AGENTES Sérgio A. S. de Moraes 1 Resumo Este apresenta a modelagem de um Sistema Tutor Inteligente (STI) baseado em uma arquitetura Multi-Agente (MA) para apoio ao

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 02 Agentes Inteligentes Agentes Inteligentes Um agente é algo capaz de perceber seu ambiente por meio de sensores e de

Leia mais

Um Assistente Virtual Inteligente Dirigido por Várias Metodologias Educacionais no Ensino em Informática

Um Assistente Virtual Inteligente Dirigido por Várias Metodologias Educacionais no Ensino em Informática Um Assistente Virtual Inteligente Dirigido por Várias Metodologias Educacionais no Ensino em Informática Abstract. This work shows the evolution of Intelligent Teaching Assistant SAE that include and provide

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

Sistema Tutor Inteligente baseado em Agentes. Pedagógicas da Universidade Aberta do Piauí. Prof. Dr. Vinicius Ponte Machado

Sistema Tutor Inteligente baseado em Agentes. Pedagógicas da Universidade Aberta do Piauí. Prof. Dr. Vinicius Ponte Machado Sistema Tutor Inteligente baseado em Agentes na Plataforma MOODLE para Apoio às Atividades Pedagógicas da Universidade Aberta do Piauí Prof. Dr. Vinicius Ponte Machado Parnaíba, 14 de Novembro de 2012

Leia mais

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de:

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: i Sumário 1 Introdução 1 1.1 Linguagens....................................... 1 1.2 O que é um Compilador?................................ 2 1.3 Processadores de Programas: Compiladores, Interpretadores

Leia mais

Ferramentas Web para controle e supervisão: o que está por vir

Ferramentas Web para controle e supervisão: o que está por vir Artigos Técnicos Ferramentas Web para controle e supervisão: o que está por vir Marcelo Salvador, Diretor de Negócios da Elipse Software Ltda. Já faz algum tempo que ouvimos falar do controle e supervisão

Leia mais

SISTEMAS DE APOIO À DECISÃO SAD

SISTEMAS DE APOIO À DECISÃO SAD SISTEMAS DE APOIO À DECISÃO SAD Conceitos introdutórios Decisão Escolha feita entre duas ou mais alternativas. Tomada de decisão típica em organizações: Solução de problemas Exploração de oportunidades

Leia mais

Modelagem e implementação do SEL - Software de Ensino de Lógica Proposicional

Modelagem e implementação do SEL - Software de Ensino de Lógica Proposicional Modelagem e implementação do SEL - Software de Ensino de Lógica Proposicional Cristiane Gato 1, Isabel Dillmann Nunes 1 1 Departamento de Informática Universidade de Cruz Alta (UNICRUZ) Caixa Postal 858

Leia mais

Sistemas Tutores Inteligentes aplicados em Sistemas Hipermídia Adaptativas

Sistemas Tutores Inteligentes aplicados em Sistemas Hipermídia Adaptativas Sistemas Tutores Inteligentes aplicados em Sistemas Hipermídia Adaptativas Lauro Mazzoni Neto 1 Frederico Coelho 1 1 Faculdade de Ciência da Computação Universidade Presidente Antônio Carlos (UNIPAC) Barbacena

Leia mais

CURSO TECNOLÓGICO 2008/01 1º SEMESTRE. Programação e Estruturas de Dados Fundamentais

CURSO TECNOLÓGICO 2008/01 1º SEMESTRE. Programação e Estruturas de Dados Fundamentais 1º SEMESTRE Programação e Estruturas de Dados Fundamentais 8 Créditos Desenvolver a lógica de programação através da construção de algoritmos utilizando português estruturado Representar a solução de problemas

Leia mais

Uma Aplicação de Ensino Orientada a Agentes na Internet

Uma Aplicação de Ensino Orientada a Agentes na Internet 1 de 5 22/7/2008 17:14 Uma Aplicação de Ensino Orientada a Agentes na Internet Adriana Soares Pereira Cláudio Fernando Resin Geyer adriana@inf.ufrgs.br Resumo Este trabalho apresenta uma proposta de desenvolvimento

Leia mais

PROPOSTA DE UMA FERRAMENTA DE AUTORIA PARA A GERAÇÃO DE CONTEÚDOS ON-LINE. Maio/2005 023-TC-C5

PROPOSTA DE UMA FERRAMENTA DE AUTORIA PARA A GERAÇÃO DE CONTEÚDOS ON-LINE. Maio/2005 023-TC-C5 1 PROPOSTA DE UMA FERRAMENTA DE AUTORIA PARA A GERAÇÃO DE CONTEÚDOS ON-LINE Maio/2005 023-TC-C5 Viviane Guimarães Ribeiro Universidade de Mogi das Cruzes vivianegr@yahoo.com.br Saulo Faria Almeida Barretto

Leia mais

UM PROTÓTIPO DO SISTEMA PARA CONTROLE DE BIBLIOTECAS POR MEIO DE PÁGINAS WEB DINÂMICAS 1

UM PROTÓTIPO DO SISTEMA PARA CONTROLE DE BIBLIOTECAS POR MEIO DE PÁGINAS WEB DINÂMICAS 1 UM PROTÓTIPO DO SISTEMA PARA CONTROLE DE BIBLIOTECAS POR MEIO DE PÁGINAS WEB DINÂMICAS 1 Daniel de Faveri HONORATO 2, Renato Bobsin MACHADO 3, Huei Diana LEE 4, Feng Chung WU 5 Escrito para apresentação

Leia mais

Caracterização da Modelagem de Ambientes de Aprendizagem a distância

Caracterização da Modelagem de Ambientes de Aprendizagem a distância Caracterização da Modelagem de Ambientes de Aprendizagem a distância Adja F. de Andrade adja@inf.pucrs.br 1 Beatriz Franciosi bea@inf.pucrs.br Adriana Beiler 2 adrianab@inf.pucrs.br Paulo R. Wagner prwagner@inf.pucrs.br

Leia mais

CURSO DE INFORMÁTICA LICENCIATURA 1 PERÍODO

CURSO DE INFORMÁTICA LICENCIATURA 1 PERÍODO CURSO DE INFORMÁTICA LICENCIATURA 1 PERÍODO DISCIPLINA: Metodologia Científica H111900 Finalidade da metodologia científica. Importância da metodologia no âmbito das ciências. Metodologia de estudos. O

Leia mais

Sistemas Inteligentes. Aula: Agentes Inteligentes Flávia Barros & Patricia Tedesco

Sistemas Inteligentes. Aula: Agentes Inteligentes Flávia Barros & Patricia Tedesco Sistemas Inteligentes Aula: Agentes Inteligentes Flávia Barros & Patricia Tedesco 1 Ao final desta aula a gente deve... Entender o que é um Agente Racional (inteligente)? Distinguir entre os vários tipos

Leia mais

Agentes - Definição. Inteligência Artificial. Agentes Inteligentes

Agentes - Definição. Inteligência Artificial. Agentes Inteligentes Inteligência Artificial s Inteligentes s - Definição : entidade capaz de perceber e agir em um ambiente, comunicar-se com outros agentes, motivada por um conjunto de inclinações, que pode dispor de representação

Leia mais

Workflow Genético para Planejamento e Gerenciamento de Currículo em EAD

Workflow Genético para Planejamento e Gerenciamento de Currículo em EAD Workflow Genético para Planejamento e Gerenciamento de Currículo em EAD Autor: Robson da Silva Lopes 1, Orientadora: Prof a. Dr a. Márcia Aparecida Fernandes 1 1 Programa de Pós-Graduação em Ciência da

Leia mais

Softwares de Sistemas e de Aplicação

Softwares de Sistemas e de Aplicação Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?

Leia mais

1.1 Considerações Iniciais e Motivações. Separação física entre professor e aluno, que a distingue do ensino presencial;

1.1 Considerações Iniciais e Motivações. Separação física entre professor e aluno, que a distingue do ensino presencial; 1 Capítulo 1 Introdução 1.1 Considerações Iniciais e Motivações A educação a distância é uma área de pesquisa e desenvolvimento em franca expansão. Os benefícios deste tipo de educação incluem independência

Leia mais

guia prático 2a Edição Gilleanes T.A. Guedes Novatec

guia prático 2a Edição Gilleanes T.A. Guedes Novatec guia prático 2a Edição Gilleanes T.A. Guedes Novatec Copyright 2007, 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta

Leia mais

Considerações sobre uso de ambientes para ensino a distância

Considerações sobre uso de ambientes para ensino a distância Tânia Martins Preto 85 Considerações sobre uso de ambientes para ensino a distância Tânia Martins Preto (Mestre) Curso de Tecnologia em Processamento de Dados - Universidade Tuiuti do Paraná 86 Considerações

Leia mais

linguagem técnica de informática; Perceber os sinais de pontuação e identificar sua função no texto; Ler siglas e identificar seus significados;

linguagem técnica de informática; Perceber os sinais de pontuação e identificar sua função no texto; Ler siglas e identificar seus significados; PLANO DE CURSO Disciplina Competências Habilidades Bases Tecnológicas INGLÊS TÉCNICO Aumentar e consolidar o seu vocabulário ativo e passivo, através da fixação de novas palavras e expressões contidas

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Agentes Inteligentes Agenda O que é um Agente Como Definir Agentes Arquitectura dos Agentes 1 O que é um agente Em geral um agente é qualquer entidade que: Percebe seu ambiente

Leia mais

LICENCIATURA EM COMPUTAÇÃO

LICENCIATURA EM COMPUTAÇÃO Coordenador: Duração: Carga Horária: LICENCIATURA EM COMPUTAÇÃO Victor Emanuel Corrêa Lima 6 semestres 2800 horas Situação Legal: Reconhecido pela Portaria MEC nº 503 de 15/02/2006 MATRIZ CURRICULAR Primeiro

Leia mais

EMENTAS DAS DISCIPLINAS

EMENTAS DAS DISCIPLINAS EMENTAS DAS DISCIPLINAS CURSO EDUCAÇÃO A DISTÂNCIA (EAD) SISTEMAS PARA INTERNET INTRODUÇÃO À COMPUTAÇÃO 68 A disciplina estuda a área da informática como um todo e os conceitos fundamentais, abrangendo

Leia mais

APLICAÇÕES DE SISTEMAS TUTORES INTELIGENTES NA EDUCAÇÃO A DISTÂNCIA: POSSIBILIDADES E LIMITES TCC5056

APLICAÇÕES DE SISTEMAS TUTORES INTELIGENTES NA EDUCAÇÃO A DISTÂNCIA: POSSIBILIDADES E LIMITES TCC5056 1 APLICAÇÕES DE SISTEMAS TUTORES INTELIGENTES NA EDUCAÇÃO A DISTÂNCIA: POSSIBILIDADES E LIMITES TCC5056 15/02/2006 Ana Paula Costa e Silva Universidade Católica de Brasília - asilva@ucb.br Categoria: C

Leia mais

Agentes Inteligentes. Inteligência Artificial. Exemplos. Agentes Inteligentes. Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com

Agentes Inteligentes. Inteligência Artificial. Exemplos. Agentes Inteligentes. Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Agentes Inteligentes Inteligência Artificial Um agente é algo capaz de perceber seu ambiente por meio de sensores e de agir sobre esse ambiente por meio de atuadores. Agente Prof. Ms. Luiz Alberto Contato:

Leia mais

Ementa. Inteligência Artificial. Agentes. Agentes Inteligentes. Exemplos 8/18/2010. Mapeando percepções em ações. Aula 2 Profª Bianca Zadrozny

Ementa. Inteligência Artificial. Agentes. Agentes Inteligentes. Exemplos 8/18/2010. Mapeando percepções em ações. Aula 2 Profª Bianca Zadrozny Ementa Inteligência Artificial Aula 2 Profª Bianca Zadrozny Agentes inteligentes (Cap. 1 e 2) Resolução de problemas por meio de busca (Cap. 3, 4 e 6) Representação de conhecimento e raciocínio através

Leia mais

World Wide Web e Aplicações

World Wide Web e Aplicações World Wide Web e Aplicações Módulo H O que é a WWW Permite a criação, manipulação e recuperação de informações Padrão de fato para navegação, publicação de informações e execução de transações na Internet

Leia mais

ORGANIZAÇÃO CURRICULAR

ORGANIZAÇÃO CURRICULAR ORGANIZAÇÃO CURRICULAR O curso Técnico em Informática, em Nível Médio Subseqüente, será organizado de forma semestral, com aulas presenciais, compostos por disciplinas, com conteúdos estabelecidos, tendo

Leia mais

O USO INTELIGENTE DO COMPUTADOR NA EDUCAÇÃO José A. Valente NIED - UNICAMP

O USO INTELIGENTE DO COMPUTADOR NA EDUCAÇÃO José A. Valente NIED - UNICAMP O USO INTELIGENTE DO COMPUTADOR NA EDUCAÇÃO José A. Valente NIED - UNICAMP INTRODUÇÃO O que seria a utilização do computador na educação de maneira inteligente? Seria fazer aquilo que o professor faz tradicionalmente

Leia mais

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER Objetivo dessa aula é descrever as características e a simbologia dos diagramas UML e MER na modelagem de sistemas de informação de uma forma a permitir a comunicação entre técnicos e gestores. Modelagem

Leia mais

Conceitos Introdutórios Fábio Fernandes

Conceitos Introdutórios Fábio Fernandes Conceitos Introdutórios Fábio Fernandes Introdução Com o advento da tecnologia e o maior acesso do público em geral a Internet, o aprendizado on-line (e-learning) tem sido cada vez mais procurado por profissionais

Leia mais

EMENTAS DAS DISCIPLINAS

EMENTAS DAS DISCIPLINAS EMENTAS DAS DISCIPLINAS CURSO CST ANÁLISE E DESENVOLVIMENTO DE SISTEMAS INTRODUÇÃO À COMPUTAÇÃO 68 A disciplina estuda a área da informática como um todo e os conceitos fundamentais, abrangendo desde a

Leia mais

Agendamento de Atividades e Tarefas Apoiado por Sistemas Multiagente em Ambientes Virtuais de Aprendizagem

Agendamento de Atividades e Tarefas Apoiado por Sistemas Multiagente em Ambientes Virtuais de Aprendizagem Agendamento de Atividades e Tarefas Apoiado por Sistemas Multiagente em Ambientes Virtuais de Aprendizagem Márcia da C. Pimenta 1, José Francisco M. Netto 1 1 Programa de Pós-Graduação em Informática (PPGI)

Leia mais

Desenvolvimento de Aplicações Web

Desenvolvimento de Aplicações Web Desenvolvimento de Aplicações Web André Tavares da Silva andre.silva@udesc.br Método de Avaliação Serão realizadas duas provas teóricas e dois trabalhos práticos. MF = 0,1*E + 0,2*P 1 + 0,2*T 1 + 0,2*P

Leia mais

Módulo 6: Inteligência Artificial

Módulo 6: Inteligência Artificial Módulo 6: Inteligência Artificial Assuntos: 6.1. Aplicações da IA 6.2. Sistemas Especialistas 6.1. Aplicações da Inteligência Artificial As organizações estão ampliando significativamente suas tentativas

Leia mais

EMENTAS DAS DISCIPLINAS

EMENTAS DAS DISCIPLINAS EMENTAS DAS DISCIPLINAS CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET Introdução à Computação A disciplina apresenta a área da Computação como um todo, desde a história e a evolução dos computadores

Leia mais

PROJETO DE COOPERAÇÃO TÉCNICA INTERNACIONAL. Diretrizes e Estratégias para Ciência, Tecnologia e Inovação no Brasil

PROJETO DE COOPERAÇÃO TÉCNICA INTERNACIONAL. Diretrizes e Estratégias para Ciência, Tecnologia e Inovação no Brasil PROJETO DE COOPERAÇÃO TÉCNICA INTERNACIONAL Diretrizes e Estratégias para Ciência, Tecnologia e Inovação no Brasil Projeto 914 BRA5065 - PRODOC-MTC/UNESCO DOCUMENTO TÉCNICO Nº 02 IMPLANTAÇÃO DE 1 (UM)

Leia mais

SISTEMAS INTELIGENTES DE APOIO À DECISÃO

SISTEMAS INTELIGENTES DE APOIO À DECISÃO SISTEMAS INTELIGENTES DE APOIO À DECISÃO As organizações estão ampliando significativamente suas tentativas para auxiliar a inteligência e a produtividade de seus trabalhadores do conhecimento com ferramentas

Leia mais

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO DESCRIÇÃO DO SIGAI O SIGAI (Sistema Integrado de Gestão do Acesso à Informação) é uma solução de software que foi desenvolvida para automatizar os processos administrativos e operacionais visando a atender

Leia mais

WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML

WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML Carlos Henrique Pereira WebUML: Uma Ferramenta Colaborativa de Apoio ao Projeto e Análise de Sistemas Descritos em Classes UML Florianópolis - SC 2007 / 2 Resumo O objetivo deste trabalho é especificar

Leia mais

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

Leia mais

Guia De Utilização Do Ambiente LMS

Guia De Utilização Do Ambiente LMS Conteúdo Introdução... 2 1. O que é o ambiente LMS... 3 2. Acesso ao ambiente LMS (Learning Management System)... 3 3. Localização e visualização dos cursos disponíveis... 4 4. Navegação entre categorias...

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 1 OBJETIVOS 1. Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações e transações empresariais?

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

Leia mais

Desenvolvendo um Ambiente de Aprendizagem a Distância Utilizando Software Livre

Desenvolvendo um Ambiente de Aprendizagem a Distância Utilizando Software Livre Desenvolvendo um Ambiente de Aprendizagem a Distância Utilizando Software Livre Fabrício Viero de Araújo, Gilse A. Morgental Falkembach Programa de Pós-graduação em Engenharia de Produção - PPGEP Universidade

Leia mais

UMA FERRAMENTA PARA GERENCIAMENTO DISTRIBUÍDO DE PROJETOS

UMA FERRAMENTA PARA GERENCIAMENTO DISTRIBUÍDO DE PROJETOS UMA FERRAMENTA PARA GERENCIAMENTO DISTRIBUÍDO DE PROJETOS Fabiane Barreto Vavassori Universidade do Vale do Itajaí UNIVALI Rua Uruguai, 458 CEP: 88302-202 - Itajaí/SC. Universidade Federal de Santa Catarina

Leia mais

UMA PROPOSTA DE SOFTWARE EDUCACIONAL CONSTRUTIVISTA UTILIZANDO UMA METODOLOGIA LUDICA PARA CONSCIENTIZACAO DA IMPORTANCIA DA COLETA SELETIVA DO LIXO

UMA PROPOSTA DE SOFTWARE EDUCACIONAL CONSTRUTIVISTA UTILIZANDO UMA METODOLOGIA LUDICA PARA CONSCIENTIZACAO DA IMPORTANCIA DA COLETA SELETIVA DO LIXO UMA PROPOSTA DE SOFTWARE EDUCACIONAL CONSTRUTIVISTA UTILIZANDO UMA METODOLOGIA LUDICA PARA CONSCIENTIZACAO DA IMPORTANCIA DA COLETA SELETIVA DO LIXO RESUMO Lisiane Cézar de Oliveira loli@urisan.tche.br

Leia mais

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; 1 ARQUITETURA E DESIGN DE SOFTWARE O que é Arquitetura? do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; do dicionário: Arte de projetar e construir prédios,

Leia mais

Novas tecnologias no ensino de matemática: possibilidades e desafios

Novas tecnologias no ensino de matemática: possibilidades e desafios Novas tecnologias no ensino de matemática: possibilidades e desafios Marcelo Antonio dos Santos Mestre em Matemática Aplicada UFRGS, Professor na Faculdade Cenecista de Osório (FACOS) e professor da rede

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Tutorial Moodle Visão do Aluno

Tutorial Moodle Visão do Aluno Tutorial Moodle Visão do Aluno A P R E S E N T A Ç Ã O A sigla MOODLE significa (Modular Object Oriented Dynamic Learning Environment), em inglês MOODLE é um verbo que descreve a ação ao realizar com gosto

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE Capítulo 6 ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 6.1 2003 by Prentice Hall OBJETIVOS Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações

Leia mais

O ENSINO DE PROGRAMAÇÃO DE COMPUTADORES E EAD: UMA PARCERIA POSSÍVEL

O ENSINO DE PROGRAMAÇÃO DE COMPUTADORES E EAD: UMA PARCERIA POSSÍVEL 1 O ENSINO DE PROGRAMAÇÃO DE COMPUTADORES E EAD: UMA PARCERIA POSSÍVEL Porto Alegre - RS - Março 2011 Maurício Machado da Rosa - PUCRS - iimmrii@gmail.com Lucia Maria Martins Giraffa - PUCRS - giraffa@pucrs.br

Leia mais

QUESTÕES PROVA 2 (28 a 44)

QUESTÕES PROVA 2 (28 a 44) QUESTÕES PROVA 2 (28 a 44) 28) A orientação a objetos é uma forma abstrata de pensar um problema utilizando-se conceitos do mundo real e não, apenas, conceitos computacionais. Nessa perspectiva, a adoção

Leia mais

Plano de Trabalho Docente 2014. Ensino Técnico

Plano de Trabalho Docente 2014. Ensino Técnico Plano de Trabalho Docente 2014 Ensino Técnico ETEC MONSENHOR ANTONIO MAGLIANO Código: 088 Município: Garça Eixo Tecnológico: Informação e Comunicação Habilitação Profissional: Técnica de Nível Médio de

Leia mais

Laudon & Laudon Essentials of MIS, 5th Edition. Pg. 6.1

Laudon & Laudon Essentials of MIS, 5th Edition. Pg. 6.1 Laudon & Laudon Essentials of MIS, 5th Edition. Pg. 6.1 6 OBJETIVOS OBJETIVOS ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 6.1 2003 by Prentice Hall Qual é a capacidade de processamento e armazenagem

Leia mais

EMENTAS DAS DISCIPLINAS

EMENTAS DAS DISCIPLINAS EMENTAS DAS DISCIPLINAS CST SISTEMAS DE INFORMAÇÃO DISCIPLINA: Algoritmo e Programação I A disciplina aborda o estudo de algoritmos, envolvendo os conceitos fundamentais: variáveis, tipos de dados, constantes,

Leia mais

Projeto de Design Instrucional

Projeto de Design Instrucional Projeto de Design Instrucional Curso: Educação Financeira Modalidade: EaD on-line o que é Design Instrucional? A ação institucional e sistemática de ensino, que envolve o planejamento, o desenvolvimento

Leia mais

WWW - World Wide Web

WWW - World Wide Web WWW World Wide Web WWW Cap. 9.1 WWW - World Wide Web Idéia básica do WWW: Estratégia de acesso a uma teia (WEB) de documentos referenciados (linked) em computadores na Internet (ou Rede TCP/IP privada)

Leia mais

Desenvolvimento e aplicação de um software como ferramenta lúdica para a memorização das regras do novo acordo ortográfico

Desenvolvimento e aplicação de um software como ferramenta lúdica para a memorização das regras do novo acordo ortográfico Desenvolvimento e aplicação de um software como ferramenta lúdica para a memorização das regras do novo acordo ortográfico Maria José Basso Marques*, Elisângela Mazei da Silva** Estado de Mato Grosso,

Leia mais

Integração da Informação e do Conhecimento no Contexto da Copa do Mundo e os Jogos Olímpicos no Brasil

Integração da Informação e do Conhecimento no Contexto da Copa do Mundo e os Jogos Olímpicos no Brasil Integração da Informação e do Conhecimento no Contexto da Copa do Mundo e os Jogos Olímpicos no Brasil Ivan Guilherme 1, Jonas Queiroz 1, Caio Marques 2 1 Universidade Estadual Paulista, IGCE, DEMAC, Caixa

Leia mais

Tópicos Especiais em Informática. Msc. Márcio Alencar

Tópicos Especiais em Informática. Msc. Márcio Alencar Tópicos Especiais em Informática Msc. Márcio Alencar Recursos Certamente, um dos atrativos do chamado e- Learning (ou ensino á distância com uso de ferramentas computacionais/eletrônicas), são os novos

Leia mais

Unified Modeling Language UML - Notações

Unified Modeling Language UML - Notações Unified Modeling Language UML - Notações Prof. Ms. Elvio Gilberto da Silva elvio@fmr.edu.br UML Ponto de Vista É gerada com propósito geral de uma linguagem de modelagem visual usada para especificar,

Leia mais

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE A proposta para o ambiente apresentada neste trabalho é baseada no conjunto de requisitos levantados no capítulo anterior. Este levantamento, sugere uma

Leia mais

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Marco T. A. Rodrigues*, Paulo E. M. de Almeida* *Departamento de Recursos em Informática Centro Federal de Educação Tecnológica de

Leia mais

MOODLE é o acrónimo de "Modular Object-Oriented Dynamic Learning Environment. Executado em um AVA - Ambiente Virtual de Apresendizagem;

MOODLE é o acrónimo de Modular Object-Oriented Dynamic Learning Environment. Executado em um AVA - Ambiente Virtual de Apresendizagem; MOODLE é o acrónimo de "Modular Object-Oriented Dynamic Learning Environment Software livre, de apoio à aprendizagem; Executado em um AVA - Ambiente Virtual de Apresendizagem; A expressão designa ainda

Leia mais

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 UML 2 Guia Prático Gilleanes T.A. Guedes Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 Novatec capítulo 1 Introdução à UML A UML (Unified Modeling Language ou Linguagem de Modelagem

Leia mais

Como encontrar maneiras de associar um importante conteúdo didático a um software que ensine e divirta ao mesmo tempo? Estão os professores

Como encontrar maneiras de associar um importante conteúdo didático a um software que ensine e divirta ao mesmo tempo? Estão os professores Profª Levany Rogge Os softwares são considerados programas educacionais a partir do momento em que são projetados através de uma metodologia que os contextualizem no processo ensino-aprendizagem; Tajra

Leia mais

Autoria Web Apresentação e Visão Geral sobre a Web

Autoria Web Apresentação e Visão Geral sobre a Web Apresentação e Visão Geral sobre a Web Apresentação Thiago Miranda Email: mirandathiago@gmail.com Site: www.thiagomiranda.net Objetivos da Disciplina Conhecer os limites de atuação profissional em Web

Leia mais

Introdução à Inteligência Artificial (Capítulo 1 - Russell) Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Introdução à Inteligência Artificial (Capítulo 1 - Russell) Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto Introdução à Inteligência Artificial (Capítulo 1 - Russell) Inteligência Artificial Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Áreas de Apoio para IA 3. Sub-Áreas da IA 4.

Leia mais

LISTA DE EXERCÍCIOS. Mede a capacidade de comunicação de computadores e dispositivos. Operam em diferentes plataformas de hardware

LISTA DE EXERCÍCIOS. Mede a capacidade de comunicação de computadores e dispositivos. Operam em diferentes plataformas de hardware 1. A nova infra-estrutura de tecnologia de informação Conectividade Mede a capacidade de comunicação de computadores e dispositivos Sistemas abertos Sistemas de software Operam em diferentes plataformas

Leia mais

2 Auto-sintonia de Bancos de Dados e Agentes de Software

2 Auto-sintonia de Bancos de Dados e Agentes de Software 2 Auto-sintonia de Bancos de Dados e Agentes de Software A uso da abordagem de agentes de software 1 pode trazer benefícios a áreas de aplicação em que é necessário construir sistemas autônomos, ou seja,

Leia mais

DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 MANTER FUNCIONÁRIO RELEASE 4.1

DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 MANTER FUNCIONÁRIO RELEASE 4.1 DEFINIÇÃO DE REQUISITOS SISTEMA DE CONTROLE DE FINANÇAS WEB 1.0 MANTER FUNCIONÁRIO RELEASE 4.1 SUMÁRIO DEFINIÇÃO DE REQUISITOS 4 1. INTRODUÇÃO 4 1.1 FINALIDADE 4 1.2 ESCOPO 4 1.3 DEFINIÇÕES, ACRÔNIMOS

Leia mais

SISTEMA I-KERNEL: UM KERNEL INTELIGENTE PARA O SIMPREBAL SISTEMA DE MANUTENÇÃO PREDITIVA DE BALBINA

SISTEMA I-KERNEL: UM KERNEL INTELIGENTE PARA O SIMPREBAL SISTEMA DE MANUTENÇÃO PREDITIVA DE BALBINA PROGRAMA DE PESQUISA E DESENVOLVIMENTO TECNOLÓGICO CICLO 2003/2004 Nº DO CONTRATO: 4500052325 Nº DO PROJETO: 128 INÍCIO: 28/09/2005 DURAÇÃO: 24 meses A. Instituição executora: B. Título do Projeto: Modernização

Leia mais

Utilização de Agentes Inteligentes no desenvolvimento de um Jogo RPG para dispositivos móveis

Utilização de Agentes Inteligentes no desenvolvimento de um Jogo RPG para dispositivos móveis Utilização de Agentes Inteligentes no desenvolvimento de um Jogo RPG para dispositivos móveis Heitor de Sousa Miranda, Fernando Luiz de Oliveira Curso de Sistemas de Informação - CEULP/ULBRA Teotônio Segurado

Leia mais

CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET MATRIZ CURRICULAR

CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET MATRIZ CURRICULAR CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET MATRIZ CURRICULAR 1º SEMESTRE P101 Desenvolvimento Web 80 CE05 CE06 P102 Língua Portuguesa 40 CG08 CG13 P103 Algoritmos e Lógica de Programação 80

Leia mais

CURSO DE SISTEMAS DE INFORMAÇÃO

CURSO DE SISTEMAS DE INFORMAÇÃO 1 CURSO DE SISTEMAS DE INFORMAÇÃO EMENTÁRIO DAS DISCIPLINAS 2011.1 BRUSQUE (SC) 2015 2 SUMÁRIO 1ª FASE... 4 01 ARQUITETURA DE COMPUTADORES... 4 02 FILOSOFIA... 4 03 FUNDAMENTOS MATEMÁTICOS PARA COMPUTAÇÃO...

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Centro Universitário de Volta Redonda - UniFOA Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro

Leia mais

O TRAFip é uma poderosa ferramenta de coleta e caracterização de tráfego de rede IP, que vem resolver esse problema de forma definitiva.

O TRAFip é uma poderosa ferramenta de coleta e caracterização de tráfego de rede IP, que vem resolver esse problema de forma definitiva. Não há dúvida de que o ambiente de rede está cada vez mais complexo e que sua gestão é um grande desafio. Nesse cenário, saber o que está passando por essa importante infraestrutura é um ponto crítico

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software O que é a engenharia de software É um conjunto integrado de métodos e ferramentas utilizadas para especificar, projetar, implementar e manter um sistema. Método É uma prescrição

Leia mais

Ambiente virtual e educacional para auxílio ao estímulo da lateralidade e dos sentidos de crianças

Ambiente virtual e educacional para auxílio ao estímulo da lateralidade e dos sentidos de crianças Ambiente virtual e educacional para auxílio ao estímulo da lateralidade e dos sentidos de crianças Ana Emília Lelis da Silva 1, Nadabe O. Alves Fortes 1, Wender Antônio da Silva 1, Marcos Wagner de Souza

Leia mais

SEMANA NACIONAL DE CIÊNCIA E TECNOLOGIA 2014 FORMULÁRIO PARA SUBMISSÃO DE PROJETOS

SEMANA NACIONAL DE CIÊNCIA E TECNOLOGIA 2014 FORMULÁRIO PARA SUBMISSÃO DE PROJETOS SEMANA NACIONAL DE CIÊNCIA E TECNOLOGIA 2014 FORMULÁRIO PARA SUBMISSÃO DE PROJETOS Formulário para submissão de projeto Dados do Projeto e do (a) Orientador (a) do Projeto Título do Projeto: Um aplicativo

Leia mais

Uma Proposta de Tecnologia Embarcada na Internação Domiciliar Capítulo 3 Implementação do SMD 93

Uma Proposta de Tecnologia Embarcada na Internação Domiciliar Capítulo 3 Implementação do SMD 93 Capítulo 3 Implementação do SMD 93 CAPÍTULO 3 IMPLEMENTAÇÃO DO SMD Este capítulo reserva-se à apresentação da implementação do SMD tomando como partida o desenvolvimento do Projeto Preliminar que consta

Leia mais

Curso Online Macromedia Dreamweaver 8 Desenvolvimento de Websites

Curso Online Macromedia Dreamweaver 8 Desenvolvimento de Websites Curso Online Macromedia Dreamweaver 8 Desenvolvimento de Websites Informações sobre o curso Objetivo No curso Macromedia Dreamweaver 8 Desenvolvendo de Websites, você aprenderá as técnicas mais utilizadas

Leia mais