Você está na página 1de 7

O Processo de Ensino-Aprendizagem de Fundamentos de

Programação: Uma Visão Crítica da Pesquisa no Brasil


José Carlos Rocha Pereira Júnior, Clevi Elena Rapkiewicz

LEPROD - Universidade Estadual do Norte Fluminense (UENF)


Campos dos Goytacazes – RJ – Brasil
{zeca, clevi}@uenf.br
Abstract. The programming basis teach-learning process has demonstrated
difficult for students and teachers so that is essential to develop researches for
its improvement. In this article a critical vision of the sensitization of the
researchers in relation to this thematic one from made bibliographical survey
in annals of last the five years of the Workshop de Educação em Computação
(WEI) and Simpósio Brasileiro de Informática Educativa (SBIE) is presented.
It is verified that this is always a present subject in at least one of the events
and is come back to separately deal with tools and teaching strategies.
Resumo. O processo de ensino-aprendizagem de fundamentos de
programação tem se demonstrado difícil para alunos e professores de forma
que é imprescindível desenvolver pesquisas para sua melhoria. Neste artigo é
apresentada uma visão crítica da sensibilização dos pesquisadores em relação
a esta temática a partir de levantamento bibliográfico feito nos anais dos
últimos cinco anos do Workshop de Educação em Computação (WEI) e do
Simpósio Brasileiro de Informática Educativa (SBIE). Verifica-se que este é
um tema sempre presente em pelo menos um dos eventos e está voltado para
tratar ferramentas e estratégias de ensino separadamente.
Palavras-chaves: ensino de programação, pesquisas em programação.

1. Introdução
Em cursos de computação e informática uma das metas está definida em torno da
capacidade do aluno apresentar soluções para diversas classes de problemas encontradas
no cotidiano das pessoas, das organizações e de muitos outros elementos.
Através de um programa busca-se um mecanismo de obtenção de soluções para um
conjunto de problemas e o processo, ou seja, as várias instruções estruturadas
logicamente que o computador executa para chegar a tais soluções são definidas por
meio de uma linguagem de programação.
Assim, programação de computadores é uma disciplina presente em qualquer curso de
computação e informática. Em caráter introdutório preocupa-se em fornecer aos alunos
as bases necessárias para o desenvolvimento da lógica de programação e, em seu
estudo, representar o raciocínio envolvido através de algoritmos nexos e corretos.
Durante o processo de ensino-aprendizagem de fundamentos de programação nota-se
que grande parte dos alunos apresenta dificuldades em assimilar as abstrações
envolvidas. Esta disciplina tem um dos maiores índices de reprovação em todas as
instituições de ensino brasileiras, o que torna ponto de reflexão por parte dos
professores preocupados com a melhoria da qualidade no processo, ratificando a
necessidade de alterações didáticas e metodológicas de apresentação [RODRIGUES
2002].
Este artigo tem por objetivo apresentar uma visão crítica da pesquisa relativa ao
processo de ensino-aprendizagem de programação no Brasil a partir da análise dos anais
do maior evento nacional que envolve Educação e Informática, o Workshop de
Educação em Informática (WEI). Também foi incluído o Simpósio Brasileiro de
Informática na Educação (SBIE). Esta opção foi feita partindo da hipótese de que os
pesquisadores têm se preocupado com soluções computacionais para o processo em
diversas áreas de domínio muitas vezes negligenciando a própria área de Computação e
Informática.
O artigo está dividido em três seções: a primeira apresenta uma breve identificação de
alguns problemas associados ao processo citado; a segunda, uma análise crítica da
sensibilização dos pesquisadores com base nos anais do WEI e SBIE. Por fim,
considerações finais são feitas.

2. Alguns Desafios do Processo de Ensino-Aprendizagem de Fundamentos


