37
Ensinando a Programar Através do Turtle Graphics For Tk Guilherme Medeiros www.FReNeTiC.com.br @FReNeTiC_Br

Ensinando a programar através do Python turtle graphics

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

Page 1: Ensinando a programar através do Python turtle graphics

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

TURTLE? LOGO? QUEDIABÉISSO?

Introdução

Page 3: Ensinando a programar através do Python turtle graphics

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

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

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

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

POR QUE SIM NÃO É RESPOSTA!

Por Que Ensinar a Programar?

Page 8: Ensinando a programar através do Python turtle graphics

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

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

COMANDOS BÁSICOSO Módulo Turtle

Page 11: Ensinando a programar através do Python turtle graphics

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

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

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

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

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

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

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

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

Ú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

TODO MUNDO GOSTA DO QUE É FÁCIL E DIVERTIDO

Como Ensinar a Programar?

Page 21: Ensinando a programar através do Python turtle graphics

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
Page 23: Ensinando a programar através do Python turtle graphics

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

Um Retângulo Variável

Page 25: Ensinando a programar através do Python turtle graphics

A Ordem Dos Fatores Altera o Produto

Page 26: Ensinando a programar através do Python turtle graphics

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
Page 28: Ensinando a programar através do Python turtle graphics

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

Ensinando Loop

Page 30: Ensinando a programar através do Python turtle graphics

Ensinando Procedimentos

Page 31: Ensinando a programar através do Python turtle graphics

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

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

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

Obrigado Pela Atenção

Venham sempre aos encontros do PUG-PE!

Page 35: Ensinando a programar através do Python turtle graphics

Referências

Page 36: Ensinando a programar através do Python turtle graphics

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

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/