ensinando a programar através do python turtle graphics

Post on 18-Dec-2014

5.974 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

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/

top related