Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
Resumo. Historicamente, o ensino de programao tem sido considerado de difcil entendimento para os alunos por diversos motivos: falta de preparo dos estudantes, ausncia de uma didtica adequada e de ferramentas computacionais que ajudem os atores (professores e estudantes) a superarem os problemas que se apresentam no processo ensino-aprendizagem. Neste artigo discutem-se alguns aspectos das dificuldades no ensino de programao e apresenta-se o VisuAlg, programa que pretende auxiliar estudantes e professores a obter um maior entendimento e rendimento no estudo de disciplinas da rea de programao.
Palavras-Chave: Algoritmos, Software educacional, programao
1 Introduo
prtica comum nos cursos da rea de Computao se comear o ensino de programao de computadores por uma disciplina na qual so discutidos conceitos bsicos como tipos de dados, variveis e constantes, ao mesmo tempo em que so apresentados comandos de entrada e sada de dados, operadores de atribuio, aritmticos, relacionais e lgicos (abordagem tradicional). Os componentes principais da programao estruturada (sequncia, deciso e iterao) tambm so apresentados nesta disciplina, e alguns cursos introduzem conceitos mais avanados como subprogramas, vetores e recursividade. Geralmente esta primeira disciplina no usa uma linguagem de programao real como Pascal, C ou Java, preferindo codificar os algoritmos estudados em uma forma de pseudocdigo que fica entre o formalismo das linguagens de programao e a liberdade da descrio em linguagem corrente. O Portugol, nome usual desta forma de pseudocdigo, permite que o aluno se concentre inicialmente na soluo do problema proposto sem ter que dominar a sintaxe de uma linguagem de programao, mas ao mesmo tempo j apresenta conceitos como declarao de variveis, linha de cdigo, palavras-chave, comentrios, dentre outros, que sero depois transpostos com mais facilidade para ambientes reais de desenvolvimento. O restante deste artigo est organizado da seguinte forma: na seo 2 discutemse as vantagens e desvantagens da abordagem tradicional em vista das especificidades do ensino de lgica de programao. Na seo 3 so citadas ferramentas, entre as quais est o VisuAlg, que se propem a eliminar os problemas mostrados na seo 2, usando abordagens alternativas. Na seo 4 apresenta-se o software VisuAlg e suas funcionalidades. A seo 5 discute a aplicao do VisuAlg no laboratrio de programao e as vrias maneiras com que os alunos fazem uso do programa, e finalmente a seo 6 apresenta as consideraes finais do trabalho.
Um ponto positivo da abordagem tradicional a possibilidade de se usar apenas lpis e papel para se codificar um algoritmo, sem necessidade de computadores, interpretadores ou compiladores. Entretanto, para a maioria dos alunos esta estratgia se revela muito abstrata, pois no conseguem associar, por exemplo, a execuo dos comandos escreva(Digite um valor:) e leia(valor) exibio de um prompt na tela do computador e ao cursor esperando a entrada de dados, nem perceber como o fluxo de processamento ocorre na execuo de comandos de deciso e iterao. A isto se soma o conhecido fato de que o aluno ainda enfrenta o obstculo de entender o problema, criar por si uma soluo ou compreender aquela apresentada por seus colegas ou pelo professor, isto , a lgica de programao em si. Uma discusso sobre esta dificuldade e as razes para o despreparo dos alunos pode ser encontrada em Koliver, Dorneles e Casa (2004), e est fora dos propsitos deste artigo. Pelo lado do docente, pode-se ver que a programao uma disciplina com especificidades tais que exigem que seu ensino seja diferenciado, abandonando recursos estticos tais como transparncias, textos ditados, diagramas, etc. Este trabalho e o de Gomes, Henriques e Mendes (2008) propem uma mudana pela qual a abordagem bottom-up (comear pela histria das linguagens de programao, detalhes sintticos de linguagens, conceitos de programao estruturada, etc.) do ensino de programao seria substituda por uma top-down (mostrar a finalidade e utilidade de se aprender programao, e se comear logo a produzir programas).
um editor de textos com as facilidades esperadas em uma aplicao com interface grfica moderna, tais como salvar, carregar, copiar e colar, desfazer, etc.; uma linguagem de programao subjacente, com os comandos necessrios para entrada e sada de dados, estruturas de deciso if...then...else, case...of, e as estruturas de repetio for..next, while...do e repeat...until, contemplando ainda os tipos de dados bsicos (inteiro, real, literal e booleano), e variveis simples e vetores;
2
a possibilidade de se examinar a qualquer momento o contedo das variveis do programa; simulao do console do computador, pelo qual o usurio vai interagir com o pseudocdigo sendo executado. Os requisitos no-essenciais, mas desejados, seriam: suporte a subprogramas, naturalmente com variveis locais e recursividade; suporte a constantes e tipos de dados estruturados (records); suporte a leitura e escrita em arquivos sequenciais e de acesso aleatrio.
Estes ltimos requisitos so considerados no-essenciais porque na maioria cursos quando o aluno est apto a utilizar tais recursos j ultrapassou o primeiro semestre e j est programando em linguagens como C e Java. Acredita-se que as funcionalidades citadas na primeira lista possibilitam a implementao de uma vasta gama de algoritmos dos mais variados tipos, permitindo a apresentao, prtica e fixao dos fundamentos da lgica de programao.
A Figura 1 mostra a tela de abertura do VisuAlg, na qual se v a rea de digitao do pseudocdigo no centro, a memria do programa abaixo, esquerda, e o console que exibe as sadas, embaixo direita.
3
A memria uma lista que contm as variveis utilizadas no programa, e possui quatro colunas:
escopo da varivel, que pode ser global ou local, caso em que o nome da subrotina onde foi declarada exibido; nome da varivel; no caso de elementos de um vetor, o nome aparece seguido do ndice ou ndices do elemento, pois nesta lista cada um considerado uma varivel em separado; tipo da varivel, que pode ser caractere, inteiro, real ou lgico; valor da varivel.
A lista de variveis possui tambm uma colorao diferente para tipos diferentes de variveis no que tange a seu uso no pseudocdigo:
variveis declaradas na seo VAR (globais ou locais) so apresentadas em preto; variveis que representam parmetros passados por valor so apresentadas na cor verde; variveis que representam parmetros passados por referncia so apresentadas em vermelho, e na segunda coluna est tambm o nome da varivel externa qual se refere, isto , o argumento passado ao subprograma; variveis que representam o retorno de uma funo so representadas em azul e no lugar do nome est a expresso (RETORNO).
Quando um programa est sendo executado no VisuAlg existem duas opes para a interao com o usurio: o modo chamado pelo programa de modo DOS (Figura 3), no qual uma janela simula a tela de um computador em modo texto, e o modo padro (Figura 4), no qual as sadas so direcionadas ao console citado anteriormente, e as
4
entradas so obtidas atravs de uma janela de dilogo exibida quando da execuo do comando leia(). O modo DOS indicado para quando o aluno est testando seu programa, por proporcionar um maior realismo; o modo padro til para quando o professor est executando um programa passo a passo junto com os alunos para ilustrar algum conceito ou tcnica de programao, j que a tela DOS no aparece sobre a tela principal do programa. A mudana entre um modo e outro pode ser feita atravs do menu ou da barra de ferramentas do VisuAlg.
A linguagem utilizada pelo interpretador uma das muitas variaes do Portugol, amplamente utilizado nos cursos de computao no Brasil. A sintaxe parecida com a do Pascal, mas sem o ponto-e-vrgula para separar comandos. Optou-se por uma abordagem parecida com a do BASIC, com um comando por linha obrigatoriamente, para facilitar e digitao e entendimento do pseudocdigo, e tambm porque no considerada boa prtica de programao a colocao de mais de um comando por linha, o que diminui a legibilidade do cdigo. Comentrios podem ser colocados no pseudocdigo com o uso de //. As palavras reservadas e comandos do Portugol utilizado no VisuAlg podem ser encontrados em [Souza 2003]. A lista das funes pr-definidas pode ser encontrada em [Souza 2007]. A Tabela 1 apresenta um exemplo de pseudocdigo ilustrando vrias caractersticas da linguagem de programao do VisuAlg.
Tabela 1. Exemplo de pseudocdigo usando a sintaxe do VisuAlg.
algoritmo "Bubble Sort" // Fora a execuo do programa na janela DOS dos var a, b : inteiro x : vetor[1..10] de real procedimento troca( var a, b : real ) var t : real inicio t <- a a <- b b <- t fimprocedimento inicio // Leitura dos dados // Gerar numeros aleatorios entre 0 e 100, com 3 casas decimais aleatorio 0,100,3 para a de 1 ate 10 faca leia(x[a]) fimpara // Ordenao para a de 1 ate 10 faca para b de 1 ate 9 faca se x[b] > x[b+1] entao troca(x[b],x[b+1]) fimse fimpara fimpara // Impresso dos dados ordenados para a de 1 ate 10 faca escreval(a:3," - ", x[a] : 10 : 3) fimpara
6
fimalgoritmo A execuo do programa pode ser feita de trs maneiras: o modo padro, em que as instrues do pseudocdigo so interpretadas e executadas imediatamente, o modo passo a passo, comum a vrios ambientes de desenvolvimento, em que o usurio comanda a execuo do programa linha por linha, para efeitos de depurao ou, no caso do VisuAlg, para que o estudante possa examinar as variveis medida que seus valores mudam, perceber o fluxo de processamento em estruturas de deciso e repetio, etc., e o modo de animao, parecido com o modo padro, com a diferena que antes da execuo de uma linha de cdigo h uma pausa que pode variar de 0.2 segundos a 5 segundos, o que permite ao estudante acompanhar o fluxo de processamento. A mudana entre estes modos de execuo pode ser feita atravs do menu principal ou da barra de ferramentas, e tambm com comandos includos no cdigo: por exemplo, o comando timer on liga a animao, e o timer off a desliga. Durante a animao, qualquer atribuio de valor a uma varivel faz com que ela se torne visvel e destacada na memria do programa, auxiliando na explicao do funcionamento de laos, contadores, acumuladores, etc. Outras ferramentas didticas do VisuAlg associadas execuo do cdigo so os comandos pausa e debug. O primeiro funciona como um breakpoint disparado por cdigo. Quando a execuo atinge o comando pausa, independente do modo em que estiver ir para o modo passo a passo. Neste ponto o estudante poder realizar a anlise necessria em seu cdigo, e continuar a execuo comando por comando ou voltar para o modo em que estava. O comando debug tem como argumento uma expresso lgica, e interrompe a execuo do programa caso o resultado desta expresso seja verdadeiro. Funciona como um breakpoint condicional. O VisuAlg d suporte a subrotinas (procedimentos e funes) e permite o exame da pilha de ativao destas subrotinas quando a execuo est em modo passo a passo. Esta ferramenta permite ao professor ilustrar o mecanismo de chamadas de subrotinas e recursividade, por exemplo, conforme se pode ver na Figura 5.
Muitas vezes, para se examinar a eficincia de uma soluo para um problema, como nos algoritmos de ordenao, necessrio se saber quantas vezes uma determinada linha de cdigo foi executada. O VisuAlg possui uma ferramenta chamada Perfil de Execuo, que permite que esta estatstica seja analisada durante a execuo de um programa no modo passo a passo, ou logo aps o trmino da execuo. Nela, as linhas do programa so exibidas com seu nmero e contedo, e nmero de vezes que foram executadas, conforme se pode ver na Figura 6.
Concluso
As dificuldades enfrentadas no incio do aprendizado de programao e a prpria caracterstica da disciplina indicam que o ensino convencional deve ser deixado de lado e que o uso de ferramentas de auxlio ao aprendizado deve ser estudado e difundido para que o rendimento dos alunos seja melhorado. Neste contexto, desenvolveu-se o VisuAlg como uma opo mais prxima daquilo que um programador encontra em seu trabalho, ao mesmo tempo provendo ferramentas especficas para o uso no ambiente de aprendizado. O uso deste software nos estgios iniciais do ensino de programao tem-se mostrado bastante produtivo por permitir que desde o incio os estudantes tenham
8
contato com um ambiente de desenvolvimento prximo ao que encontraro em sua vida profissional, embora mais simples e usando uma linguagem de programao sem tantos recursos. Ambientes como o VisuAlg promovem a experimentao e permitem desde cedo o entendimento do funcionamento de um programa de computador. Koliver, Dorneles e Casa (2004) relatam que h indicaes de que o uso do VisuAlg (ou ferramenta similar) pode melhorar o desempenho dos estudantes, alm de ser um fator motivador. Acredita-se que estudos mais aprofundados devam ser realizados, em um universo mais amplo de estudantes, no qual o uso ou no do VisuAlg seja a nica ou uma das nicas variveis, j que sabido que o conhecimento e didtica do professor e o contedo apresentado tambm influenciam sobremaneira o resultado do processo.
Referncias Bibliogrficas
Koliver, C., Dorneles, R. V., Casa, M. E. 2004. Das (Muitas) Dvidas e (Poucas) Certezas do Ensino de Algoritmos. In: XII Workshop de Educao em Computao (WEI 2004), 2004, Salvador. Anais do XXIV Congresso da Sociedade Brasileira de Computao. p. 949-960. Gomes, A., Henriques, J., Mendes, A. J. 2008. Uma proposta para ajudar alunos com dificuldades na aprendizagem inicial de programao de computadores. In: Educao, Formao & Tecnologias; v.1. p. 93-103. Crespo, S. 1990. ILA Interpretador de Linguagem Algortmica. Endereo: http://www.exatec.unisinos.br/professores/gerador.php? professor=crespo&id_menu=434&id_submenu=189 Acesso em 21/02/2009. Almeida, E.S. 2001. AMBAP - Ambiente de Aprendizado de Programao. endereo: http://www.ufal.br/tci/ambap/ Acesso em 21/02/2009. Rapkiewicz, C. E., Falkemback, G., Seixas, L., dos Santos, N. S., Cunha, V. V., Klemann, M. 2006. Estratgias Pedaggicas no Ensino de Algoritmos e Programao Associadas ao Uso de Jogos Educacionais. RENOTE. Revista Novas Tecnologias na Educao, v. 4, n. 2, p.1-11, 2006. Gondim, H. W. A. S., Ambrosio, A. P. L. 2008. Esboo de Fluxogramas no Ensino de Algoritmos. In: WEI - Workshop sobre Educao em Computao, 2008, Belm do Par - PA. Anais do WEI 2008. p. 109-117. Mota, M. P., Pereira, L. W. K., Favero, E. L. 2008. JavaTool: Uma Ferramenta para o Ensino de Programao. In: Congresso da Sociedade Brasileira de Computao, 2008, Belm. XXVIII Congresso da Sociedade Brasileira de Computao. p. 127136. Souza, C.M., 2003. Referncia da Linguagem de Programao do VisuAlg. endereo: http://www.apoioinformatica.inf.br/visualg/refer.htm. Acesso em 21/02/2009. ______, C.M., 2007. As Funes do VisuAlg Verso 2.0. endereo: http://www.apoioinformatica.inf.br/visualg/funcoes.htm. Acesso em 21/02/2009.