pythontut
205 pág.

pythontut


DisciplinaCálculo I94.666 materiais1.622.681 seguidores
Pré-visualização50 páginas
26 Apêndice D: GNU Free Documentation License 195
v
27 Indices and tables 197
vi
Aprenda Computação com Python Documentation, Versão 1.1
Contents:
Conteúdo 1
Aprenda Computação com Python Documentation, Versão 1.1
2 Conteúdo
CAPÍTULO 1
Prefácio
Por Jeff Elkner
Este livro deve sua existência à colaboração possibilitada pela Internet e pelo movimento do software livre. Seus
três autores \u2013 um professor universitário, um professor secundarista e um programador profissional \u2013 ainda não se
encontraram pessoalmente, mas temos sido capazes de trabalhar em estreita colaboração e temos sido ajudados por
muitos colegas maravilhosos que têm dedicado seu tempo e energia para ajudar a fazer deste um livro cada vez melhor.
Achamos que este livro é um testemunho dos benefícios e possibilidades futuras deste tipo de colaboração, cujo
modelo tem sido posto em prática por Richard Stallman e pela Free Software Foundation.
1.1 Como e porque eu vim a usar Python
Em 1999, o Exame de Colocação Avançada em Ciência da Computação da Comissão de Faculdades (College Board\u2019s
Advanced Placement (AP) Computer Science XXX) foi aplicado em C++ pela primeira vez. Como em muitas escolas
secundárias através do país, a decisão de mudar linguagens teve um impacto direto no currículo de ciência da com-
putação na Yorktown High School em Arlington, Virginia, onde leciono. Até então, Pascal era a linguagem didática
para nossos cursos de primeiro ano e avançado. Mantendo a prática corrente de dar aos estudantes dois anos de ex-
posição à mesma linguagem, tomamos a decisão de mudar para C++ no curso de primeiro ano para o ano letivo de
1997-98 de modo que estaríamos em sincronismo com a mudança da Comissão de Faculdades (College Board\u2019s XXX)
em relação ao curso avançado (AP XXX) para o ano seguinte.
Dois anos depois, eu estava convencido que C++ foi uma escolha infeliz para introduzir os alunos em ciência da
computação. Ao mesmo tempo em que é certamente uma linguagem de programação muito poderosa, também é uma
linguagem extremamente difícil de aprender e de ensinar. Eu me encontrava constantemente lutando com a sintaxe
difícil de C++ e as múltiplas maneiras de fazer a mesma coisa, e estava, como resultado, perdendo muitos alunos
desnecessariamente. Convencido de que deveria existir uma linguagem melhor para a nossa classe de primeiro ano,
fui procurar por uma alternativa a C++.
Eu precisava de uma linguagem que pudesse rodar nas máquinas em nosso laboratório Linux bem como nas platafor-
mas Windows e Macintosh que a maioria dos alunos tinha em casa. Eu precisava que ela fosse gratuita e disponível
eletronicamente, assim os alunos poderiam utilizá-la em casa independentemente de suas rendas. Eu queria uma
linguagem que fosse utilizada por programadores profissionais, e que tivesse uma comunidade de desenvolvimento
ativa em torno dela. Ela teria que suportar ambas, programação procedural e orientada a objetos. E, mais importante,
deveria ser fácil de aprender e de ensinar. Quando considerei as alternativas tendo em mente aquelas metas, Python
sobressaiu-se como a melhor candidata para a tarefa.
3
Aprenda Computação com Python Documentation, Versão 1.1
Pedi para um dos talentosos estudantes de Yorktown, Matt Ahrens, que experimentasse Python. Em dois meses ele não
só aprendeu a linguagem como também escreveu uma aplicação chamada pyTicket que possibilitou à nossa equipe
reportar problemas de tecnologia pela Web. Eu sabia que Matt não poderia ter finalizado uma aplicação daquele
porte em período tão curto em C++, e esta realização, combinada com a avaliação positiva de Python dada por Matt,
sugeriam que Python era a solução que eu estava procurando.
1.2 Encontrando um livro-texto
Tendo decidido usar Python em minhas aulas introdutórias de ciência da computação do ano seguinte, o problema
mais urgente era a falta de um livro-texto disponível.
O conteúdo livre veio em socorro. Anteriormente naquele ano, Richard Stallman tinha me apresentado a Allen
Downey. Ambos havíamos escrito a Richard expressando interesse em desenvolver conteúdo educacional livre. Allen
já tinha escrito um livro-texto para o primeiro ano de ciência da computação, How to Think Like a Computer Scientist.
Quando li este livro, soube imediatamente que queria utilizá-lo nas minhas aulas. Era o mais claro e proveitoso texto
em ciência da computação que eu tinha visto. Ele enfatizava o processo de reflexão envolvido em programação em
vez de características de uma linguagem em particular. Lê-lo fez de mim imediatamente um professor melhor.
O How to Think Like a Computer Scientist era não só um excelente livro, como também fora lançado sob uma licença
pública GNU, o que significava que ele poderia ser usado livremente e modificado para atender as necessidades de seu
usuário. Uma vez que eu havia decidido usar Python, me ocorreu que eu poderia traduzir a versão original do livro de
Allen do Java para a nova linguagem. Apesar de não estar capacitado para escrever eu mesmo um livro-texto, tendo
o livro de Allen para trabalhar, tornou possível para mim fazê-lo, ao mesmo tempo demonstrando que o modelo de
desenvolvimento cooperativo tão bem utilizado em software poderia também funcionar para conteúdo educacional.
Trabalhar neste livro pelos últimos dois anos tem sido recompensador para mim e meus alunos, e eles tiveram um
grande papel neste processo. A partir do momento em que eu podia fazer mudanças instantâneas assim que alguém
encontrasse um erro ortográfico ou um trecho difícil, eu os encorajei a procurar por erros no livro, dando a eles pontos
de bonificação cada vez que fizessem uma sugestão que resultasse em uma mudança no texto. Isto teve o duplo
benefício de encorajá-los a ler o texto mais cuidadosamente e de ter o texto totalmente revisado por seus críticos mais
importantes: alunos utilizando-o para aprender ciência da computação.
Para a segunda metade do livro, sobre programação orientada a objetos, eu sabia que seria preciso alguém com uma
maior experiência do que a minha em programação real para fazê-lo corretamente. O livro esteve em estado inacabado
por quase um ano até que a comunidade de software livre providenciasse mais uma vez os meios necessários para sua
conclusão.
Eu recebi um e-mail de Chris Meyers mostrando interesse no livro. Chris é um programador profissional que começou
a dar um curso de programação no ano anterior usando Python no Lane Community College em Eugene, Oregon. A
perspectiva de dar aquele curso ligou Chris ao livro, e ele começou a ajudar o trabalho imediatamente. Até o final
do ano letivo ele tinha criado um projeto colaborativo em nosso Website em http://www.ibiblio.org/obp
chamado Python for Fun e estava trabalhando com alguns dos meus alunos mais avançados como um guru (master
teacher XXX), guiando-os além de onde eu poderia levá-los.
1.3 Introduzindo programação com Python
O processo de traduzir e utilizar How to Think Like a Computer Scientist pelos últimos dois anos tem confirmado a
conveniência de Python no ensino de alunos iniciantes. Python simplifica tremendamente os programas exemplo e
torna idéias importantes de programação mais fáceis de ensinar.
O primeiro exemplo do texto ilustra este ponto. É o tradicional programa \u201cAlô mundo\u201d, o qual na versão C++ do livro
se parece com isto:
4 Capítulo 1. Prefácio
Aprenda Computação com Python Documentation, Versão 1.1
#include <iostream.h>
void main()
{
cout << &quot;Alô, mundo.&quot; << endl;
}
Na versão Python, ele se transforma em:
print &quot;Alô, Mundo!&quot;
Mesmo sendo um exemplo trivial, as vantagens do Python saltam aos olhos. O curso de Ciência da Computação I que
ministro em Yorktown não tem pré-requisitos, assim, muitos dos alunos que veem esse exemplo estão olhando para o
seu primeiro programa. Alguns deles estão indubitavelmente nervosos, por já terem ouvido falar que programação de
computadores é difícil de aprender. A versão C++ tem sempre me forçado a escolher entre duas opções insatisfatórias:
ou explicar os comandos #include, void main(), {, e