Informática Aplicada à Engenharia Florestal INTRODUÇÃO Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais
Vamos aprender a fazer programas! 2/34
Questão Fundamental Por que programar? 3/34
Por Que Programar? É divertido: Pode ser melhor do que utilizar programas feitos por terceiros. Fazer programas = resolver quebra-cabeças = exercício mental. Programação como arte... É útil: Programação como ferramenta... Há aplicações em quase qualquer atividade: Arte, ciência, filosofia, entretenimento... 4/34
Por Que Programar? Os computadores são incrivelmente rápidos, precisos e burros. Os homens são incrivelmente lentos, imprecisos e brilhantes. Juntos, seu poder ultrapassa os limites da imaginação. Albert Einstein 5/34
Muitos Pensam que Programar é... Bruxaria Coisa de Louco Coisa de Outro Mundo Apenas para Ninjas Veremos que isso não é verdade! 6/34
Vocês Devem Estar se Perguntando... Mas programar não é apenas para quem estuda computação? 7/34
Vocês Devem Estar se Perguntando... Introduction to Programming using Python Programming Course for Biologists at the Pasteur Institute: http://www.pasteur.fr/formation/infobio/python/ Há uma versão em pdf do curso para download. Course Informatics for Biology at the Pasteur Institute: http://www.pasteur.fr/formation/infobio/infobio-en.html 8/34
Vocês Devem Estar se Perguntando... Ah, Renato, você está exagerando... 9/34
Vocês Devem Estar se Perguntando... http://www.manning.com/sande/ http://helloworldbookblog.com/ Computer programming is a powerful tool for children to learn learning, that is, to learn the skills of thinking and problem-solving Children who engage in programming transfer that kind of learning to other things. Nicholas Negroponte, the man behind the One Laptop Per Child project. 10/34
Vocês Devem Estar se Perguntando... http://code.google.com/p/rur-ple/ http://code.google.com/p/play-to-program/ 11/34
Vocês Devem Estar se Perguntando... 12/34
Vocês Devem Estar se Perguntando... 13/34
Vocês Devem Estar se Perguntando... 14/34
Abordagem Há duas alternativas para iniciar o aprendizado sobre programação: Começar com uma linguagem de programação real, mas sofrer com os empecilhos que elas impõem para o aprendizado de iniciantes. Utilizar uma linguagem de programação para iniciantes, usufruindo da simplicidade oferecida para o aprendizado, mas sabendo que ela não é poderá ser utilizada para a implementação de aplicações reais. Python, como veremos nos próximos dois slides, combina os melhores aspectos dessas duas abordagens! 15/34
Por que Python? Os conceitos fundamentais da linguagem são simples de entender. A sintaxe da linguagem é clara e fácil de aprender. Os tipos pré-definidos incluídos na linguagem são poderosos e, ainda assim, simples de entender. A linguagem possui um interpretador de comandos interativo que permite aprender e testar rapidamente trechos de código. É possível escrever extensões em outras linguagens, como C e C++. 16/34
Por que Python? Existe suporte para uma grande diversidade de bibliotecas externas. Python é uma linguagem que está crescendo muito no contexto da computação científica, que é algo muito útil em engenharia e ciência em geral. Veremos alguns exemplos no final da aula, caso o tempo permita... Programadores da NASA e do Google, por exemplo, utilizam Python! Multiplataforma: Windows, Linux, Mac... Python é software livre e, portanto, grátis. Existe uma comunidade grande e muito ativa. Há muito material disponível! 17/34
Por que Python? 18/34
Por que Python? O Zen do Python, por Tim Peters Bonito é melhor que feio. Explícito é melhor que implícito. Simples é melhor que complexo. Complexo é melhor que complicado. Linear é melhor do que aninhado. Esparso é melhor que denso. Legibilidade conta. Casos especiais não são especiais o bastante para quebrar as regras. Ainda que praticidade vença a pureza. Erros nunca devem passar silenciosamente. A menos que sejam explicitamente silenciados. Diante da ambiguidade, recuse a tentação de adivinhar. Deveria haver um e preferencialmente só um modo óbvio para fazer algo. Embora esse modo possa não ser óbvio a princípio a menos que você seja holandês. Agora é melhor que nunca. Embora nunca frequentemente seja melhor que *já*. Se a implementação é difícil de explicar, é uma má ideia Se a implementação é fácil de explicar, pode ser uma boa ideia Namespaces são uma grande ideia vamos ter mais dessas! 19/34
Por que Python? http://www.python.org/about/success/ 20/34
Por que Python? http://www.python.org.br/wiki/empresaspython 21/34
Por que Python? 22/34
Aspectos Importantes A disciplina não tem como objetivo principal o estudo da linguagem Python, mas sim o estudo de programação. Portanto, apesar da linguagem Python ser muito poderosa, em muitos casos, para que seja privilegiado o exercício da lógica de programação, os recursos, apesar de disponíveis, não serão utilizados. Muitos cursos introdutórios de algoritmos e programação são centrados em listar as funcionalidades de uma linguagem de programação (mesmo que seja o Portugol). 23/34
Aspectos Importantes Entretanto, aprender a programar consiste em aprender a pensar como um programador. Assim, nesta disciplina o esforço será concentrado no processo do pensamento: Estudaremos programação como uma técnica de resolução de problemas. Programar não é fácil, mas pode ser divertido! São requisitos básicos o esforço individual de cada um e a atitude correta (isso vale para a vida em geral). Só se aprende a programar programando! 24/34
Do que Precisaremos? Uma implementação da linguagem: http://www.python.org Há um instalador para o Windows. O Linux normalmente já vem com o interpretador. Versões mais novas em 20/03/2014: 2.7.6 e 3.4.0. http://code.google.com/p/pythonxy/ Essa é a distribuição que eu utilizo, baseada atualmente na versão 2.7.6. Um editor (de texto puro ): O ambiente IDLE, que faz parte da distribuição para Windows, inclui um editor. Que versão utilizaremos? 25/34
Do que Precisaremos? 26/34
Do que Precisaremos? 27/34
Do que Precisaremos? Aprender a programar é como aprender a jogar xadrez: Entender as regras básicas é simples, mas conseguir dominá-las e fazê-las funcionar em conjunto é mais difícil! Por isso, precisaremos de: Curiosidade e vontade de aprender. Humildade. Paciência. Perseverança. 28/34
Visão Comum do Mundo 29/34
Visão Científica (Curiosa) de Mundo 30/34
Perseverança! Sempre! 31/34
Uma Pergunta Pertinente Renato, por que você não utiliza a versão mais nova da linguagem? 32/34
Primeiros Passos Python interativo: Rode o interpretador. Digite comandos Python. Cada comando é executado imediatamente. Executando um programa Python: Escreva um programa Python. Invoque o interpretador para executá-lo. Vamos brincar um pouco... 33/34
That's All Folks! 34/34