• Nenhum resultado encontrado

RELATÓRIO DO ESTUDO SOBRE AMBIENTES DE PROGRAMAÇÃO DE COMPUTADORES

N/A
N/A
Protected

Academic year: 2021

Share "RELATÓRIO DO ESTUDO SOBRE AMBIENTES DE PROGRAMAÇÃO DE COMPUTADORES"

Copied!
14
0
0

Texto

(1)

RELATÓRIO DO ESTUDO SOBRE AMBIENTES DE PROGRAMAÇÃO DE COMPUTADORES

Este estudo constitui-se parte de um projeto de pesquisa realizado no Instituto Federal do Rio grande do Sul, campus Erechim, no ano de 2016/2017 intitulado Um estudo sobre Funções Matemáticas e Programação de Computadores, coordenado por mim e com o auxílio dos bolsistas de iniciação científica Edson Farias1 e Ana Paula Cervinski2, ambos estudantes da instituição. Contou também com a colaboração de bolsistas de iniciação científica do Grupo de Pesquisa em Cultura Digital (GEPID) da Universidade de Passo Fundo (UPF), no uso de alguns dos ambientes de programação na qual foram estudados.

Neste texto, apresentamos os achados referente a um dos objetivos do projeto, que era o de analisar alguns ambientes de programação que utilizam as linguagens mais comuns no meio computacional e verificar qual ambiente seria mais interessante de ser utilizado na minha pesquisa de doutorado.

Diante de tantas opções de softwares para se trabalhar com programação, procuramos selecionar um ambiente para cada tipo de linguagem: C e C++, Java, Pascal, LOGO e blocos. Sendo que para este último tipo, selecionamos dois ambientes. No Quadro 1 é possível visualizar o ambiente e sua linguagem.

Quadro 1 - Ambientes de programação e suas linguagens.

Ambiente de programação Linguagem de programação

DevC++ C e C++ NetBeans Java PascalZin Pascal SuperLogo LOGO Alice em blocos Scratch em blocos Fonte: os autores.

1 Discente do curso de Engenharia Mecânica, foi bolsista de iniciação científica no período de maio a agosto de 2016.

2 Discente do curso de Engenharia Mecânica, foi voluntária do projeto de maio a agosto de 2016 e assumiu como bolsista de iniciação científica de setembro de 2016 a janeiro de 2017.

(2)

É importante destacar que todos os ambientes selecionados são interessantes e cada um possui ferramentas diferenciadas que atendem a objetivos específicos dos seus usuários. Neste sentido, precisávamos escolher um ambiente a partir de nossos objetivos de pesquisa. Assim, para verificar a potencialidade de cada ambiente de programação, testamos a resolução de um problema que envolvesse Funções Matemáticas. E no teste, atentamos a aspectos como facilidade/dificuldade na escrita dos códigos e forma de visualização do resultado da programação.

Na sequência deste texto, apresentamos cada um dos ambientes, sem nos deter muito em aspectos técnicos, a partir da tentativa de realizar uma programação para modelar o seguinte problema: Um taxista cobra R$ 1,50 por km rodado, além de R$ 5,00 fixos pela bandeirada. Quanto irá cobrar de um cliente que andar 50 km em seu táxi?3

Para o estudante resolver este problema, seja no caderno ou usando um recurso tecnológico com programação, precisará realizar operações com as informações numéricas dadas no problema. Ele pode modelar o problema numa função do tipo f(x) = 1,5 x + 5, e depois substituir a variável x por 50, obtendo f(x) = 80. Ou pode simplesmente realizar as operações 1,5*50+5 = 80 de forma direta, sem montar a expressão com variáveis. Porém, esta última forma de resolver, fica limitada a apenas um valor de entrada para a quilometragem, os 50 km. Enquanto a primeira forma, permite ampliar o cálculo do valor pago para o táxi a outros valores de entrada, além de favorecer uma interação entre o programa e o usuário. Assim, para testar os ambientes e suas ferramentas, faremos as programações conforme a primeira forma descrita.

