Desenvolvimento de um sistema de computação algébrica multiplataforma para o auxilio do ensino de matemática

Documentos relacionados
DESENVOLVIMENTO DE UM SISTEMA DE COMPUTAÇÃO ALGÉBRICA MULTIPLATAFORMA PARA O AUXÍLIO DO ENSINO DE MATEMÁTICA

Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Introdução à Computação Parte 2

DESENVOLVIMENTO DE UM APLICATIVO MÓVEL (JOGO) PARA AUXÍLIO NO ENSINO DE MATEMÁTICA. Beatriz Polita Franchin 1, Elvio Gilberto da Silva 2

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

INFORMÁTICA: Informação automática

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Introdução ao Python. Programa Computacional

Sistema Computacional

Métodos de implementação de linguagens. Kellen Pinagé

Estrutura de Dados e Lógica de Programação. Cátia Alves Marcelo Nunes 102 h/a 17/08/2015 a 12/12/2015

Ferramentas de Suporte

IV. CONTEÚDO PROGRAMÁTICO

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

AMBIENTE DIDÁTICO GRÁFICO PARA A COMPREENSÃO DE LÓGICA DE PROGRAMAÇÃO. Rodrigo Ferreira da Silva

1 Introdução à Programação O que é? Para que serve?... 1

Introdução a Programação

Paradigmas de Programação

JAVA Express com Lógica. Subtítulo

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

PROGRAMAÇÃO I. Introdução

Algoritmos Computacionais

Aula 01 Conceito de Banco de Dados e SGBD

Algoritmos Fundamento e Prática

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO DEPARTAMENTO DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS LABORATÓRIO DE PROCESSADORES I

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

PLANO DE UNIDADE DIDÁTICA- PUD

Noções de sistemas de computação

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

Introdução à Computação

VISEDU-CG: Aplicação Didática para Visualizar Material Educacional, Módulo de Computação Gráfica

Biblioteca de auxílio ao uso de elementos gráficos

SISTEMA DE GERENCIAMENTO DO CENTRO DE PRÁTICAS CLÍNICAS E CIRÚRGICAS DO IFC CAMPUS ARAQUARI

Linguagens de Programação Classificação

CP Compiladores I Prof. Msc.. Carlos de Salles

1.1 Linguagens de Programação

Programação Estruturada Aula - Introdução a Linguagem de Programação

Professora Orientadora do Departamento de Ciências Exatas e Engenharias. 4

IFSC/Florianópolis - CTI - Projeto de Sistemas - prof. Herval Daminelli

Programação I A Linguagem C. Prof. Carlos Alberto

Engenharia de Software

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Processos de software

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

Introdução à Computação Engenharia Civil

CONCEITOS DE LINGUAGENS DE PROGRAMAÇÃO

Análise e projeto de sistemas

Programação de Computadores

ENGENHARIA DE SOFTWARE

Compiladores. Eduardo Ferreira dos Santos. Fevereiro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 38

Introdução à Análise e Projeto de Sistemas

Implementação de uma biblioteca gráfica multiplataforma utilizando OpenGL e GLFW.

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

Algoritmos e Programação

Plano de Trabalho Docente Ensino Técnico

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:

Autômatos e Linguagens

Introdução à Programação

MC-102 Aula 01. Instituto de Computação Unicamp

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

Paradigmas de Linguagens

Programação Python. Nesta aula... 1 Programação. 2 Python. Operadores e Operandos Variáveis, Expressões, Instruções Funções Ciclos Comentários

Apresentação. Informação geral + Conceitos iniciais

APLICATIVO MÓVEL PARA TREINAMENTO AUDITIVO PARA IDENTIFICAÇÃO DE ALTERAÇÕES DE FALA DECORRENTES DA FISSURA LABIOPALATINA

Computação Eletrônica

Programação de Computadores I Introdução PROFESSORA CINTIA CAETANO

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Programação Estruturada e OO Aula 1.2 Introdução a Paradigmas de Programação. Prof. Bruno Moreno

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

XVI Encontro de Iniciação à Docência Universidade de Fortaleza 17 a 20 de outubro de 2016

Instituto Federal de Educação, Ciência e Tecnologia do Sul de Minas Gerais Câmpus Muzambinho. Muzambinho /MG.

Questões de Paradigmas de Programação Matéria: Prova 1 4ª EDIÇÃO

FERRAMENTA DE AUXÍLIO AO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE INTEGRANDO TECNOLOGIAS OTIMIZADORAS

TÍTULO: OBJETO DE APRENDIZAGEM: DESENVOLVIMENTO DE UMA PROPOSTA PARA O ENSINO DO DIAGRAMA DE CASO DE USO

Interação Humano-Computador Interface e Estilos de Interação PROFESSORA CINTIA CAETANO

Programação de Computadores I. Linguagem C Estruturas de Repetição

AULA 1 INTRODUÇÃO AO JAVA

Linguagens de Programação

Programação Estruturada Orientada a Objetos

Protótipo de uma ferramenta de apoio para desenvolvimento de sistemas web para WebIntegrator

1 a Aula. Mestrado em Engenharia Física Tecnológica

Linguagens de Programação

DESCOMPLICANDO A PROGRAMAÇÃO EM LINGUAGEM C. UMA SOLUÇÃO PARA DEPURAÇÃO SIMPLES DE CÓDIGOS. GOMES, M. S. ¹, AMARAL, E. M H. ¹

Conceitos Básicos. Fundamentos de Programação de Computadores

Linguagem C Estruturas de Repetição

Estruturas de Dados Apresentação

Compilador Educativo VERTO: ambiente para aprendizagem de compiladores

Plano de Trabalho Docente 2017 Ensino Técnico

Introdução à Computação

Paradigmas de Programação

Introdução à Computação

Paradigmas de Linguagens

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO PRÉ AULA DIAGNÓSTICO 22/10/2015. Analise o algoritmo a seguir e depois assinale a alternativa correspondente:

Transcrição:

Desenvolvimento de um sistema de computação algébrica multiplataforma para o auxilio do ensino de matemática 1 Victor Fernando Conti; 1 Elvio Gilberto da Silva; 1 Patrick Pedreira Silva; 1 Rosane Maria Lima Araújo Universidade do Sagrado Coração, Bauru/SP victorfconti@gmail.com; egsilva@usc.br; patrick.silva@usc.br; rosane.araujo@usc.br 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-estudantes- chegam-ao-final-do-ensino-medio-sem-aprender-o-esperado-em-matematica- 3931330.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