Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf ·...
Transcript of Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf ·...
Informática Aplicada à Engenharia Florestal
Renato Dourado MaiaInstituto de Ciências Agrárias
Universidade Federal de Minas Gerais
INTRODUÇÃO
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 2/34
Vamos aprender a fazer programas!
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 3/34
Questão Fundamental
Por que programar?
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 4/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...
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 5/34
Por Que Programar?
“Os computadores são incrivelmente rápidos, preci-sos e burros. Os homens são incrivelmente lentos,
imprecisos e brilhantes. Juntos, seu poder ultrapas-sa os limites da imaginação.”
Albert Einstein
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 6/34
Muitos Pensam que Programar é...
Veremos que isso não é verdade!
Coisa de LoucoBruxaria
Coisa de Outro Mundo
Apenas paraNinjas
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 7/34
Vocês Devem Estar se Perguntando...
Mas programar não é apenas para
quem estuda computação?
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 8/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
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 9/34
Vocês Devem Estar se Perguntando...
Ah, Renato, você está exagerando...
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 10/34
Vocês Devem Estar se Perguntando...
• http://www.manning.com/sande/• http://helloworldbookblog.com/“Computer programming is a pow-erful tool for children to ‘learn learning,’ that is, to learn the skills of thinking and problem-solving… Children who engage in program-ming transfer that kind of learning to other things.” –Nicholas Negro-ponte, the man behind the One Laptop Per Child project.
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 11/34
Vocês Devem Estar se Perguntando...
• http://code.google.com/p/rur-ple/• http://code.google.com/p/play-to-program/
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 12/34
Vocês Devem Estar se Perguntando...
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 13/34
Vocês Devem Estar se Perguntando...
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 14/34
Vocês Devem Estar se Perguntando...
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34
Abordagem
• Há duas alternativas para iniciar o aprendizado sobre pro-gramação:– Começar com uma linguagem de programação real, mas “sofrer”
com os empecilhos que elas impõem para o aprendizado de inici-antes.
– Utilizar uma linguagem de programação para iniciantes, usufru-indo da simplicidade oferecida para o aprendizado, mas sabendo que ela não é poderá ser utilizada para a implementação de apli-cações “reais”.
• Python, como veremos nos próximos dois slides, combina os melhores aspectos dessas duas abordagens!
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 16/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 podero-
sos e, ainda assim, simples de entender.• A linguagem possui um interpretador de comandos inte-
rativo que permite aprender e testar rapidamente trechos de código.
• É possível escrever extensões em outras linguagens, como C e C++.
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 17/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!
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 18/34
Por que Python?
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 19/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á ideiaSe a implementação é fácil de explicar, pode ser uma boa ideiaNamespaces são uma grande ideia — vamos ter mais dessas!
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 20/34
Por que Python?http://www.python.org/about/success/
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 21/34
Por que Python?http://www.python.org.br/wiki/EmpresasPython
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 22/34
Por que Python?
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 23/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 podero-sa, em muitos casos, para que seja privilegiado o exercício da lógica de programação, os recursos, apesar de dispo-níveis, não serão utilizados.
• Muitos cursos introdutórios de algoritmos e programação são centrados em listar as funcionalidades de uma lingua-gem de programação (mesmo que seja o Portugol).
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 24/34
Aspectos Importantes
• Entretanto, aprender a programar consiste em aprender a pensar como um programador.
• Assim, nesta disciplina o esforço será concentrado no pro-cesso 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 atitu-
de correta (isso vale para a vida em geral).– Só se aprende a programar programando!
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 25/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, in-
clui um editor.
Que versão utilizaremos?
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 26/34
Do que Precisaremos?
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 27/34
Do que Precisaremos?
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 28/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.
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 29/34
Visão Comum do Mundo
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 30/34
Visão Científica (Curiosa) de Mundo
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 31/34
Perseverança! Sempre!
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 32/34
Uma Pergunta Pertinente
Renato, por que você não utiliza a versão mais nova
da linguagem?
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 33/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...
20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 34/34
That's All Folks!