Vai aqui uma dica excelente: CURSO DE PYTHON oferecido pelo InFog. Grande iniciativa! Tá aqui mais uma boa oportunidade pra aprender A linguagem de programação :P

Posted in web at November 4th, 2008. 1 Comment.

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:

Uma dica interessante para aplicar nas primeiras etapas - e que serve inclusive como brincadeira, descontração - é o uso do Guido van Robot. Veja só:

gvrobot.png

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?

Posted in web at August 31st, 2008. 6 Comments.

Um post rápido pra começar a semana:

1. Fotos pra você babar - Googleplex pelo mundo afora:

2. Equações do 2º grau em Python, mais uma dica do Élcio:

3. Omelete fez um ótimo review do Spore - o jogo mais esperado dos últimos tempos (pra quem gosta de jogos de estratégia claro). Lançamento agora em Setembro e já tem até pré-venda.

Posted in web at August 25th, 2008. No Comments.

Continuando o post anterior sobre Ensino de Programação com Python, coloco aqui algumas referências para a linguagem.

Em português:

Em inglês:

e vem mais coisas pela frente…

Posted in web at August 19th, 2008. 2 Comments.

Na prática do ensino de programação - nível básico - é muito comum por parte dos professores universitários (como também de cursos técnicos e profissionalizantes) aplicar o Portugol na etapa que trata lógica e algoritmos, e a linguagem Pascal para implementar os algoritmos estudados.

Em primeiro lugar, acredito que o ensino - seja de que for - deve buscar o máximo possível aproveitar o que o aluno já carrega, o conhecimento prévio (e existem teorias “pedagógicas” sobre isso que me escapam agora). Isso quer dizer que:

x ← 10 (atribuir o valor 10 na variável x, no portugol)

é menos intuitivo do que simplesmente

x = 10

Veja que “x = 10″ aprendemos desde cedo na escola e já está mais do que claro para o aluno seu significado, ao invés da “←”, que passa a ser algo a mais que ele vai ter que associar e aprender. Pode ser um exemplo bobo, mas o princípio é aproveitar ao máximo o que o aluno já sabe.

Além disso, um dos argumentos para o uso do Portugol é - como o nome já diz - ser em português. Mas na verdade, nada impede o aluno de aprender a programar já com palavras em inglês, não é tão absurdo assim no início e é um treino, já que ele vai lidar com isso de qualquer forma. Outro aspecto é que o Portugol apenas “traduz” a linguagem Pascal, e por isso carrega ainda o peso das palavras e regras dessa linguagem, peso esse que, a meu ver, torna o processo de aprendizado mais complicado ainda. Coisas como “inicio-fim” ou “begin-end”, sinal de “;” no final das linhas, etc.

Aqui entra a linguagem Python. Escolhi e estou usando o Python no ensino de programação inicialmente pelos motivos a seguir (nessa ordem):

  1. A própria linguagem: fácil, enxuta, intuitiva e com regras simples.
  2. Ambiente interativo (idle ou shell) onde facilmente o aluno pode testar instruções separadamente sem precisar escrever um programa complexo e salvar em arquivo, como também não precisa compilar, já que Python é uma linguagem interpretada.
  3. Software Livre!
  4. Multiplataforma, se o aluno quiser usar o Linux, sem problema, inclusive é nativa em muitas distribuições, como o Ubuntu.
  5. É uma linguagem “útil”, não algo que ele vai aprender só nessa fase e esquecer, ele tem sim uma opção de produzir algo real, visto que com Python dá pra fazer aplicativos web e desktop, jogos etc.
  6. Muito material na Internet e uma comunidade bastante ativa. (e olha que nem falei que o Google usa! :P)

Esses motivos foram os suficientes para “fazer uma experiência”. Na prática, essa experiência de usar Python é muito melhor, muito mais satisfatória.

Primeiro que o Python está sendo aplicado no estudo do algoritmo e ao mesmo tempo na sua implementação, pulando a etapa de fazer algo em portugol e depois digitar em pascal. Com o IDLE aberto durante a aula toda, eles podem fazer testes, operações matemáticas simples, verificar o comportamento das variáveis, realizar operações lógicas em “tempo real”, e por aí vai. Exemplo:

idle_python.gif

O conjunto [ Linguagem Python + Ambiente Interativo ] torna a aula muito mais produtiva. Os alunos podem também fazer comentários sobre os códigos que estão testando (já um treino para a documentação) e ao final da aula podem salvar tudo que fizeram para estudar depois.

Esse post é o primeiro de uma série em que pretendo relatar mais sobre o uso do Python, postar exemplos de código e exercícios. Já no próximo colocarei uma série de referências sobre a linguagem para quem está começando.

Qualquer dúvida, sugestão ou crítica, já sabem, é só comentar! :)

Posted in web at August 15th, 2008. 6 Comments.