de Programação
A origem dos problemas associados a este processo é bastante questionável uma vez
que envolve ambas as classes de atores, ou seja, tanto os alunos quanto os professores,
as metodologias aplicadas e até certo grau de dificuldade intrínseco da área.
Muitos dos alunos não conseguem desenvolver o raciocínio lógico necessário para o
posterior desenvolvimento de programas. O nível de dificuldade no processo faz com
que haja baixa motivação dos alunos, apatia, baixa auto-estima culminando com muita
evasão e reprovação [RODRIGUES 2002; SCHULTZ 2003; CHAVES DE CASTRO et
al 2003; DELGADO et al 2004].
A questão chave no processo é justamente como motivar o aluno, fazê-lo tomar gosto
pelo aprendizado procurando superar suas dificuldades como a falta de habilidades
matemáticas [HENDERSON 1987; KOLIVER, DORNELES e CASA 2004;
WINSLOW 1996; BAEZA-YATES 1995].
O modo tradicional de apresentar o conteúdo de tal disciplina se faz de forma expositiva
concentrando-se na solução de problemas. O professor apresenta o conteúdo através do
chamado Portugol (pseudo-código), apresenta alguns exemplos e propõe exercícios para
a turma [NOBRE e MENEZES 2002]. Segundo BORGES [2000], o modo tradicional
não consegue facilmente motivar os alunos a se interessar pela disciplina, pois não é
claro para os alunos a importância de certos conteúdos para sua formação.
O relacionamento entre o professor e os alunos é um fator importante para a motivação.
O aluno muitas vezes se torna mais interessado em um ambiente descontraído e
colaborativo do que em um ambiente “instrucionista1” onde o professor preocupa-se em
mostrar o que sabe. Além disso, uma metodologia pedagógica adequada contribui para
o aprendizado, porém, como afirmam SANTOS, DIRENE e GUEDES [2003], poucas
metodologias são universalmente aceitas e, mesmo as mais consolidadas não
formalizam um processo claro de procedimento de ensino, deixando muitos aspectos

1
Segundo CIDRAL [2000], a abordagem instrucionista reproduz um modelo pautado apenas na
transmissão do conhecimento.
delegados ao professor. Neste ponto deve-se questionar a diversidade de ritmos de
aprendizagem dos alunos conjugada, muitas vezes, com turmas grandes [TOBAR et al
2001].
Há uma forte indicação de que o conhecimento anterior sobre a resolução de problemas
dentro do contexto anterior à computação é um pré-requisito importante no aprendizado
de linguagens de programação [LEMOS, BARROS e LOPES 2003]. No caso dos
alunos, estes costumam ter muita dificuldade em aplicar suas habilidades prévias,
criando fonte de medo e frustração [CHAVES DE CASTRO et al 2003].
Discute-se também a necessidade (ou não) de definir o paradigma a ser utilizado na
disciplina. Segundo o relatório da força tarefa da IEE e ACM [2001], o estudo de
algoritmos deve fornecer o discernimento da natureza intrínseca do problema e técnicas
de solução independentes de qualquer paradigma, linguagem de programação ou
hardware. Esta visão é corroborada por autores como HENDERSON [1986],
[KOLIVER, DORNELES e CASA 2004]. Alguns autores vão mais longe ao afirmar
que a introdução de paradigmas como orientação a objetos nos cursos iniciais sobre
algoritmos não fornece evidências significativas de facilitar o aprendizado [MARION
1999; PEREGO 2002; BURTON e BRUHN 2003]. Já outros autores preconizam que
certos paradigmas, como funcional, podem facilitar o processo [CHAVES DE
CASTRO et al 2003]. Outros defendem o próprio paradigma imperativo,
preferencialmente ao orientado a objeto [BAEZA-YATES 1995; BORGES 2000] ou o
procedural clássico [DELGADO et al 2004].
Outra questão é considerar a utilização ou não de uma linguagem de programação.
Alguns autores como GRIES [1974] defendem o uso de linguagens como Pascal, o que
é contra-argumentado por WINSLOW [1996] corroborado por KOLIVER, DORNELES
e CASA [2004] ao afirmar que o algoritmo permite concentrar sobre características
importantes da solução e ignorar detalhes que podem ser resolvidos posteriormente.
Finalmente, há que se considerar o envolvimento extra-classe necessário para o
acompanhamento das dificuldades dos alunos.
De modo geral, as dificuldades atribuídas ao ensino de fundamentos de programação
não são tarefas fáceis ou um tanto possíveis de serem superadas, porém podem ser
amenizadas em alta escala com metodologias pedagógicas adequadas.
Buscando analisar o grau de preocupação e/ou interesse da comunidade científica
brasileira de computação e informática com o processo de ensino-aprendizado de
fundamentos de programação, a seção a seguir apresenta eventos representativos para
tal pesquisa com intuito de posteriormente mensurar os trabalhos relacionados.

3. Uma Análise Crítica dos Anais do SBIE e WEI