DevC++

O DevC++, ou DevCpp, é um ambiente de desenvolvimento integrado livre que suporta as linguagens de programação C e C++. É um dos ambientes mais utilizados para quem está aprendendo a linguagem C/C++ ou mesmo para quem já está num nível avançado. Na versão 5.11 que usamos, há tradução para o português, no entanto, seus códigos continuam em língua inglesa. O programador, então, precisa conhecer sua estrutura e as palavras/comandos que devem ser escritas para elaborar os algoritmos.

(3)

Na Figura 1 podemos ver o código fonte e a execução da programação do problema de matemática, em que o usuário inicia o programa a partir de alguns comandos em inglês e com o símbolo da chave. Após digitada a chave, usa-se o comando “float” para definir as variáveis. Neste caso, usamos a palavra “km” para a variável entrada (x) e a letra “P” para a de saída (y) que seria o preço pago pela corrida de táxi. Em seguida, usa-se o comando “count << >> endl;” para dar uma ordem ou fazer uma pergunta ao usuário. Sendo que a resposta do usuário é associada a uma das variáveis pelo comando “cin >> ;”.

Depois estabelece-se a relação entre as duas variáveis inserindo a lei da função a partir das palavras que usou para cada variável: P = 1,5*km + 5. Quando o programa é compilado e depois executado, aparece uma janela preta (prompt de comando) em que o usuário necessita digitar a quilometragem e clicar em enter, para então, o software dar o valor do preço. Na Figura 1, inserimos o valor de 50 para a quilometragem e obtivemos o valor de 80 para o preço a pagar.

Figura 1 - Tela do ambiente DevC++ com o código fonte e a programação executável referente ao problema sobre Funções

(4)

PascalZim

O PascalZim é um ambiente de programação que suporta a linguagem Pascal. Foi desenvolvido em meados de 2000 pelo Departamento de Ciência da Computação da Universidade de Brasília para ser usado como ferramenta de apoio ao ensino e a aprendizagem da linguagem pascal4. Na versão 6.0.3.1 que usamos, as abas de ferramentas estão em português, mas seus códigos permanecem em língua inglesa, assim como o DevC++. Isso certamente acontece porque a linguagem Pascal e C/C++ não é usada em outra língua a não ser no inglês. O programador, então, precisa conhecer também a sintaxe e os comandos para elaborar os algoritmos.

Na Figura 2 vemos o código fonte e o programa executável referente ao problema sobre Funções. Neste ambiente, inicia-se com o comando “Problem” onde escrevemos um nome para o programa. Depois, define-se as variáveis a partir do comando “var” na segunda linha e, no nosso caso, associamos as palavras “km” e “P” para as variáveis, respectivamente, quilometragem e preço a pagar. Em seguida, usa-se o comando “write ()” para dar uma ordem ou fazer uma pergunta ao usuário. E a resposta do usuário é associada a uma das variáveis pelo comando “read()”. O próximo passo é estabelecer a relação entre as duas variáveis a partir da lei da função: P:=1,5*km+5. Ao compilar e executar o programa, digitamos 50 para a ordem dada e obtivemos 80 reais.

(5)

Figura 2 - Ambiente de programação PascalZim com o código fonte e a programação executável referente ao problema sobre Funções

Fonte: os autores.

NetBeans

O NetBeans é um ambiente de desenvolvimento integrado gratuito e de código

aberto, que permite a criação de aplicações para computadores, dispositivos móveis e internet. É escrita em Java, mas pode suportar qualquer outra linguagem de programação como C, C++, Ruby, PHP, XML e linguagens HTML. E semelhante ao DevC++ e ao PascalZim, tem seus comandos em língua inglesa e o usuário necessita conhecê-los previamente para programar.

Para iniciar uma programação no NetBeans, digita-se “public class” seguido no nome do programa e abre-se uma chave, conforme a Figura 3. Aqui, as variáveis são inseridas a partir do comando “double” e os procedimentos realizados seguem o mesmo padrão realizado nos ambientes anteriores.

