Prefácio

Por David Beazley

Como educador, pesquisador e autor do livro, tenho o prazer de ver a conclusão deste livro. Python é uma linguagem de programação divertida e extremamente fácil de usar que tem conquistado popularidade nos últimos anos. Desenvolvido há mais de dez anos atrás por Guido van Rossum, a sintaxe simples do Python e sensação geral é em grande parte derivada da linguagem ABC, uma linguagem didática que foi desenvolvido na década de 1980. No entanto, o Python também foi criado para resolver problemas reais e tomou emprestado uma grande variedade de características de linguagens de programação tais como C++, Java, Modula-3, e Scheme. Com isso, uma das características marcantes do Python é a seu grande apelo para os desenvolvedores de software profissionais, cientistas, pesquisadores, artistas e educadores.

Apesar desse apelo que o Python oferece para muitas comunidades diferentes, você ainda pode perguntar por que Python? ou por que ensinar programação com Python? Responder a estas perguntas não é uma tarefa simples — especialmente quando a opinião pública está do lado das alternativas mais masoquistas como C ++ e Java. No entanto, eu acho que a resposta mais direta é que a programação em Python é simplesmente muito divertida e mais produtiva.

Quando ensino cursos de ciência da computação, eu quero cobrir conceitos importantes além de tornar o material interessante e motivador para os alunos. Infelizmente, há uma tendência dos cursos introdutórios de programação de concentrar atenção demais em abstração matemática e de frustrar os alunos com problemas irritantes relacionados com detalhes de baixo nível de sintaxe, compilação, e a aplicação das regras aparentemente arcanas. Embora tal abstração e formalismo seja importante para os engenheiros de software profissionais e os estudantes que pretendem continuar seus estudos de ciência da computação, adotar essa abordagem em um curso introdutório só ajuda a tornar a ciência da computação chata. Quando eu ensino um curso, eu não quero ter uma sala cheia de alunos sem inspiração. Eu prefiro muito mais vê-los tentando resolver problemas interessantes, explorando idéias diferentes, trilhando caminhos não convencionais, quebrando as regras, e aprendendo com seus erros. Ao fazer isso, eu não quero gastar metade do semestre tentando resolver problemas de sintaxe obscuros, mensagens ininteligíveis de erro do compilador, ou as várias centenas de maneiras que um programa pode gerar uma falha de proteção.

Uma das razões pelas quais eu gosto de Python é que ele fornece um equilíbrio muito bom entre o prático e o conceitual. Como o Python é interpretado, iniciantes podem pegar a linguagem e começar a fazer coisas legais quase que imediatamente, sem se perder nos problemas de compilação. Além disso, o Python vem com uma grande biblioteca de módulos que podem ser utilizados para fazer todos os tipos de tarefas que vão desde programação web a gráficos. Oferecer um enfoque prático é uma ótima maneira de envolver os alunos e lhes permite concluir projetos significativos. No entanto, o Python também pode servir como um excelente fundação para a introdução de importantes conceitos de ciência da computação. Como o Python suporta procedimentos e classes plenamente, os alunos podem ser gradualmente introduzidos em tópicos como abstração procedural, estruturas de dados, e programação orientação à objetos — todos os quais são aplicáveis em cursos posteriores de Java ou C++. O Python também toma emprestado uma série de características de linguagens de programação funcional e pode ser utilizado para introduzir conceitos que seriam cobertos em mais detalhes em cursos de Scheme e Lisp.

Ao ler o prefácio do Jeffrey, fiquei impressionado com seu comentário de que Python lhe permitiu ver um maior nível de sucesso e um menor nível de frustração e que ele foi capaz de avançar mais rápido com melhores resultados. Embora estes comentários se refiram ao seu curso introdutório, eu às vezes uso Python, exatamente pelas mesmas razões, em cursos avançados de pós-graduação em ciência da computação na Universidade de Chicago. Nesses cursos, sou constantemente confrontado com gigantesca tarefa de cobrir uma grande quantidade de material difícil em apenas nove semanas de um quadrimestre. Embora seja certamente possível infligir muita dor e sofrimento usando uma linguagem como C++, por vezes achei esta abordagem contraproducente — especialmente quando o curso é sobre um tema não relacionado apenas com programação. Acho que usar Python me permite um melhor foco no tópico em questão, permitindo que os alunos completem projetos substanciais no curso.

Embora Python ainda seja uma linguagem jovem e em evolução, acredito que ela tem um futuro brilhante na educação. Este livro é um passo importante nessa direção.

David Beazley Universidade de Chicago Autor de Python Essential Reference

You have attempted of activities on this page