Академический Документы
Профессиональный Документы
Культура Документы
Mauro Marcelo Mattos1 mattos@furb.rct-sc.br Andrino Fernandes2 andrino@eps.ufsc.br Oscar Ciro Lpez, Dr. Eng.3 oscar@eps.ufsc.br
Resumo
O presente trabalho apresenta uma proposta de metodologia de suporte ao ensino do contedo de lgica de programao em turmas introdutrias. O problema contextualizado e apresentada uma proposta de soluo a qual foi validada com um prottipo de um sistema especialista implementado em CLIPS.
Abstract
This work discusses the problem that affects students in the first steps in programming logic classes. The problem is characterized and a new methodology is presented. An expert system tool was developed in CLIPS to validate the work and the final conclusions are presented. Palavras-chave: Sistemas Especialistas, Informtica na Educao, CLIPS.
1. Introduo
1
Professor da FURB - Universidade Regional de Blumenau. Doutorando no Curso de Ps-Graduao em Eng. de ProduoUFSC - Universidade Federal de Santa Catarina.. 2 Professor da ETFSC - Escola Tcnica Federal de Santa Catarina. Mestrando no Curso de Ps-Graduao em Eng. de Produo- UFSC - Universidade Federal de Santa Catarina. 3 Programa de Ps-Graduao em Engenharia de Produo. Departamento de Engenharia de Produo. UFSC Universidade Federal de Santa Catarina.
"Estudar uma atividade que consiste em assimilar uma situao nova aos esquemas de ao usados em outras situaes. Toda aprendizagem supe um conhecimento. Estudar experimentar novas estratgias de comportamento, logo, transferir ou generalizar os comportamentos j incorporados." [LIM 76] Com o processo crescente no uso de tecnologias aplicadas educao importante ressaltar no s a contribuio dos recursos computacionais existentes, mas, tambm, a necessidade de estudar-se a forma ideal para sua aplicao. imprescindvel uma constante pesquisa na rea educacional para promover mtodos de ensino mais atuais e atuantes. O computador surge como uma ferramenta de transmisso de conhecimentos a qual no pode deixar de ser considerada. E o computador ao mesmo tempo uma ferramenta de trabalho e uma ferramenta de aprendizagem auxiliando a capacidade do indivduo de utiliz-lo em todo o seu potencial para resolver problemas. Todos tem os mesmos instrumentos para chegar ao conhecimento, mas no os utilizam com a mesma intensidade. Normalmente, os processos educacionais se baseiam, quase exclusivamente, no desenvolvimento da inteligncia lingistica e da lgico-matemtica, deixando de lado as outras formas de acesso ao conhecimento. Papert cita que muitas vezes que a diferena evolutiva pode ser atribuda escassez ou ausncia de materiais, a partir dos quais podem ser construdas estruturas intelectuais aparentemente 'mais avanadas'. A hiptese de Papert que o computador, quando utilizado de maneira adequada, pode 'concretizar' (e personalizar) o formal. A aprendizagem um processo no qual experincias fomentam modificao do comportamento e aquisio de hbitos. Segundo [WEC 93], Piaget (1964) ao estudar a gnese do desenvolvimento da inteligncia, demonstrou a importncia da maturao do sistema nervoso, da ao sobre os objetos e dos fatores sociais como variveis influenciantes na compreenso do processo intelectual. Em seus estudos, demonstrou como os processos de assimilao e acomodao de novos conhecimentos se incorpora estrutura do pensamento. justamente pela abordagem abstrata no ensino da lgica de programao que justifica-se a pesquisa e o desenvolvimento de ferramentas e/ou aplicaes tecnolgicas para o aprendizado ideal. Os aspectos cognitivos relacionados a captao de contedos comprovam a eficcia de processos que relacionam a ferramenta computador em beneficio da produtividade intelectual. Os processos cognitivos dizem respeito aos processos psicolgicos envolvidos no conhecer, compreender, perceber, aprender, nas formas de pensar e nos tipos de pensamento.
2. Caracterizao do problema
Os estudantes que iniciam um curso de Graduao em Informtica, normalmente encontram uma primeira dificuldade relacionada com a disciplina de Algoritmos (ou com nome similar), cujo principal objetivo o de introduzir os conceitos bsicos de lgica de programao. Esta dificuldade na maioria das vezes, decorrente da falta de experincia com os aspectos relacionados a ambientes industriais e/ou comerciais, pois a partir destes ambientes que so caracterizados os exerccios propostos. Analisando-se o perfil dos alunos, verifica-se que em sua maioria, so oriundos do 2o Grau, e portanto, possuem conhecimentos abstratos sobre reas cientficas (matemtica, fsica, biologia, etc.). Porm , quando deparam-se com a descrio textual dos enunciados dos problemas apresentados nesta disciplina introdutria, geralmente encontram dificuldades em identificar como extrair as informaes necessrias para iniciar a soluo destes problemas. A partir da constatao do problema, observou-se que, quando induzidos a pensar sobre o problema atravs de perguntas direcionadas, em sua grande maioria, os alunos conseguem descrever a soluo intuitivamente, ou seja, sem o formalismo necessrio rea de computao.
3. Motivao
A necessidade de tratar o tema inteligncia artificial, por exemplo, como um elo de ligao engenharia cognitiva surge da necessidade de desmistificar o fato que os seres humanos no se interessam em compreender suas capacidades e atividades mentais. A partir da anlise e observao do processo de induo acima citado, iniciou-se no 1o semestre de 1998, na FURB, um trabalho no sentido de formalizar-se atravs de uma metodologia, este processo de induo, com o objetivo de conduzir o aluno no processo de busca da soluo dos problemas propostos. Este processo foi utilizado ao longo do referido semestre e ao final do mesmo, os alunos avaliaram a proposta como sendo muito til, principalmente porque estabelecia uma receita de bolo (segundo alguns), ou seja, um procedimento formal a ser seguido. Em funo disto, optou-se pelo refinamento da proposta e pelo desenvolvimento de um sistema especialista que a partir do conhecimento informal sobre o processo de induo, permitisse a construo de uma ferramenta de software que permitisse ao aluno, na ausncia do professor, desenvolver o processo de aprendizado dos conceitos bsicos da disciplina. Um outro aspecto importante a destacar que analisando-se a literatura de sistemas especialistas, normalmente encontram-se referncias aplicao deste tipo de tecnologia na soluo de problemas "complexos" tais como : diagnstico mdico, anlise de mercado, anlise de crdito e assim por diante. Observou-se contudo que, o emprego de sistemas especialistas na rea de computao no so relatados com tanta nfase. Segundo Giarratano[GIA 94], o conhecimento pode ser classificado em : Procedural: saber como fazer ex.: como esquentar gua;
Declarativo: saber que algo verdadeiro/falso ex.: no tocar em chaleira quente e Tcito ou inconsciente: sabe o que ocorre, mas no sabe como faz ex.: mover a mo.
No caso especfico do problema proposto, observa-se com freqncia que a partir da soluo de um determinado nmero de exerccios alguns alunos "descobrem" o mecanismo de como construir as solues de lgica de programao. Entretanto, outros enquanto no "descobrem" esta nova forma de pensar, permanecem estagnados, e assumem uma postura de tentativa-e-erro. Naturalmente isto conduz ao insucesso e ao desnimo levando muitas vezes a reprovao na disciplina. Este ato de descobrir, se analisado do ponto de vista do aluno, poderia ser considerado como um conhecimento tcito, uma vez que, mesmo aqueles que aprenderam como fazer, tem dificuldades de explicar aos colegas como organizaram o raciocnio que conduziu a soluo do problema. Por outro lado, se analisado do ponto de vista dos professores, o conhecimento procedural, ou seja, sabe-se que h uma seqncia de passos a serem executados no sentido de construir-se uma soluo lgica. Naturalmente, h ainda um outro tipo de conhecimento envolvido no caso em questo, o qual pode ser classificado como declarativo ou seja, analisar-se a soluo e verificar-se que a mesma funciona ou no, baseando-se em experincia prvia, sabe-se que determinada seqncia de passos, para determinados problemas, provavelmente conduzir a uma soluo que no correta para determinadas situaes. Dentro deste contexto, estabeleceu-se o desafio de apresentar uma proposta de soluo utilizando-se a tecnologia de sistemas especialistas.
um conjunto de aes e um conjunto de condies sob as quais as aes devem acontecer. Um sistema especialista continuamente analisa um conjunto de elementos condicionais (conhecidos como regras) em relao a uma base de fatos (tambm conhecida como base de conhecimento) para verificar se alguma regra pode ser aplicada para aquele conjunto de fatos. Se a premissa verdadeira, ento o sistema especialista executa as aes associadas gerando novos fatos na base de conhecimento. Este processo de analisar a base e disparar regras realizado por um componente denominado: mquina de inferncia. A aplicao desta tecnologia apresenta uma srie de vantagens, dentre as quais, algumas so citadas por Gardner [GAR 92] a seguir:
solucionar problemas importantes que, de outro modo, deveriam ser solucionados por um perito humano; flexibilidade na integrao de novos conhecimentos ao conhecimento j armazenado; auxlio aos usurios na elucidao, estruturao e transferncia de conhecimento; capacidade de mostrar seu conhecimento de uma forma facilmente compreensvel; disponibilizao de explicaes sobre suas recomendaes; capacidade de raciocinar com conhecimentos incompletos sobre a natureza de uma tarefa ou como a tarefa deve ser realizada de forma eficiente; capacidade de tratar sentenas simples em linguagens naturais.
No exemplo do problema sendo considerado, as questes (b), (c) e (e) so aspectos importantes, que se utilizadas adequadamente em uma ferramenta de software, certamente podem contribuir significativamente no apoio ao aprendizado de lgica de programao.
5. Ambiente de desenvolvimento
Utilizou-se como ambiente de desenvolvimento o software CLIPS (C Language Integrated Production System) o qual foi desenvolvido pela NASA/Johnson Space Center. Em sua origem, tinha como finalidade de gerar solues que apresentassem alta portabilidade, baixo custo e fcil integrao com sistemas externos. Problemas que afetavam os projetos da NASA em funo da diversidade de aplicaes e tecnologias utilizadas. Segundo [GIA 94], CLIPS uma linguagem de programao multiparadigma a qual fornece suporte a programao tradicional, ou seja baseada em procedimentos, programao orientada a objetos e baseada em regras. CLIPS assemelha-se a outras linguagens tais como ART, ART-IM, Eclipse e Cognate, sendo sintaticamente muito parecida com LISP. CLIPS entretanto somente suporta o processo de inferncia denominado forward-chaining (encadeamento para frente). A poro orientada a objetos, referenciada como COOL (CLIPS Object-Oriented Language), e apresenta caractersticas de CLOS (Common Lisp Object System) e SmallTalk.
Este processo de desenvolvimento conduz a um ciclo, onde a cada nova passagem conduz a mais um nvel de profundidade no sentido de refinar o conhecimento j adquirido sobre determinada rea.
7. A aquisio do conhecimento
Como citado anteriormente, na medida em que verificou-se que, o processo de induo apresentava resultados, procurou-se identificar quais perguntas e em que seqncia elas eram apresentadas no sentido de conduzir a turma em direo a uma possvel soluo a algum dos problemas propostos. A partir da confeccionou-se o que foi caracterizado pelos alunos como : a metodologia dos 8 passos. Esta primeira proposta procurava fazer com que o aluno respondesse s seguintes questes: a) Quais as variveis conhecidas ? ou seja, quais as informaes que podem ser obtidas a partir do enunciado do problema; b) O que precisa ser calculado (ou executado)? identificao do escopo da aplicao; c) Quais as variveis desconhecidas? -- ou seja, variveis para as quais no h informao no enunciado do problema; d) O que precisa ser informado (digitado) ou seja, o que o usurio da aplicao precisa informar para que o mesmo realize suas funes; e) O que precisa ser apresentado (impresso) ou seja, o que a aplicao deve apresentar como resultado; f) Realizar um esboo da soluo ou seja, identificar em termos de macro passos, qual a estratgia a ser adotada para soluo do problema; g) Construir um fluxograma efetivamente elaborar um fluxograma, utilizando a notao grfica para representar a lgica da soluo; h) Construir o teste-de-mesa excitar as variveis a partir da execuo dos comandos na seqncia em que aparecem no grfico Consequentemente, aps a realizao do teste-de-mesa e, verificada sua correo, a soluo est pronta para ser codificada em alguma linguagem alvo. Embora facilitasse mais o encaminhamento da soluo, a metodologia acima descrita ainda carecia de um detalhamento melhor, porque haviam obviamente muitos passos "escondidos" entre a passagem das fases de (a) a (e) para a fase (f) esboo da soluo. Cabe salientar que, com esta estratgia, um nmero maior de alunos passou a entender o escopo da aplicao isto porque, o primeiro passo para a soluo de um problema entend-lo. O passo seguinte foi o de detalhar o aspecto "obscuro" anteriormente citado. Atravs de entrevistas com o especialista e, utilizando-se as listas de exerccios que os alunos recebiam como exerccios, refinou-se o conhecimento a ponto de obter-se uma planilha a qual possui 28 colunas. Nesta planilha, alm de identificadas a seqncia de perguntas, identificou-se tambm grupos de perguntas relacionadas, de tal forma que, dependendo das respostas obtidas, somente um subconjunto das mesmas faz-se necessrio serem respondidas para atingirem-se os objetivos desejados.
Este procedimento foi realizado para um conjunto de aproximadamente 30 exemplos, os quais englobavam desde a soluo de problemas simples (entrada-equao-sada) , problemas de complexidade mdia baixa (entrada-vrias equaes-sada), problemas de mdia complexidade (entrada-decises-equaes-sada) e problemas de complexidade mdia-alta (repeties-entradadecises-equaes-sada). Cabe salientar que neste estgio do projeto no foram contemplados exerccios envolvendo vetores e matrizes com 2 ou mais dimenses. Com base nestas informaes, o passo seguinte foi o de construir uma estrutura de representao do conhecimento identificado atravs da anlise dos problemas resolvidos, o que ser descrito a seguir.
8. A representao do conhecimento
Durante o processo de anlise do conhecimento representado na planilha, verificou-se que haviam questes que exigiam respostas do tipo sim/no; questes que exigiam respostas textuais; situaes em que era necessrio uma orientao ao aluno no sentido de gui-lo para o passo seguinte e, finalmente situaes onde se fazia necessrio uma realimentao sobre as decises tomadas anteriormente tendo em vista posicion-lo no contexto da soluo em andamento. A partir destas informaes, construiu-se uma rvore de decises, a qual possui 4 tipos de nodos, a seguir relacionados: Nodos de deciso ex: H alguma operao lgica ou aritmtica? Nodos de ao ex: Descreva a operao. Nodos de status ex: At o momento voc identificou os seguintes passos: Nodos de ajuda ex: Uma vez analisadas as pr-condies, podemos identificar a operao a ser realizada! A definio desta rvore de conhecimento foi construda em CLIPS atravs da declarao apresentada na figura 1.
(deftemplate no (slot nome)(slot tipo) (slot questao)(slot no-sim) (slot no-nao)(slot prox-no) ) Figura 1 - Definio em CLIPS de um nodo da rvore de decises
Um exemplo de cada
conhecimento do especialista em termos de conhecimento procedural (conforme comentado anteriormente). A estratgia adotada para adquirir conhecimento do aluno ser descrita a seguir.
9. A implementao
A estratgia adotada para orientar o aluno, foi a filosofia de desenvolvimento top-down, onde o desenvolvimento da aplicao d-se por refinamentos sucessivos. Sempre que houver necessidade, um novo passo de refinamento vai sendo realizado at a obteno do nvel desejado de especificao que efetivamente solucione o problema. Para tanto, foram construdas regras, que permitem a navegao atravs dos nodos da rvore de decises. Assim sendo, medida em que os nodos vo sendo repetidamente visitados, novos fatos vo sendo gerados na memria de trabalho. Estes novos fatos disparam regras que uma vez executadas geram uma nova rvore auxiliar (denominada rvore de log) , a qual registra as respostas do usurio, e estabelece a seqncia em termos temporais em que as respostas vo sendo cadastradas. A definio desta rvore auxiliar de conhecimento foi definida em CLIPS atravs da definio apresentada na figura 3.
(deftemplate log (slot nome) (slot tipo)(slot status)(slot ifID)(slot valor)(slot nivel)(slot ant)(slot prox))
O slot tipo utilizado para Figura 3 - Definio em CLIPS de um nodo da rvore de log identificar que tipo de operao esta sendo registrada. Constituem-se valores vlidos: digitao, operao lgica ou aritmtica, sada de dados e operao de deciso (IF). O slot status utilizado para registrar se um determinado n desta rvore j foi resolvido completamente ou se h alguma pendncia a ser solucionada, ou seja, se ainda h mais algum refinamento a ser realizado. O slot ifID utilizado para identificar univocamente Figura 4 Tela de contextualizao do problema cada operao de deciso que vai sendo
introduzida nesta rvore. O slot valor utilizado para armazenar as respostas textuais do usurio . Cabe destacar que, respostas sim/no no so armazenadas nesta rvore, elas simplesmente ativam as regras de navegao na rvore de conhecimento anteriormente apresentada - figura 2). O slot nvel utilizado para identificar um novo nvel de refinamento realizado e finalmente, os slots ant e prox constituem-se em elementos de conexo desta rvore. A figura 4 apresenta uma tela onde perguntado ao aluno que descreva sinteticamente o problema a ser resolvido. Neste momento j se procura induzi-lo a pensar em termos do contexto do problema. E a figura 5, continua apresentando questes ao aluno para que o mesmo v aos poucos delimitando o escopo do problema, e aprofundando-se em direo a uma soluo para o mesmo. Aps cada rodada na rvore de decises, apresenta-se ao aluno um feedback do contexto delineado pelo mesmo at o momento, e dependendo do nvel de refinamento necessrio, automaticamente o sistema inicia um novo passo de refinamento de alguma estrutura que ainda requeira informaes complementares (figura 6). Esta estratgia permitiu que fosse adquirido o conhecimento tcito do aluno, a partir do conhecimento declarativo, ou seja, o aluno sabe responder sim e no as perguntas que vo sendo realizadas. A ordem das perguntas est estabelecida na rvore de decises. O que ele no sabe fazer que explicar como resolver o problema vai sendo armazenado na rvore auxiliar (log), de tal forma que, ao final do processo, possvel inferir a soluo macro do problema atravs da conjugao dos vrios tipos de conhecimento envolvidos no processo.
a gerao da rvore de log, algumas relacionadas a manuteno das conexes da rvore de log e finalmente, algumas relacionadas a gerao de feedback para o aluno.
11. Concluso
Pode-se considerar que, apesar da interface com o usurio ser bastante primitiva, a implementao do prottipo atendeu aos objetivos iniciais que eram o desenvolvimento de uma aplicao em software que se constitusse em uma ferramenta de apoio ao aprendizado de lgica de programao. Testes preliminares confirmaram os resultados obtidos atravs da execuo do processo utilizandose planilhas em papel, ou seja, os alunos conseguiram adquirir um maior nvel de conhecimento do problema bem como gerar um esboo de soluo bastante aceitvel. Cabe salientar que, esta proposta no conduz o aluno no sentido de gerar a soluo correta para um determinado problema. O objetivo da ferramenta no este. Tanto isto verdade que, caso o aluno no responda corretamente (e o termo corretamente neste contexto relativo) as questes, o sistema apresentar um esboo de soluo de acordo. Ou seja, a ferramenta no elimina a filosofia anteriormente descrita como "metodologia dos 8 passos", ela simplesmente enquadra-se no que poderia ser denominado de fase de anlise de requisitos de uma metodologia tradicional de desenvolvimento de sistemas, gerando como produto final um esboo de soluo. Este esboo de soluo ter que ser convertido em um fluxograma, o qual dever ser avaliado quanto a sua correo atravs do teste-de-mesa. Somente aps este teste que a soluo poder ser considerada correta. Portanto, o aspecto mais importante que deve ser destacado refere-se ao fato que esta soluo permite que o aluno sistematicamente aprenda a pensar em termos de passos para solucionar os problemas, e tambm aprenda a validar sua soluo. Naturalmente as questes de eficincia da soluo vo sendo desenvolvidas com o tempo, quando o nvel de maturidade j permitir este tipo de discusso. Como continuao do presente trabalho, pretende-se desenvolver uma interface mais amigvel com o usurio, provavelmente atravs da utilizao da ferramenta Jess (implementao em java da mquina de inferncia CLIPS), bem como da implementao da estrutura de suporte a problemas cuja soluo envolva estruturas de repetio e manipulao de vetores e matrizes.
12. Bibliografia
[DUR 94] [FEI 63] DURKIN,J Expert Systems-Design and Development.Prentice-Hall, 1994. FEIGENBAUM,E.A. e FELDMAN,J. Computers and thought. McGraw-Hill, New York, 1963. GARDNER, H. Mind's New Science, The History of the Cognitive Revolution, Ed. Basic Books, 1985.
[GAR 85]
GARDNER, H. Multiple Intelligences - Theory in Practice, Ed. Basic Books, 1992. GIARRATANO,J.C. & RILEY,G. Expert Systems: principles and programming. PWS Publishing Co, Boston, 1994. LIMA, L.O. Auto Orientao da Aprendizagem. A Escola secundria moderna: organizao, mtodos e processos. Ed. Forense-Universitria, Rio de Janeiro 1976. WECHSLER, S. M. Criatividade: descobrindo e encorajando. Ed. Psy, 1993. Campinas,
[LIM 76]
[WEC 93]