(6)

Figura 3 - Ambiente de programação NetBeans com o código fonte e a programação executável referente ao problema sobre Funções

Fonte: os autores.

SuperLogo

O SuperLogo 3.05 é um ambiente de programação em linguagem LOGO totalmente em português, desenvolvido pelo NIED da UNICAMP. Para se programar neste ambiente é necessário conhecer previamente seus comandos e sua sintaxe para criar os algoritmos e não precisa realizar compilação, apenas mandar executar. Tem funcionalidades matemáticas, mais especificamente na geometria plana e geometria analítica, em que a tartaruga realiza desenhos com riscos e giros a partir de sua posição num plano cartesiano, conforme a criatividade de seu usuário. É um ambiente projetado para crianças aprenderem a programar. É possível trabalhar com variáveis relacionadas a medidas de comprimento ou a giros. Na Figura 4 temos a programação de um quadrado que foi definido com a medida do lado

5 Mais informações em: <http://projetologo.webs.com/slogo.html> e http://www.nied.unicamp.br/oea/mat/LOGO_IMPLICACOES_bette_nied.pdf

(7)

“x”. Usou-se o comando “aprenda” para que tartaruga guarde na memória o que significa “quadrado”. E, para inserir a variável, digita-se “:x”. Depois procede-se a digitação dos comandos que desenham o quadrado “repita 4 [pf :x pd 90]”. Na execução do programa, o usuário digita “quadrado” seguido de um valor qualquer para seu lado e a tartaruga realiza o desenho. Na Figura 4 foi desenhado quadrados com os valores 50, 100, 150 e 200.

Os recursos do SuperLogo, ou qualquer outro ambiente com a linguagem LOGO, são limitados a desenhos na tela realizados pela tartaruga. Não há um retorno sobre valores numéricos a partir de cálculos matemáticos. Tentamos fazer com que a tartaruga desse um retorno numérico a partir de uma operação, mas não conseguimos. Se mandar ela calcular uma adição ou multiplicação, precisa dizer para andar ou girar o valor resultante. E neste sentido, o ambiente se torna inadequado para o que procuramos.

Figura 4 - Tela do ambiente SuperLogo com a programação e a execução de um quadrado a partir de uma variável para a medida do lado.

. Fonte: a autora

Alice

O Alice6 é um ambiente de programação em 3D, criado pela Carnegie Mellon University para iniciantes em programação. Permite a criação de filmes animados e jogos de

(8)

video game simples, em que o usuário insere objetos 3D (pessoas, animais, veículos, etc) no seu mundo virtual e programa movimentos, diálogos e sons entre eles. A programação é feita por meio de blocos pré-programados a serem arrastados e organizados na aba “myFirstMethod”. E, após a compreensão da lógica da organização, os programas criados não terão os erros de sintaxe tão comuns nas linguagens em texto, em que a falta de um ponto e vírgula faz toda a diferença. Assim como o SuperLogo não precisa fazer compilação, pois possui a compilação just time, necessitando apenas fazer a execução do programa criado.

Na Figura 5, temos a tela do Alice 3.2 (versão que analisamos) e é possível observar que o ambiente está traduzido para o português, mas possui ainda textos em inglês, que podem trazer algum tipo de dificuldade aos usuários menos experientes. Observamos que os comandos estão divididos em dois tipos: procedimentos e funções. Na aba procedimentos estão os comandos básicos para as ações dos personagens como fala, pensamentos, posição, tamanho, aparência, áudio, etc. Na aba funções, estão blocos que se encaixam nos blocos dos procedimentos e fornecem detalhes mais específicos ao comando. Também observamos que é possível realizar operações matemáticas e fazer a modelagem para o problema sobre Funções.

