ensinando a programar através do python turtle graphics
DESCRIPTION
Slides da palestra apresentada no XI encontro da comunidade pernambucana de Python.Essa palestra fala um pouco do módulo Turtle da linguagem de programação Python. Módulo que é baseado no Turtle Graphics da linguagem educacional LOGO.A palestra mostra como é fácil utilizar o módulo Turtle e como usá-lo para ensinar QUALQUER PESSOA a programar.TRANSCRIPT
Ensinando a Programar Através do Turtle Graphics
For TkGuilherme Medeiros
www.FReNeTiC.com.br@FReNeTiC_Br
TURTLE? LOGO? QUEDIABÉISSO?
Introdução
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
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
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
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...
POR QUE SIM NÃO É RESPOSTA!
Por Que Ensinar a Programar?
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!
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
COMANDOS BÁSICOSO Módulo Turtle
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()
Mas Isso Não É Uma Tartaruga!!!
• Mudando o formato da tartaruga– turtle.shape([valor])• “arrow”• “turtle”• “circle”• “square”• “triangle”• “classic”
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
Indo de Ponto a Ponto
• turtle.goto(valor)• turtle.setpos(valor)• turtle.setposition(valor)– Valor é um par de coordenadas cartesianas
tal qual 0,0
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
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()
Largura do Traço
• turtle.pensize(valor)• turtle.width(valor)– Valor deve ser um número positivo
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)
Ú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()
TODO MUNDO GOSTA DO QUE É FÁCIL E DIVERTIDO
Como Ensinar a Programar?
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
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
Um Retângulo Variável
A Ordem Dos Fatores Altera o Produto
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!
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
Ensinando Loop
Ensinando Procedimentos
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.
UM PASSO A FRENTE E VOCÊ JÁ NÃO ESTÁ NO MESMO LUGAR
Ensinando a Programar
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
Obrigado Pela Atenção
Venham sempre aos encontros do PUG-PE!
Referências
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
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/