Upload
guilherme-caraciolo
View
5.980
Download
2
Embed Size (px)
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.
Citation preview
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/