Para iniciar a programação, escolhemos um fundo para a animação (neve) e uma personagem (boneca de neve, snowWoman). Usamos o bloco “dizer” para a personagem se apresentar e solicitar uma resposta do usuário e o bloco “variável” para associar tal resposta a uma variável que denominamos “km”, conforme estão nas três primeiras linhas da programação da Figura 5. Depois de novamente inserir uma frase da personagem, usamos de novo o bloco “variável”, que chamamos de “preço”, para associar um valor numérico resultante das operações que constam no problema. No final, usamos o comando “dizer” para que a personagem informe o valor pago pela corrida. Parte da execução da animação pode ser observada na Figura 6.

(9)

Figura 5 - Tela do Alice com a programação referente ao problema sobre Funções.

Fonte: os autores.

Figura 6 - Execução da programação referente ao problema sobre Funções

Fonte: a autora.

É importante destacar, que para inserir as operações de multiplicação e adição na quinta linha da programação, não foi necessário arrastar blocos, pois tais operações não estão nos blocos disponíveis. Após inserir o bloco “variáveis” e definir o nome para esta variável, clica-se na seta amarela ao lado do valor inicial dado para nossa variável, clicamos em

(10)

“matemática” e teremos acesso as operações disponíveis no ambiente, conforme o exemplo mostrado na Figura 7.

Figura 7 - Inserção de operações matemáticas às variáveis.

Fonte: a autora

Scratch

O Scratch é um ambiente de programação criado em 2007 pelo grupo Lifelong Kindergarten no Media Laboratory do Massachusetts Institute of Technology (MIT), liderado por Mitchel Resnick7. O ambiente permite a criação de estórias, jogos, simulações e operações matemáticas. A programação também é feita em blocos a serem arrastados, como no Alice, no entanto, precisam ser encaixados entre si. Isso ajuda a perceber quando um comando pode ou não ser associado a outro. Não vamos nos deter muito em detalhes sobre o Scratch e suas ferramentas neste texto, porque o fizemos no capítulo 3.5 da tese. Focaremos na realização do programa referente ao problema sobre o táxi.

Na Figura 8, podemos ver a tela completa do Scratch com duas programações diferentes para o mesmo problema, na parte direita, e o início da execução da programação 1, no canto superior esquerdo. Para realizar qualquer programação no Scratch é necessário arrastar os blocos localizados na aba “Scripts” para a área que ocupa a parte direita da tela do ambiente. E, para iniciar qualquer programa é necessário inserir primeiramente algum evento, ou seja, é preciso um bloco que dê a instrução ao usuário de como iniciar. Dessa forma, escolhemos o bloco “quando clicar em [desenho da bandeira verde]” para

(11)

programação 1 e o bloco “quando a tecla espaço for pressionada” para a programação 2, ambos da aba “Eventos” dentro da aba “Scripts”. Assim, é possível realizar dois programas diferentes no mesmo arquivo que funcionarão a partir do comando do usuário, de forma independente um do outro.

Figura 8 - Tela do Scratch com os dois tipos de programação para o problema do táxi e o início da execução do programa 1

Fonte: a autora

Para usarmos no programa o valor numérico dado pelo usuário, é preciso fazer-lhe uma pergunta. Para isso, usamos o bloco “pergunte … e espere a resposta” da aba “Sensores” nos dois programas. A resposta do usuário, pode ser associada a uma variável ou não, e isso faz com que os dois programas se diferenciem no processo, mas não no resultado. No programa 1, criamos duas variáveis “km” e “P”, na aba “variáveis”, e associamos a resposta do usuário à variável “km”, encaixando o bloco “resposta” no espaço retangular do bloco “muda km para [resposta]”. Depois, associamos a operação “1.5*km + 5” à variável “P”. Isso pode ser observado na sequência de imagens da Figura 9.

Para realizar o programa 2 foi mais simples pois usamos menos comandos. Não foram criadas variáveis e usou-se a resposta do usuário para realizar diretamente o cálculo, conforme pode ser observado na Figura 10. Ainda, na aba “Operadores” do Scratch, assim como no Alice, é possível utilizar vários tipos de operações o que possibilitaria a modelagem de diferentes Funções Matemáticas, conforme a Figura 11.

