domingo, 2 de outubro de 2011

Python: Pensando como um Cientista da Computação

 
 
Tradução: Guilherme S. Silva


Enquanto preparava a tradução deste livro encontrei a mesma obra já traduzida, embora não tenha sido advertido disto pelo autor, Allen B. Downey. Como a tradução está bem feita simplesmente recomendo que os leitores a visitem em Pensando como um cientista da computação, tradução de Francisco Souza.

Prefácio

A estranha história deste livro

Em janeiro de 1999 eu me preparava para ensinar uma aula de introdução à programação em Java. Por três vezes já havia ministrado este curso e sempre me sentia frustrado. A taxa de reprovação nas turmas era muito alta e, mesmo entre os alunos aprovados, a nível geral de satisfação era muito baixo.
Um dos problemas estava nos livros adotados. Eles eram muito extensos, com excesso de detalhes sobre Java, e não cobriam com a orientação suficiente e de bom nível sobre como programar. E todos eles caiam na armadilha de começar de modo fácil e ir aumentando o nível de dificuldade gradualmente até que, em torno do capítulo 4, o conteúdo já estava complexo demais e os alunos começavam a desistir. Eles se  sentiam sobrecarregados com o material novo e eu passava o resto do semestre tentando remediar a situação.
Duas semanas antes do primeiro dia de aula decidi escrever meu próprio livro. Meus objetivos eram:
  • Manter o livro curto. É melhor que os alunos leiam 10 páginas do que fiquem sem ler 50.
  • Ter cuidado com o vocabulário. Tentei minimizar o uso do jargão e apresentar a definição de cada termo na primeira utilização.
  • Construir o conhecimento gradualmente. Para evitar armadilhas dividi os temas mais difíceis em uma série de pequenos passos.
  • Focar na programação, e não na linguagem escolhida. Incluí o subconjunto útil mínimo de Java e deixei o resto de fora.
Para o título pensei em How to Think Like a Computer Scientist (Pensando como um cientista da computação).
A primeira versão ficou um tanto grosseira mas atingiu os objetivos. Os alunos leram e entenderam o suficiente para que eu dedicasse o tempo em sala de aula para os temas mais difíceis, os tópicos interessantes e (o que era mais importante), deixando que os alunos praticassem.
Lancei o livro sob a GNU Free Documentation License, que permite aos usuários copiar, modificar e distribuir o livro.

O que aconteceu depois é a parte mais curiosa. Jeff Elkner, um professor do nível médio na Virgínia, adotou meu livro e o traduziu para Python. Ele me mandou uma cópia da sua versão o que fez com que eu passasse pela experiência incomum de aprender Python lendo meu próprio livro.
Jeff e eu revisimos o texto e incluimos um estudo de caso realizado por Chris Meyers, e em 2001 lançamos Como pensar como um cientista da computação: Aprendendo com Python, também sob a GNU Free Documentation Licence. O livro foi publicado pela Green Tea Press e começamos a vender cópias em papel através da Amazon.com e livrarias da Universidades. Outros livros da Green Tea Press estão disponíveis no greenteapress.com.
Em 2003 comecei a lecionar na Olin College, onde tive que ensinar Python pela primeira vez. O contraste com o Java foi impressionante. Os estudantes tiveram que se esforçar menos, aprenderam mais, apresentaram projetos mais interessantes e, principalmente, se divertiram.
Nos últimos cinco anos continuei a desenvolver o livro, corrigindo erros, melhorando algunss exemplos e acrescentado material, especialmente exercícios. Em 2008 comecei a fazer uma grande revisão geral do livro, ao mesmo tempo em que fui contactado por um editor em Cambridge University Press, interessado em publicar uma próxima edição. Feliz coincidência!
O resultado é o presente livro. Algumas das alterações são:
  • Acrescentei uma seção sobre a depuração no final de cada capítulo. Essas seções apresentam técnicas gerais para encontrar e evitar mensagens de erros e advertências de Python.
  • retirei o material nos últimos capítulos sobre a implementação de listas e árvores. Por mais fascinantes que sejam estes tópicos, julguei que estavam fora de contexto em relação ao restso do livro.
  • Adicionei exercícios, que vão desde testes curtos de entendimento até alguns projetos maiores.
  • Adicionei uma série de estudos de caso - exemplos mais longos com exercícios, soluções e discussão. Alguns deles são baseados em Swampy, um conjunto de programas em Python que escrevi para o uso em minhas aulas. Swampy, exemplos de código e algumas soluções estão disponíveis a em thinkpython.com.
  • Ampliei a discussão dos planos de desenvolvimento de programa e padrões básicos de projetos.
  • O uso de Python é mais idiomático. Embora o livro ainda seja sobre a programação, e não sobre a linguagem Python, agora acredito que ele alcança um nível mais elevado devido à linguagem escolhida.
Eu espero que você aprecie ler e trabalhar com este livro, e que possa com ele aprender a programar e pensar, pelo menos um pouco, como um cientista da computação.

Agradecimentos

Os agradecimentos do autor e a lista de todos os que contribuiram para o aperfeiçoamento do livro pode ser lida no site Open Book Project.

Capítulos:

  1. O caminho da programação
  2. Variáveis, expressões e declarações
  3. Funções em Python
  4. Estudo de caso: design de interfaces
Allen B. Downey e Needham MA
Allen Downey é Professor Associado de Ciência da Computação na Franklin W. Olin College of Engineering.

Nenhum comentário:

Postar um comentário