37
Programação de Computadores Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais CONSIDERAÇÕES INICIAIS

Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

  • Upload
    dotu

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

Programação de Computadores

Renato Dourado MaiaInstituto de Ciências Agrárias

Universidade Federal de Minas Gerais

CONSIDERAÇÕES INICIAIS

Page 2: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 2/37

Página da Disciplina

• O material será disponibilizado por meio da página da dis-ciplina:– http://www.renatomaia.net.

• Os contatos deverão ser feitos por meio dos seguintes e-mails:– [email protected] para questões relacionadas à disciplina.– [email protected] para questões gerais.

Page 3: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 3/37

Informações Gerais

• As informações gerais (objetivo, motivação, ementa, bibli-ografia e avaliação) podem ser consultadas no plano da disciplina, que está disponível na página.– Cabe destacar que a versão disponibilizada na página é apenas

para consulta e, portanto, não possui validade legal!

Page 4: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 4/37

Vamos aprender a fazer programas!

Page 5: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 5/37

Questão Fundamental

Por que programar?

Page 6: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 6/37

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 7: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 7/37

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 8: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 8/37

Muitos Pensam que Programar é...

Veremos que isso não é verdade!

Coisa de LoucoBruxaria

Coisa de Outro Mundo

Apenas paraNinjas

Page 9: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 9/37

Vocês Devem Estar se Perguntando...

Mas programar não é apenas para

quem estuda computação?

Page 10: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 10/37

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 11: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 11/37

Vocês Devem Estar se Perguntando...

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

Page 12: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 12/37

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 13: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 13/37

Vocês Devem Estar se Perguntando...

• http://code.google.com/p/rur-ple/• http://code.google.com/p/play-to-program/

Page 14: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 14/37

Vocês Devem Estar se Perguntando...

Page 15: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 15/37

Vocês Devem Estar se Perguntando...

Page 16: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 16/37

Vocês Devem Estar se Perguntando...

Page 17: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 17/37

Novidade

• Algoritmo e Programação Matemática/Programação de Computadores:– Antes: Algoritmo + Portugol (houve uma tentativa com C).

✔ Essa é uma abordagem clássica.– Desde 2012: Algoritmo + Python.

Por que mudar? Por que Python?

Page 18: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 18/37

Por que Mudar?

• 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 19: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 19/37

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 20: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 20/37

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 21: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 21/37

Por que Python?

Page 22: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 22/37

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 23: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 23/37

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

Page 24: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 24/37

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

Page 25: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 25/37

Por que Python?

Page 26: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 26/37

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 27: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 27/37

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 28: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 28/37

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 06/02/2014: 2.7.6 e 3.3.3.

– http://code.google.com/p/pythonxy/✔ Essa é a distribuição que eu utilizo, baseada atualmente na versão 2.7.5.

• 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 29: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 29/37

Do que Precisaremos?

Page 30: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 30/37

Do que Precisaremos?

Page 31: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 31/37

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 32: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 32/37

Visão Comum do Mundo

Page 33: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 33/37

Visão Científica (Curiosa) de Mundo

Page 34: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 34/37

Perseverança! Sempre!

Page 35: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 35/37

Uma Pergunta Pertinente

Renato, por que você não utiliza a versão mais nova

da linguagem?

Page 36: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 36/37

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 37: Programação de Computadores - renatomaia.netrenatomaia.net/arquivos/Ufmg/PC/1_Inicio.pdf · Albert Einstein. 18/02/14 ... • Há duas alternativas para iniciar o aprendizado sobre

18/02/14 Programação de Computadores – Renato Dourado Maia 37/37

That's All Folks!