![Page 1: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/1.jpg)
Ensinando a Programar Através do Turtle Graphics
For TkGuilherme Medeiros
www.FReNeTiC.com.br@FReNeTiC_Br
![Page 2: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/2.jpg)
TURTLE? LOGO? QUEDIABÉISSO?
Introdução
![Page 3: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/3.jpg)
A Linguagem LOGO• Criada em 1967– Daniel Bobrow– Wally Feurzeig– Seymour Papert– Cynthia Solomon
• Linguagem funcional– Uma adaptação da linguagem LISP
• Criada para ter um propósito educacional– Mas poderosa o suficiente para
programadores experientes
![Page 4: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/4.jpg)
Turtle Robots (Robôs tartaruga)
• Uma classe de robôs educacionais– Ciência da Computação, engenharias,
eletrônica etc
• Idealizados em 1940• Podem possuir sensores• Obedecem a uma seqüência de
comandos
![Page 5: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/5.jpg)
Turtle Graphics (Gráficos tartaruga)
• Baseado na idéia das tartarugas robôs• Inserido na linguagem LOGO por
Seymour Papert– A tela (display) é um plano cartesiano– A seqüência de comando movimentam o
cursor• O cursor pode ser qualquer coisa,
geralmente é uma tartaruga
– O cursos pode, ou não, pintar a sua trajetória
![Page 6: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/6.jpg)
O Que Python Tem a Ver Com Isso?
• Python possui o módulo Turtle– Uma implementação fiel ao modelo original– Utiliza o Tkinter para renderizar seus gráficos
• Fácil de usar!– A simplicidade da linguagem Python– Basta import turtle para começar a brincar
• Total Flex– Orientado a objetos? Funcional?
• Tanto faz, é você quem determina. Tanto faz, vai de álcool ou gasolina...
![Page 7: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/7.jpg)
POR QUE SIM NÃO É RESPOSTA!
Por Que Ensinar a Programar?
![Page 8: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/8.jpg)
Por Que Ensinar a Programar?• Todo mundo tem um computador– Ensinar como os programar funcionam e como
fazê-lo ajuda no entendimento da tecnologia
• Saber programar ajuda no:– Entendimento cognitivo e na formação do
pensamento lógico– Aprendizado da matemática e do inglês– Socialização
• Pode-se mostrar a “coisa legal que você fez” para seus conhecidos
• Programar em grupo é mais simples, fácil e divertido. Vide o PUG-PE!
![Page 9: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/9.jpg)
Por Que Ensinar a Programar?• Movimenta a curiosidade– Quanto mais se aprende e se constrói, mas se
quer aprender e construir.• Ensina a ser organizado– Quem faz mal feito não sabe concertar o que
fez• Ensina limites e regras– Se você não segue as regras, seu programa
não funciona.• Ensina a aprender– Quando se “empaca” em um problema, o que
se faz?• Pedir ajuda• Pesquisar uma solução
![Page 10: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/10.jpg)
COMANDOS BÁSICOSO Módulo Turtle
![Page 11: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/11.jpg)
Iniciando a Brincadeira
• Criando uma área para brincar– turtle.Screen()
• Cade a tartaruga?– turtle.showturtle()– turtle.st()
• E se eu quiser escondê-la?– turtle.hideturtle()– turtle.ht()
![Page 12: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/12.jpg)
Mas Isso Não É Uma Tartaruga!!!
• Mudando o formato da tartaruga– turtle.shape([valor])• “arrow”• “turtle”• “circle”• “square”• “triangle”• “classic”
![Page 13: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/13.jpg)
Movimentando a Tartaruga
• Para frente– turtle.forward(valor)– turtle.fd(valor)• Um número real
• Para trás– turtle.backward(valor)– turtle.bk(valor)– turtle.back(valor)• Um número real
![Page 14: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/14.jpg)
Indo de Ponto a Ponto
• turtle.goto(valor)• turtle.setpos(valor)• turtle.setposition(valor)– Valor é um par de coordenadas cartesianas
tal qual 0,0
![Page 15: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/15.jpg)
Girando a tartaruga
• Trabalhando com ângulos– Graus (padrão)• turtle.degrees()
– Radianos• turtle.radians()
• Girando para a direita– turtle.right(valor) ou turtle.rt(valor)
• Girando para a esquerda– turtle.left(valor) ou turtle.lt(valor)
• Valor do ângulo para virar a tartaruga
![Page 16: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/16.jpg)
Riscar ou não riscar?
• Para riscar, abaixe a caneta– turtle.pendown()– turtle.pd()– turtle.down()
• Para não riscar, levante a caneta– turtle.penup()– turtle.pu()– turtle.up()
![Page 17: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/17.jpg)
Largura do Traço
• turtle.pensize(valor)• turtle.width(valor)– Valor deve ser um número positivo
![Page 18: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/18.jpg)
Cores
• Cor da Caneta– turtle.pencolor([valor])
• Cor do preenchimento– turtle.fillcolor([valor])
• Valor pode ser– Uma string como “red”, “green” ou
“#336699”– Uma tupla rgb (100, 200, 150)– Três números inteiros representando rgb• fillcolor(100, 200, 150)
![Page 19: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/19.jpg)
Últimos Comandos Interessantes
• Limpando a tela– turtle.clear()
• Começando tudo de novo– turtle.reset()
• Preenchendo um desenho– Execute turtle.fill(True) antes de começar
o desenho e turtle.fill(False) após terminá-lo
• Levando a tartaruga para (0, 0)– turtle.home()
![Page 20: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/20.jpg)
TODO MUNDO GOSTA DO QUE É FÁCIL E DIVERTIDO
Como Ensinar a Programar?
![Page 21: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/21.jpg)
Comece Pelo Começo
• A primeira coisa a se fazer é dizer o que vai ser feito.– Fale o que é Python e como é bom
programar– Mostre o Turtle, faça VOCÊ alguns
exemplos simples e divertidos• Que tal desenhar uma casa?
• Ensine como “ligar” o turtle e alguns comandos legais deste módulo
![Page 22: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/22.jpg)
![Page 23: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/23.jpg)
Passos de Bebê
• Ensine um pouco de variáveis Python– Uma idéia simples é criar um retângulo.
Mas a altura e a largura são duas variáveis Python
• Mostre que as ordens dos fatores altera o produto– Utilize o exemplo anterior, mas agora
utilizando turtle.fill() para preencher o quadrado
![Page 24: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/24.jpg)
Um Retângulo Variável
![Page 25: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/25.jpg)
A Ordem Dos Fatores Altera o Produto
![Page 26: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/26.jpg)
Regras Existem!• Mostre que até para programar existem
regras– Criar 3 variáveis para receber números entre 0
e 250– Utilizar turtle.fillcolor() no exemplo do
retângulo preenchido– Mostre que esquecer de vírgulas, utilizar
números reais onde deve-se utilizar inteiros, ou outra ação não permitida, faz com que o programa não rode.
– Inclusive, mostre que trocar a ordem que os dados entram na função podem danificar todo o programa!
![Page 27: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/27.jpg)
![Page 28: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/28.jpg)
Aumento o Nível Sem Medo
• Ensine os loops– Fazer uma circunferência é um bom
exemplo
• Ensine a pesquisar e aprender– Fale que turtle tem mais comandos do que
os quais você ensinou. Diga onde pesquisar e deixe que comece a aprendizado fluir
• Ensine procedimentos– Refazer o exemplo do retângulo variável,
mas agora como um procedimento, é uma boa idéia
![Page 29: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/29.jpg)
Ensinando Loop
![Page 30: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/30.jpg)
Ensinando Procedimentos
![Page 31: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/31.jpg)
E o Que Mais?• Mostre como fazer os gráficos das funções
aprendidas na escola• Crie Desafios
– Desafios são divertidos e estimulantes• Se tiver premiação então, todo mundo vai querer
competir!• Quando for tirar dúvidas nunca dê a resposta
de cara– Fale onde pesquisar– Mostre como se deve raciocinar– Dê dicas– Se não houver saída, ai sim mostre a resposta
• Tenha paciência• Lembre-se: Nem todo mundo nasce sabendo e as
pessoas são diferentes e aprendem de forma diferente.
![Page 32: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/32.jpg)
UM PASSO A FRENTE E VOCÊ JÁ NÃO ESTÁ NO MESMO LUGAR
Ensinando a Programar
![Page 33: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/33.jpg)
O que Vem a Seguir?
• Turtle não é apenas para ensinar a programar– Apesar de ser voltado a isso, pode-se incluir o
turtle em programas para, por exemplo, criar gráficos e curvas
• Programar não se limita ao turtle– Muitos módulos existem no Python– Existem muitos motivos para programar
• Pode-se usar programação para facilitar tarefas repetitivas ou resolver problemas do dia-a-dia
• A orientação a objeto existe
![Page 34: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/34.jpg)
Obrigado Pela Atenção
Venham sempre aos encontros do PUG-PE!
![Page 35: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/35.jpg)
Referências
![Page 36: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/36.jpg)
Fontes e Referências
• Turtle Robot• http://en.wikipedia.org/wiki/Turtle_%28robot%29
• Logo Programming• http://en.wikipedia.org/wiki/
Logo_programming_language• Turtle Graphics
• http://en.wikipedia.org/wiki/Turtle_graphics• Logo Foundation
• http://el.media.mit.edu/logo-foundation/• Turtle Module
• http://docs.python.org/library/turtle.html
![Page 37: Ensinando a programar através do Python turtle graphics](https://reader030.vdocuments.pub/reader030/viewer/2022012403/549654b1ac79592f2e8b50be/html5/thumbnails/37.jpg)
Fontes e Referências
• Seven Ways to Use Turtle• http://us.pycon.org/2009/conference/
schedule/event/65/
• Teaching Kids How to Write Computer Programs
• http://www.marshallbrain.com/kids-programming.htm
• How to Teach Programming to Kids• http://chris.pirillo.com/how-to-teach-
programming-to-kids/