(12)

Figura 9 - Blocos usados na programação 1

Fonte: os autores.

Figura 10 - Blocos usados na programação 2

Fonte: os autores.

(13)

Fonte: os autores.

A programação 2 revela uma forma diferente de organizar o raciocínio, cujo resultado se mantém o mesmo da programação 1. Na Figura 12 podemos ver a execução idêntica dos dois programas. No entanto, há situações em que a criação de variáveis ajuda na organização dos dados, principalmente quando há várias informações envolvidas no problema. Usar ou não um recurso do Scratch vai depender da necessidade e do conhecimento que o programador tem de suas ferramentas. Assim, requer, bem como os outros ambientes, o conhecimento prévio de seus comandos.

Figura 12 - Sequência da execução tanto da programação 1 como da programação 2.

(14)

Após a realização destas programações, percebemos que todos os ambientes analisados, com exceção do SuperLogo que não permitiu a realização da modelagem do problema, apresentam um ordenamento de comandos semelhantes. Como vimos, é necessário inserir um comando para iniciar o programa seguido de um comando que faça uma pergunta ao usuário ou dê uma ordem, para então, associar a resposta dada à uma variável. Depois realiza-se o cálculo com este valor fornecido pelo usuário e retorna-se o resultado para o mesmo.

Além disso, vemos que os conceitos matemáticos envolvidos na resolução do problema, como por exemplo, variáveis, domínio e imagem, dependência e independência, correspondência biunívoca, etc., aparecem nestes ambientes de uma forma concretizada. Os estudantes estariam criando seus micromundos (PAPERT, 1985, 2008) e manifestando os conceitos e teoremas em ação (VERGNAUD, 1996b, 2009) sobre o conteúdo matemático de Funções.

Dado o exposto, acreditamos que o Scratch apresenta um diferencial para os estudantes aprenderem programação e matemática. Pois, é um ambiente de compilação just time, agilizando o feedback para o usuário. Sua linguagem de programação é em blocos, facilitando o acesso aos comandos e evitando erros de sintaxe. Esta versão é totalmente em português, evitando problemas com o entendimento da língua. Os tipos de comandos são diferenciados pela cor e pelo tipo de encaixe, o que facilita a montagem dos algoritmos. E possibilita a realização de simulações envolvendo diversos conceitos matemáticos e físicos, bem como, apresenta um visual gráfico interessante. Por fim, tendo em vista nosso apreço pelo que o Scratch oferece aos usuários, optamos por utilizá-lo para a realização da pesquisa de doutorado.

Referências

Documentos relacionados

Com o uso do biodigestor os gases promotores do efeito estufa, como o metano e o carbônico, não são mais liberados naturalmente para a atmosfera, ao contrário, ele é conduzido

O mesmo pode ser relatado por Luz &amp; Portela (2002), que testaram nauplio de Artemia salina nos 15 pri- meiros dias de alimentação exógena para trairão alcançando

A placa EXPRECIUM-II possui duas entradas de linhas telefônicas, uma entrada para uma bateria externa de 12 Volt DC e uma saída paralela para uma impressora escrava da placa, para

Data allowed to retrieve information on humor definition; its applicability as a nursing intervention; humor as a tool to improve nurse-patient communication and relationship;

No cenário apresentado, o objetivo deste estudo foi analisar a relação da qualidade de vida com problemas de saúde mental (estresse, Síndrome de Burnout e depressão) em

insights into the effects of small obstacles on riverine habitat and fish community structure of two Iberian streams with different levels of impact from the

The challenges of aging societies and the need to create strong and effective bonds of solidarity between generations lead us to develop an intergenerational

O relatório encontra-se dividido em 4 secções: a introdução, onde são explicitados os objetivos gerais; o corpo de trabalho, que consiste numa descrição sumária das