Os questionamentos em relação aos problemas associados ao processo de ensino-
aprendizagem de programação parecem não ter fim. Não se pode garantir alguma
solução ótima para tais problemas, mas consegue-se um conjunto de boas soluções que
produzem resultados razoáveis em determinadas circunstâncias.
Com tais problemas relatados, o que se pretende é verificar se propostas de soluções são
apresentadas pela comunidade científica. Este questionamento foi feito a partir de anais
dos últimos cinco anos (1999 a 2003) do Workshop de Educação em Computação
(WEI) e do Simpósio Brasileiro de Informática na Educação (SBIE).
O WEI e o SBIE fazem parte do conjunto de eventos anuais promovidos pela Sociedade
Brasileira de Computação (SBC). Foram selecionados por abordarem os temas do
domínio de formas diferentes: o primeiro enfatiza a Computação, quanto ao segundo, a
Educação.

40,00

35,00

30,00

25,00

(%) 20,00 SBIE


WEI
15,00

10,00

5,00

0,00
1999 2000 2001 2002 2003

Figura 1: Publicações sobre o Ensino de Fundamentos de Programação.


A partir dos dados apresentados na figura 1 é possível constatar que pelo menos um
artigo por ano sobre o ensino de programação é publicado em um dos eventos. Como
era de se esperar, o WEI é o evento que apresenta o maior índice de publicações e este
valor gira em torno de duas por ano, em média.
Com base nestes resultados quantitativos observa-se que a preocupação como o ensino
de programação tem se demonstrado crescente para o WEI e estável para o SBIE.
Assim, a hipótese de que a comunidade de computação brasileira se mostra ciente e
busca soluções referentes aos problemas do ensino-aprendizagem de fundamentos de
programação foi comprovada.
De forma a assinalar qual é o foco de interesse das pesquisas, ou seja, que soluções tem
sido propostas para amenizar os problemas relativos ao processo, alguns citados na
seção 2, considera-se os anais dos três últimos anos do período selecionado (1999 a
2003), classificando as propostas segundo três vertentes:
• Ferramentas: artigos que apresentam ferramentas computacionais visando
facilitar o processo de ensino.
• Estratégias: artigos que discutem estratégias de ensino e/ou de avaliação de
competências.
• Ferramentas e Estratégias: artigos que discutem alguma estratégia suportada
por ferramentas computacionais.
25% Ferramentas

Estratégias
50%
Ferramentas e
25% Estratégias

Figura 2: Foco das publicações em 2001 e 2003.


A partir desta classificação obtêm-se dados estatísticos sobre a importância que se tem
dado a cada uma destas vertentes (Figura 2). Nota-se que a preocupação maior está em
desenvolver ferramentas computacionais do que agregá-las a estratégias.
VALENTE [1999] e ALMEIDA [2001] têm mostrado a pertinência de uso de recursos
computacionais no processo de ensino e aprendizagem, sobretudo quando associados a
estratégias pedagógicas adequadas. Assim, sugerir estratégias apoiadas por um ambiente
virtual que proporcione a colaboração e ferramenta de desenvolvimento que permita a
execução e visualização de resultados parece ser uma proposta melhor.

4. Considerações Finais
Este artigo consolida que os problemas inerentes ao processo de ensino e aprendizagem
de fundamentos de programação são números e difíceis de serem tratados, de forma que
não se pode afirmar a existência de uma solução que o resolva em sua totalidade.
A partir destas constatações uma parcela da comunidade científica passou a se
preocupar com a questão produzindo projetos de pesquisa que visam à melhoria deste
processo uma vez que a programação de computadores é em muitos casos base para o
desenvolvimento profissional do aluno.
Assim, ao analisar que pesquisas têm sido feitas no Brasil através de dois dos maiores
eventos sobre Informática e Educação (WEI e SBIE) verificou-se que a comunidade
científica brasileira tem buscado constantemente propor soluções para os problemas
dentro do tema adotado, porém, ainda é pouco se comparado a pesquisas em outras
áreas e domínios.

Referências

ALMEIDA, M. E. B. (2001) “Tecnologia na Escola: Formação de Educadores na


Ação”. Programa Salto para o Futuro-série Informática na Educação. Disponível em:
http://www.proinfo.gov.br/biblioteca/publicacoes/default.htm (Última consulta em
março/2003).

BAEZA-YATES, R. A. (1995) “Teaching Algorithms”. SIGACT News 26, 4, 51-59.


BORGES, M. A. F. (2000) “Avaliação de uma Metodologia Alternativa para a
Aprendizagem de Programação”. VIII Workshop de Educação em Computação – WEI
2000. Curitiba, PR, Brasil.

BURTON, P. J. e BRUHN, R. E. (2003) "Teaching Programming in the OOP Era",


