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.

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.

É isso ae, a Lavanderia do Hertz está disponibilizando um curso completo de Adobe Flash - nível iniciante - no formato PDF, totalmente free.

Excelente iniciativa do Eugenio.

Posted in web at August 1st, 2008. 1 Comment.

217x188_sos_banner009.jpgThe Story of Stuff é um documentário belíssimo (alias, muito triste e pesado) sobre a questão ambiental, atacando principalmente o consumo, o ciclo de produção, extração e como essas práticas estão destruindo nosso planeta.

Percebemos que de uns anos pra cá o tema “defesa do meio ambiente” é bastante discutido, em grande parte devido a persistência do GreenPeace e outras ONGs de defesa ambiental nas últimas décadas. Mas nessa nossa sociedade onde se pode tirar vantagem em tudo, esse “meio ambiente” passou a ser também um produto, comercializado aos quatro cantos, servido em discursos vazios e erguido como bandeira política. Seja como for, falamos mais do que fazemos, aliás, não fazemos quase nada ainda em relação a tudo isso que o The Story of Stuff mostra, sem meias palavras e sem a “pose” do Al Gore. Amigos, a situação é grave, muito grave.

Estou postando isso hoje porque encontrei, via LadyBug, a versão legendada desse video! Agora ninguém vai reclamar.

Assistam!

Posted in web at May 7th, 2008. 1 Comment.

Imaginem um laboratório de informática com 15 computadores, usado os 3 turnos por várias pessoas, Deve ser um tormento ter que “reinstalar” o SO em todas elas, instalar aplicativos, praticamente uma vez por mês, né?

Não é novidade o fato de que é possível criar uma “imagem” do disco/partição, ou seja, uma cópia exata de toda a partição em uso (com SO, aplicativos e tudo mais) de forma que ela possa ser restaurada a qualquer momento sem a necessidade de realmente instalar tudo e ter que passar por todo o processo de pegar CDs, chaves, baixar updates da internet, etc. A questão aqui é qual programa utilizar pra fazer isso. Após testar uns 5 programas, incluindo o famoso Partition Magic, além das soluções do linux, encontrei o programa que salvou o dia: DriveImage XML. O DriveImage XML é pequeno, rápido e free.

Pra não perder tempo fazendo um tutorial, capturar tela, etc, já tá de bom tamanho esse daqui do LifeHacker, em inglês.

Só uma dica: o DriveImage XML apenas cria e restaura uma imagem, não cria disco de boot. Se você quiser criar um CD/DVD de boot com a imagem criada pelo DriveImage XML vai precisar de outro programa, o BartPE. O BartPE cria um disco de boot do Windows, e nesse disco você pode incluir o programa DriveImageXML e a imagem criada. A inclusão do DriveImage XML no disco de boot criado pelo BartPE é feita através de um plugin disponível na página do BartPE. O roteiro que usei resumidamente foi esse:

  1. baixei e instalei o DriveImage XML e o BartPE, óbvio, e baixei também na página do BartPE o plugin do DriveImage XML
  2. rodei o DriveImage XML e fiz o backup conforme o tutorial (fácil demais). O detalhe é que você deve dividir a imagem em vários arquivos, e não em um só, como se você fosse copiar para vários CDs, mesmo que você queira usar um DVD pra isso (para o caso do próprio BartPE queimar o disco)
  3. rodei o BartPE, adicionei o plugin do DriveImage, e disse o diretório onde estava a imagem gravada e os arquivos do CD original do Windows (é, ele precisa dos arquivos do Windows para montar o CD/DVD de boot). Depois mandei ele gravar o disco.

O processo todo durou 30min, 13min para o DriveImage criar a imagem, e 17min para o BartPE queimar o DVD.

Vale a pena, solução super simples. Quem tiver dúvida, dica ou uma solução de imagem melhor, fique à vontade nos comentários! :)

Posted in web at April 17th, 2008. 4 Comments.

1) Nas minhas aulas, nos cursos básicos de informática, quando falo em software, tipos de software etc., sempre percebo a “surpresa” dos alunos ao descobrirem que o [windows/office/corel] que tem nos seus computadores são programas piratas, ou seja, eles deveriam ter pago por eles, mas não pagaram. A maioria tem a idéia - natural e intuitiva - de que os programas “já vem” no computador. Se pagaram pelo computador, é certo que este tenha programas.

2) As grandes redes de varejo estão agora vendendo desktops e até notebooks com o Linux, claramente uma tentativa de conseguir preços menores. Mas o cliente, ao sair de uma loja dessas pode - por 30 reais ou menos - “apagar a porcaria” que vem no computador e colocar o Windows, orientação dada geralmente pelo próprio vendedor.

Nos dois casos percebo o desconhecimento. Especificamente com os meus alunos, alguns perguntam onde e como comprar o Windows original - e até o fazem - mas a maioria mesmo busca uma alternativa livre, uma postura que contraria o senso comum do “todo mundo usa sem pagar, por que não posso?” (jeitinho brasileiro sempre presente, é claro!).

O que importa saber, mesmo pra quem é novato na informática, é sobre a qualidade, usabilidade e interoperabilidade do software.

A questão aqui é: nem sempre há intencionalidade, ou má fé, em usar software pirata, e definitivamente o consumidor não é um criminoso. O que existe geralmente é uma prática que é replicada, se tornando comum, sem a informação completa.

No caso das lojas, sinceramente, se elas passassem a adotar o Kurumin ou Ubuntu - sistemas excelentes - e não o seja-lá-o-que-for (pra não dizer coisa pior) que elas instalam nos computadores, os usuários poderiam ter a chance real de usar um sistema mais amigável - e poderiam economizar 30 reais. :)

Alguma contribuição? comentário? crítica? bora pessoal!!!

Posted in web at March 28th, 2008. 1 Comment.