Nesta seção são apresentadas algumas ferramentas estudadas que auxiliam na aprendizagem de programação.
2.3.1 Happy Portugol
O Happy Portugol é uma ferramenta que visa facilitar o ensino da lógica de programação, através de uma interface que possibilita ao usuário escrever códigos em português estruturado (portugol), converter para linguagem C++, além de possuir mecanismos para execução do programa.
A Figura 6 apresenta a interface do Happy Portugol. É simples de utilizar, possui uma área para descrever o código em portugol, área para visualizar o código em C++, área para verificação das mensagens de erros geradas no processo de compilação, algumas ferramentas para edição do texto, possibilidades de salvar e abrir códigos previamente salvos, menu de testes constituído pelas opções de transformação e execução do código gerado em C++.
A ferramenta possui uma certa carência no que tange a apresentação de mensagens de erros que sejam simples de serem compreendidas, bem como a ausência de mecanismos que permitam executar algoritmos passo a passo realizando o acompanhamento dos valores das variáveis de um algoritmo durante a sua execução.
2.3.2 CIFluxProg I e CIFluxProg II
De acordo com Santiago e Dazzi (2004), o CIFluxProg é um ambiente de programação que tem como intuito auxiliar estudantes de computação no aprendizado de lógica de programação de uma maneira fácil e intuitiva. Conciliando na ferramenta dois módulos: módulo de construção e testes de fluxograma e um módulo para construção e testes de algoritmos em Portugol.
O CIFLuxProg aborda no módulo fluxograma a possibilidade de criação de variáveis (inteiro, real, caractere, cadeia), uso de laço de repetição, entrada e saída de dados e desvio condicional. A Figura 7 demonstra o módulo de programação em fluxogramas.
Figura 7. Módulo de fluxograma
No módulo de programação em portugol variáveis como inteiro, caractere e real podem ser utilizadas, laços de repetição (enquanto, para, faça enquanto) e desvio condicional (se e senão). A Figura 8 mostra a interface do CIFLuxProg no modo de programação em portugol.
Figura 8. Módulo de programação em portugol
O CIFluxProg é um ambiente de programação completo que permite além de compilar os algoritmos, realizar execução, executar passo a passo acompanhando os valores das variáveis declaradas, porém apresenta alguns pontos negativos como não poder ser utilizado em diferentes plataformas, tornando-se restrito ao ambiente Windows e não possuir nenhum tipo de salientador de sintaxe para a gramática, o que torna mais atrativo aos alunos e facilita a identificação de palavras reservadas da linguagem.
A continuação do trabalho desenvolvido por Santiago e Dazzi (2004) é o CIFluxProg II , que tem como intuito auxiliar o professor a realizar correção de avaliação de algoritmos sem perder o padrão inicialmente utilizado, é uma extensão do CIFLuxProg incorporando maiores funcionalidades (MIRANDA, 2004), tais como:
• Campo para visualizar enunciado de questões, erros, comentários; e
• Implementação de uma nova tela que permite ao professor realizar a entrada de um novo
A ferramenta agrega ao compilador do CIFLuxProg a análise semântica e análise pragmática, além de um sistema especialista responsável pela leitura de um arquivo gerado após as análises que verifica os tipos de erros cometidos e fornece como saída a nota e comentários (MIRANDA, 2004).
2.3.3 Portugol/Plus
Conforme Esmin (1998), o Portugol/Plus é um ambiente para desenvolvimento de programas em portugol visando apoiar e estimular o ensino de lógica de programação, sem redução nos estudos teóricos.
O ambiente está constituído de duas partes principais, um editor de algoritmos que pode ser visto na Figura 9 e um compilador, sendo desenvolvido para operar sobre a plataforma DOS (Disk Operating System).
Figura 9. Ambiente de programação do Portugol/Plus
O editor de algoritmos possui apenas algumas funcionalidades básicas de um editor, como manipulação de arquivos, localização e substituição de trechos de código dentro de um arquivo, e disponibiliza menu para compilação e execução do código. O compilador do Portugol/Plus faz a
verificação da sintaxe das instruções e gera um programa objeto em Pascal que será executado através de um compilador Pascal.
2.3.4 AWTM
AWTM (Aplicação WEB para Realizar Teste de Mesa em Algoritmos) é um ambiente composto por um conjunto de ferramentas, incluindo analisador léxico e sintático, que trabalham para realizar teste de mesa sobre algoritmos e apresentar informações sobre a análise dos mesmos.
A ferramenta foi desenvolvida em Delphi 5 e implementa um componente ActiveX que pode ser disponibilizado em HTML (Hyper Text Markup Language) através da Web (MEDEIROS, 2001 apud MEDEIROS e DAZZI, 2002).
Conforme Medeiros e Dazzi (2002), além de realizar análise e teste de mesa o software apresenta possibilidade de gravar o algoritmo no banco de dados para que possa ser utilizado posteriormente pelo proprietário ou por qualquer outra pessoa interessada no código se o mesmo for salvo sem senha.
Dentre os softwares analisados, o AWTM foi o único encontrado que tem como foco a atuação em ambiente WEB, no entanto o processamento ocorre no lado do servidor e não possui nenhuma versão funcional a disposição.
2.3.5 G-Portugol
O G-Portugol é um dialeto da linguagem portugol, que tem como proposta disponibilizar um ambiente que ofereça recursos de edição, compilação, execução e a depuração de programas escritos nessa linguagem (SILVA, 2006).
De acordo com Silva (2006), a linguagem não difere fundamentalmente do portugol e apresenta alguma semelhança a linguagens como Pascal e C. Algumas características da linguagem são listadas abaixo:
• Estruturas de controle: se/ então/ senão, enquanto e para; e
• Permite o uso de funções.
Duas ferramentas são disponibilizadas para trabalhar com a linguagem G-Portugol, o GPT e o GPTEditor. Algumas características importantes que podem ser destacadas do GPT é sua função de compilar os algoritmos, capacidade de realizar a tradução dos programas para linguagem C, interpretar os algoritmos, além de possibilitar a depuração dos programas, função essa que se faz recomendável associada à ferramenta GPTEditor. A associação entre os dois módulos serve de front-end para a compilação, execução e depuração de programas, permite a inspeção da pilha de execução e variáveis, uso de Breakpoints, é um editor com suporte de cores para as palavras chaves, operadores e comentários e possibilita analisar um código em segundo plano enquanto se está escrevendo outro algoritmo. A Figura 10 exibe uma imagem do ambiente de programação GTPEditor.
Figura 10. Ambiente de programação GPTEditor Fonte: Silva (2006).
O G-Portugol por ser desenvolvido na linguagem de programação Java é um sistema multi- plataforma, porém a tentativa de avaliar a ferramenta não foi possível pelo fato da versão disponível não ser funcional.
2.3.6 Síntese das Características das Ferramentas Analisadas
Algumas das ferramentas possuíam um protótipo funcional ou informações disponíveis possibilitando o levantamento de algumas informações adicionais. A Tabela 2 agrupa algumas características importantes analisadas que serão adicionadas a este trabalho e algumas características negativas que serão evitadas.
Tabela 2. Características das Ferramentas Analisadas
Ferramenta
Característica Happy Portugol CIFluxProg
I e II AWTM G-Portugol
Ano de Produção 2004 2004 2001 2006
Linguagem de
Desenvolvimento C++ C++ DELPHI JAVA
Representação de
Algoritmo Usada Portugol Portugol e
Fluxograma Portugol G-Portugol Plataformas em que Roda Windows Windows Windows Windows/Linux Possibilidade de Executar
passo a passo Não Não Sim Sim
Ilustração de Variáveis
(Teste de Mesa) Não Sim Sim Sim
Gera Executável Sim Não Não Sim
Necessita software ou
plug-in Sim Não Sim Sim
Possui Editor Sim Sim Sim Sim
Possui Pacote Instalador Sim Sim Não Não Encontrada
Executa em Ambiente WEB Não Não Sim Não
Mensagens de Erros
Não Não Não Não Encontrada
Como pode ser visto na Tabela 2, existe uma grande carência no que tange ferramentas para uso em ambiente web, bem como grande parte das ferramentas analisadas não permite portabilidade, tendo sido desenvolvida focada em um único sistema operacional.
A portabilidade apresentada por algumas ferramentas, a ilustração de variáveis, a possibilidade de verificar os algoritmos construídos e executá-los são alguns pontos fortes encontrados nas ferramentas estudadas e que devem ser adotados neste projeto.