34
Informática Aplicada à Engenharia Florestal Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais INTRODUÇÃO

Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

  • Upload
    others

  • View
    15

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

Informática Aplicada à Engenharia Florestal

Renato Dourado MaiaInstituto de Ciências Agrárias

Universidade Federal de Minas Gerais

INTRODUÇÃO

Page 2: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 2/34

Vamos aprender a fazer programas!

Page 3: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 3/34

Questão Fundamental

Por que programar?

Page 4: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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...

Page 5: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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

Page 6: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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

Page 7: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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?

Page 8: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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

Page 9: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 9/34

Vocês Devem Estar se Perguntando...

Ah, Renato, você está exagerando...

Page 10: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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.

Page 11: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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/

Page 12: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 12/34

Vocês Devem Estar se Perguntando...

Page 13: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 13/34

Vocês Devem Estar se Perguntando...

Page 14: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 14/34

Vocês Devem Estar se Perguntando...

Page 15: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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!

Page 16: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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++.

Page 17: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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!

Page 18: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 18/34

Por que Python?

Page 19: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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!

Page 20: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 20/34

Por que Python?http://www.python.org/about/success/

Page 21: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 21/34

Por que Python?http://www.python.org.br/wiki/EmpresasPython

Page 22: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 22/34

Por que Python?

Page 23: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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).

Page 24: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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!

Page 25: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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?

Page 26: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 26/34

Do que Precisaremos?

Page 27: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 27/34

Do que Precisaremos?

Page 28: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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.

Page 29: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 29/34

Visão Comum do Mundo

Page 30: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 30/34

Visão Científica (Curiosa) de Mundo

Page 31: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 31/34

Perseverança! Sempre!

Page 32: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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?

Page 33: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

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...

Page 34: Informática Aplicada à Engenharia Florestalrenatomaia.net/arquivos/Ufmg/IAEF/2_Introducao.pdf · 20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 15/34

20/03/14 Informática Aplicada à Engenharia Florestal – Renato Dourado Maia 34/34

That's All Folks!