Desenvolvimento de um sistema de computação algébrica multiplataforma para o auxilio do ensino de matemática 1 Victor Fernando Conti; 1Elvio Gilberto da Silva; 1Patrick Pedreira Silva; 1Rosane Maria Lima Araújo Universidade do Sagrado Coração, Bauru/SP [email protected]; [email protected]; [email protected]; [email protected] Apresentação em pôster Pesquisa Concluída Introdução A educação constitui a base de um país, sendo responsável tanto por sua sustentação quanto desenvolvimento, assim para promover o crescimento de uma nação se faz necessária uma educação de qualidade, fomentada a partir de investimentos financeiros, científicos, novas técnicas e metodologias de ensino. Boa parte da base educacional de um indivíduo é formada na infância e adolescência, através das disciplinas do ensino fundamenta e médio, dentre as quais a matemática é a que normalmente apresenta maior dificuldade de aprendizagem. Porém a mesma contribui para o desenvolvimento da capacidade de resolução de problemas, de investigação, de enfrentar novas situações, da criatividade e a criação de uma visão ampla e científica. (LINTZ, 1999). Ainda assim é frequente os professores ouvirem lamentos de alunos que não gostam de matemática, e tem dificuldades de resolverem operações risórias. (PAZ JÚNIOR, 2008). O relatório “De Olhos nas Metas” comprova que a grande maioria dos estudantes não aprende matemática como esperado. Que pode ser um grande problema, já que sendo uma área cumulativa, uma defasagem em determinado conteúdo prejudica os aprendizados futuros relacionados a este. (GONZATTO, 2012). Um dos possíveis motivos para esse desinteresse é o modelo clássico do ensino que visa a aprendizagem por repetição, sendo muito criticado pelos 1 defensores da matemática moderna que buscam ensino pela compreensão dos fundamentos lógicos. (PAZ JÚNIOR, 2008). Uma forma de promover este interesse no ensino é a utilização de recursos tecnológicos como material de apoio as aulas, sendo um deste os sistemas de computação algébrica. Estes sistemas manipulam símbolos matemáticos com as regras abstratas da matemática simbólica. (ALVES; AMARAL; MENDEIROS NETO, 2002). Manipulação esta realizada por uma determinada linguagem de programação, que não sendo ambígua permite a representação computacional de funções matemáticas. Uma das vantagens destas ferramentas é a compreensão que os alunos têm dos códigos que criam, além das respostas rápidas do computador que permitem testarem diversos aspectos de um tema. Além da diversão proporcionada, também aumenta o interesse dos alunos e promove a interação entre os mesmos. Existem ferramentas complexas que permitem a implantação de metodologias como esta em cenários universitários, porém as mesmas encontram-se longe da realidade do ensino fundamental e médio, devido aos conhecimentos prévios que requerem e a dificuldade de ensiná-las. Com base neste contexto, este trabalho propôs o desenvolvimento de um sistema de computação algébrica que possa ser utilizado para aprimorar o ensino de matemática no ensino fundamental, para isso contando com uma sintaxe própria, que seja construída visando clareza, fácil aprendizagem, e ao mesmo tempo, a facilidade para demonstrar expressões matemáticas e leitura do código. O software proposto foi desenvolvido para os sistemas operacionais Windows, e, Linux, e devido ao baixo requerimento computacional necessário sua execução é viável, mesmo em computadores mais antigos. Metodologia e desenvolvimento Primeiramente foi realizada uma análise dos parâmetros curriculares nacionais referentes aos ciclos 1, 2, 3 e 4 do ensino fundamental, de forma a verificar os conteúdos ministrados nesta etapa e realizar a elaboração da sintaxe da linguagem. 2 A sintaxe foi inicialmente criada de modo descritivo, exibindo e explicando a mesma em notação livre, para em seguida ser realizada na notação BNF (Backus Normal Form), representando-a de forma clara e consistente, auxiliando sua implementação. A etapa seguinte consistiu na modelagem do sistema, para isso foram utilizados os diagramas da UML (Unified Modeling Language). Como o sistema consiste de dois módulos, o interpretador e o editor, foram utilizados diagramas diferentes para cada módulo. Para o interpretador foi utilizado o Diagrama de Atividade, demonstrando seu comportamento, e elucidando as atividades que são realizadas para interpretar as entradas do usuário, facilitando assim sua codificação. Já para o editor, foram realizados os Diagramas de Caso de Uso e de Atividades. O primeiro demonstrando de forma gráfica as possíveis interações dos usuários com o sistema, enquanto que o segundo elucida as ações do usuário de forma mais específica. Por fim foi escolhida a técnica utilizada para o desenvolvimento do compilador, a recursiva descendente, que interpreta o código derivando as expressões mais gerais, para sub-expressões específicas, de maneira recursiva, para então interpretá-las. Para o desenvolvimento do interpretador foi escolhida a linguagem de programação C, devido a aspectos que a torna ideal para o desenvolvimento deste tipo de programa, como por exemplo: o fato da linguagem apresentar poucas restrições, ser amigável e estruturada, oferecer portabilidade, geração de códigos executáveis compactos e rápidos, interação com o sistema operacional, confiabilidade e simplicidade. O interpretador foi dividido em três módulos que são unidos para gerar o programa executável. O “parser”, que executa operações aritméticas; a “biblioteca”, que contêm as bibliotecas internas do sistema, e as localizações e chamadas das externas; e o “interpretador” em si, que trata os tokens, e executa os comandos da linguagem. As bibliotecas são separadas entre as internas e as externas, que são programas compilados e unidos separadamente, chamados pelo interpretador, passando os parâmetros e obtendo o valor de retorno que é utilizado pelo mesmo, de forma a flexibilizar os parâmetros e facilitar a manutenção das bibliotecas. 3 Em seguida foram criados dois editores de texto, um utilizando a linguagem C++ com o framework QT visando maior desempenho do que usabilidade. E outro criado em Java com o framework JavaFX enfocando maior usabilidade do que desempenho. Este último além de utilizar uma tecnologia mais pesada, também utiliza técnicas de programação mais lentas, mas que facilitaram o desenvolvimento, como é o caso das expressões regulares. Resultados e Discussão O interpretador foi criado para ambiente multiplataforma, sendo compilado e testado com sucesso para os sistemas operacionais Windows e Linux. As funções escolhidas para a biblioteca da linguagem foram: area_cilindro area_circulo area_cubo area_esfera area_paralelepipedo area_piramide_3 area_piramide_4 area_triangulo media mediana moda pi volume_paralelepipedo volume_cilindro volume_piramide_4 volume_piramede_3 volume_cubo volume_esfera As mesmas foram escolhidas tendo como base os objetivos apresentados nos 3º e 4º Ciclos dos Parâmetros Curriculares Nacionais de matemática. 4 Por sua vez a interface em Java pode ser vista na Figura 1, onde é executado um algoritmo fatorial na linguagem desenvolvida. Enquanto que a interface em C++ é apresentada na Figura 2, executando um teste condicional. Figura 1 - Interface principal executando um algoritmo fatorial. Fonte: Elaborada pelo autor. 5 Figura 2 - Interface secundária executando um teste condicional. Fonte: Elaborada pelo autor. Considerações Finais Durante a pesquisa realizada, foi possível constatar as vantagens que a utilização de ferramentas tecnológicas pode oferecer aos professores, como forma de auxilio ao ensino, permitindo a demonstração da matéria de forma mais atrativa, aumentando a interação com o conteúdo, e a socialização entre os alunos, gerando uma aproximação da realidade dos mesmos, e em alguns casos até promovendo a diversão. Sendo a matemática uma das áreas de menor interesse por parte dos alunos, pode ser uma das maiores beneficiadas por estas ferramentas, uma vez que uma possível solução são os sistemas de computação algébrica. Porém existem outras ferramentas que podem auxiliar o ensino de matemática, dentre elas: sistemas de simulação computacional, ferramentas de modelagens e jogos educativos. 6 Consequentemente existe uma vasta área de pesquisa que pode ser utilizada para auxiliar o ensino de matemática, entretanto um empecilho é a resistência que alguns professores apresentam quanto à adoção destas ferramentas em sala de aula, que pode ser vencida com aulas sobre a utilização da tecnologia e demonstrações de suas vantagens. PALAVRAS-CHAVE: Sistema de computação algébrica; auxílio no ensino de matemática; interpretadores; ferramentas de auxílio ao ensino, linguagens de programação Referências ALVES, D. T.; AMARAL, J. V.; MENDEIROS NETO, J. F. Aprendizagem de electromagnetismo via programação e computação simbólica. Revista Brasileira de Ensino de Física, São Paulo, v. 24, n. 2, p. 201-213, jun. 2002. Disponível em: <http://www.scielo.br/pdf/rbef/v24n2/a17v24n2.pdf>. Acesso em: 24 mai. 2012. GONZATTO, M. Por que 89% dos estudantes chegam ao final do Ensino Médio sem aprender o esperado em matemática?. 2012. Disponível em: <http://zerohora.clicrbs.com.br/rs/geral/noticia/2012/10/por-que-89-dos-estudanteschegam-ao-final-do-ensino-medio-sem-aprender-o-esperado-em-matematica3931330.html>. Acesso em: 24 mai. 2012. LINTZ, R. G. História da Matemática. 3. ed. Blumenau: FURB, 1999. PAZ JÚNIOR, G. T. As dificuldades no Ensino de Matemática. 2008. Disponível em: <http://www.webartigos.com/artigos/as-dificuldades-no-ensino-dematematica/5488/>. Acesso em: 24 mai. 2012. 7