SIGCSE Bulletin, 35(2): 111--114.

CHAVES DE CASTRO, T., CASTRO JÚNIOR, A., MENEZES, C., BOERES, M. e


RAUBER, M. (2003) “Utilizando Programação Funcional em Disciplinas Introdutórias
de Computação”. XI Workshop de Educação em Computação – WEI 2003. Campinas,
SP, Brasil.

CIDRAL, A. (2000) “Aps-Tutor: Un Ambiente Web de Aprendizagem como Soporte às


Atividades Presenciais no Ensino de Análise de Sistemas”. V Congresso
Iberoamericano de Informatica Educativa - RIBIE'2000. Viña del Mar, Chile.

DELGADO, C., XEXEO, J. A. M., SOUZA, I. F., CAMPOS, M., RAPKIEWICZ, C. E.


(2004) “Uma Abordagem Pedagógica para a Iniciação ao Estudo de Algoritmos”. XII
Workshop de Educação em Computação (WEI'2004). Salvador, BA, Brasil.

HENDERSON, P. B. (1986) “Anatomy of an Introductory Computer Science Course”.


In Proceedings of the seventeenth SIGCSE technical symposium on Computer science
education, ACM Press, pp. 257-264.
HENDERSON, P. (1987) “Modern Introductory Computer Science”. In Proceedings of
the eighteenth SIGCSE technical symposium on Computer science education, ACM
Press, pp. 183-190.

KOLIVER, C., DORNELES, R. V., CASA, M. E. (2004) “Das (muitas) dúvidas e


(poucas) certezas do ensino de algoritmos”. XII Workshop de Educação em
Computação (WEI'2004). Salvador, BA, Brasil.

LEMOS, M. A., BARROS, L. N., LOPES, R. D. (2003) “Um Biblioteca Cognitiva para
o Aprendizado de Programação”. XI Workshop de Educação em Computação – WEI
2003. Campinas, SP, Brasil.

MARION, W. (1999) "CS1: What Should We Be Teaching?", Annual Joint Conference


Integrating Technology into Computer Science Education ,Working group reports from
ITiCSE on Innovation and technology in computer science education, pp 35-38,
Polônia.

NOBRE, I. A. M. N., MENEZES, C. S. (2002) “Suporte à Cooperação em um


Ambiente de Aprendizagem para Programação (SAmbA)”. XIII Simpósio Brasileiro de
Informática na Educação – SBIE 2002. São Leopoldo, RS, Brasil.

ON COMPUTING CURRICULA IEEE COMPUTER SOCIETY ASSOCIATION FOR


COMPUTTING MACHINERY, T. J. T. F. Computing Curricula (2001) Computer
Science. Tech. rep., IEEE-CS and ACM.
PEREGO, C., LISBOA, M. e BERTAGNOLLI S. (2002) "A Migração de Pascal para
Java: Problemas e Propostas de Solução", X Workshop de Educação em Computação
(WEI'2002), Brasil.

RODRIGUES, M. C. (2002) “Como Ensinar Programação?”. Informática - Boletim


Informativo Ano I n° 01, ULBRA. Canoas, RS, Brasil.

SANTOS, G., DIRENE, A. I., GUEDES, A. L. P. (2003) “Autoria e Interpretação


Tutorial de Soluções Alternativas para Promover o Ensino de Programação de
Computadores”. XIV Simpósio Brasileiro de Informática na Educação – SBIE 2003.
Rio de Janeiro, RJ, Brasil.

SCHULTZ, M. R. O. (2003) “Metodologias para Ensino de Lógica de Programação de


Computadores”. Monografia de Especialização (Ciência da Computação). Universidade
Federal de Santa Catarina (UFSC), Florianópolis, SC, Brasil. 69p.

TOBAR, C. M., ROSA, J. L. G., COELHO, J. M. A., PANNAIN, R. (2001) “Uma


Arquitetura de Ambiente Colaborativo para o Aprendizado de Programação”. XII
Simpósio Brasileiro de Informática na Educação (SBIE’2001). Vitória, ES, Brasil.

VALENTE, J. A. (1999). “Informática a Educação no Brasil: Análise e


Contextualização Histórica”. In: VALENTE, J. A. O computador na sociedade do
conhecimento. Campinas, UNICAMP/NIED. 156p.

WINSLOW, L. E. (1996) “Programming Pedagogy -- A Psychological Overview”.


ACM SIGCSE BULLETIN, Vol. 28, No. 3.