ensinando a programar através do python turtle graphics

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

Upload: guilherme-caraciolo

Post on 18-Dec-2014

5.974 views

Category:

Education


2 download

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

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/