Entrada > Notícias > Aprendizagem de programação de computadores
Publicado em: 29 Março 2019

Aprendizagem de programação de computadores

Artigo de opinião de Mário Pinto, docente da ESMAD, escola de Media e Design do P.PORTO

A aprendizagem de programação é muitas vezes um processo difícil, ao qual as abordagens de ensino tradicionais não têm conseguido responder eficazmente. Cursos ou disciplinas de introdução à programação apresentam, com alguma frequência, taxas de reprovação acima dos 50%, de acordo com diversos estudos. Esta realidade ocorre igualmente nas instituições de Ensino Superior, em cursos das áreas das ciências da computação e do desenvolvimento Web.

Algumas razões podem ser apontadas para esta realidade, tais como:

  • Dificuldades de interpretação e de compreensão dos problemas propostos, levando muitas vezes os alunos a começarem a resolver um problema sem o compreenderem inteiramente;
  • Dificuldades na resolução de problemas lógicos e concretos, sob a forma de algoritmos;
  • Dificuldades na captação da atenção e do interesse dos alunos em aprender os fundamentos de programação, com uma aprendizagem frequentemente orientada para a resolução de problemas mais ou menos abstratos, e recorrendo a interfaces pouco apelativas.


Ensinar programação também pode ser difícil, porque a aprendizagem de programação requer muito mais do que adquirir conhecimentos e competências técnicas. Os alunos devem aprender sobre estruturas de programação, lógica, e sintaxe da linguagem utilizada. Mas também devem rapidamente começar a construir estratégias para combinar o conhecimento adquirido na resolução de problemas através de algoritmos e da sua codificação em computador. A tarefa ainda não está concluída porque o código deve ser testado, depurado e, muitas vezes, reformulado e otimizado.


Contudo, o principal desafio para iniciantes não está na linguagem ou na sintaxe, mas sim em conceber uma solução para resolver o problema proposto. Por outro lado, o público mais jovem está habituado a clicar num ícone e ver uma aplicação com uma
interface apelativa! Assim, é frequente os alunos ficarem desmotivados quando, numa sala de aula, têm que implementar um algoritmo para classificar números ou sequências de caracteres e imprimi-los num ambiente de consola, por exemplo.

Neste contexto, algumas abordagens e estratégias de aprendizagem de programação tendem a ser adotadas, tendo em vista minorar as dificuldades sentidas pelos alunos, tais como:Neste contexto, algumas abordagens e estratégias de aprendizagem de programação tendem a ser adotadas, tendo em vista minorar as dificuldades sentidas pelos alunos, tais como:

  • A introdução de elementos dinâmicos nas estratégias de aprendizagem, como a gamificação, que recorre a elementos de design de jogos em contextos de educação. A introdução de técnicas e estratégias que compreendam a inclusão de missões e desafios embebidos numa narrativa de aprendizagem, mecanismos de progressão como pontos ou níveis, relacionamentos que promovam a cooperação no desenvolvimento de uma solução e a avaliação por pares, entre outros, podem ajudar a incrementar o envolvimento e a motivação dos alunos;
  • Sistemas de avaliação automática do código, baseados em tutores Inteligentes. Estes sistemas permitem que os alunos possam progredir na sua aprendizagem fora do ambiente presencial de aula, tendo um feedback automático e imediato das soluções que submetem. Permitem ainda incrementar o grau de autonomia dos alunos, proporcionando muitas vezes percursos de aprendizagem personalizados em função do perfil e das competências de cada estudante;
  • Sistemas que recorrem a representações visuais, animações e simulação de algoritmos, procurando tornar a aprendizagem mais dinâmica, visual e interativa. Trata-se de sistemas de animação com o propósito de apelar ao potencial do sistema visual humano, contribuindo para uma melhor compreensão de conceitos inerentemente dinâmicos, quando comparado com o formato textual (por exemplo, JHAVÉ ou BlueJ).


Estas abordagens não resolvem, por si só, as dificuldades sentidas na aprendizagem inicial de programação. Mas quando combinadas com estratégias pedagógicas adequadas, podem ajudar a minorar essas mesmas dificuldades, convertendo a aprendizagem num processo mais acessível e motivador para os alunos.

Combined Shape

Navigation