Continuando a falar sobre o ensino de programação com Python, a experiência de ensinar programação usando o Python continua espetacular.
Mas antes vou fazer um rápido parênteses e explicar melhor o meu trabalho: além de desenvolvedor de softwares sou também professor em uma instituição de Educação Profissional e toda essa minha experiência com Python se passa atualmente em um curso de Desenvolvimento de Software na Plataforma Java. Como padrão, o primeiro módulo desse curso trata da introdução à programação, estrutura de dados, algoritmos etc.
Neste curso estou aplicando uma mudança na forma de ensinar programação em relação ao tradicional “portugol-pascal”: o uso do portugol e pascal, juntos, foram substituídos por Python, ou seja, os alunos não viram portugol, não escreveram instrução alguma em português. Após entenderem uma teoria básica já começaram a usar o IDLE do Python. Se lembram de todos aqueles exercícios de algoritmos, tipo “calcule a sequência de Fibonacci“? Então, a galerinha fez direto no Python.
Vejam bem, o uso do Python não fez a carga horária sobre o assunto reduzir, não tirou toda a teoria necessária, apenas houve uma troca na ferramenta/linguagem de estudo, que como consequência possibilitou um aprendizado mais sólido e divertido. Olhando por esse lado a coisa é bem mais simples do que parece.
Algumas pessoas me perguntaram “por quê simplesmente não começar direto no Java?” É, pensei muito nisso, mas reforço que o Python foi e continua sendo importante porque em primeiro lugar não exige muito para começar, ou em outras palavras evita a necessidade de jogar uma tonelada de informações sobre a plataforma Java para quem ainda está começando na programação. Fiz também uma sondagem entre alguns amigos que são professores de faculdades da área e todos me disseram que a tentativa de começar no Java atrapalhou muito e em certo ponto voltaram para o Pascal. Óbvio que isso é bastante relativo, e não vejo como “voltar para o Pascal” possa ajudar tanto assim, inclusive o material sobre Java da Iniciativa JEDI é, a meu ver, excelente. Mesmo assim, toda essa discussão me fez pender para o lado do “fazer algo diferente” usando o Python, que possibilitou testar tudo, desde as operações mais simples, como um “2 + 2″, ou “x > y” até a Orientação à Objeto, usando unicamente o interpretador interativo.
Inclusive ficou muito fácil criar e testar a OOP no Python. Novamente, o interpretador interativo foi muito útil para que os alunos pudessem criar classes, instanciar, testar métodos e atributos, estudar herança, encapsulamento, e por aí vai.
E quando começarem no Java, será que os alunos vão ter problemas? Com certeza, duvido que queiram largar o Python! :P
Brincadeiras a parte, não imagino problemas nessa migração até porque muitos elementos do Java estão presentes no Python. Além da própria OOP, o Python tem tratamento de exceções, garbage collector, threads e muitos outros “conceitos” que os alunos já estão tendo a oportunidade de aprender agora, de forma mais simples. No futuro fica mais fácil estudar “como fazer isso em Java?” ou “como o Java trata isso?” do ainda aprender ainda “o que é isso?”
Já havia postado algumas referências para aprender python, agora vou acrescentar mais duas que encontrei via o blog VIVAOTUX:
- Python para Todos
- Orientação à Objetos em Python (vejam como é legal OOP em Python!)
Uma dica interessante para aplicar nas primeiras etapas - e que serve inclusive como brincadeira, descontração - é o uso do Guido van Robot. Veja só:

Trata-se de uma espécie de “jogo”, um micro-ambiente de desenvolvimento com uma linguagem simples, baseada no Python, onde o que importa é mover o robozinho no cenário. O cenário e a movimentação do robo são programados pelo aluno. Como dá pra perceber, é inspirado no LOGO, que já é bem sucedido no ensino de programação para crianças e jovens. No site oficial além do software ainda tem algumas lições bem simples de funcionamento.
Comentários?

