Ensinando a programar através do Python turtle graphics

8,106 views

Published on

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.

Published in: Education
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,106
On SlideShare
0
From Embeds
0
Number of Embeds
1,299
Actions
Shares
0
Downloads
134
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Ensinando a programar através do Python turtle graphics

  1. 1. Ensinando a Programar Através do Turtle Graphics For Tk Guilherme Medeiros www.FReNeTiC.com.br @FReNeTiC_Br
  2. 2. TURTLE? LOGO? QUEDIABÉISSO? Introdução
  3. 3. A Linguagem LOGO <ul><li>Criada em 1967 </li></ul><ul><ul><li>Daniel Bobrow </li></ul></ul><ul><ul><li>Wally Feurzeig </li></ul></ul><ul><ul><li>Seymour Papert </li></ul></ul><ul><ul><li>Cynthia Solomon </li></ul></ul><ul><li>Linguagem funcional </li></ul><ul><ul><li>Uma adaptação da linguagem LISP </li></ul></ul><ul><li>Criada para ter um propósito educacional </li></ul><ul><ul><li>Mas poderosa o suficiente para programadores experientes </li></ul></ul>
  4. 4. Turtle Robots (Robôs tartaruga) <ul><li>Uma classe de robôs educacionais </li></ul><ul><ul><li>Ciência da Computação, engenharias, eletrônica etc </li></ul></ul><ul><li>Idealizados em 1940 </li></ul><ul><li>Podem possuir sensores </li></ul><ul><li>Obedecem a uma seqüência de comandos </li></ul>
  5. 5. Turtle Graphics (Gráficos tartaruga) <ul><li>Baseado na idéia das tartarugas robôs </li></ul><ul><li>Inserido na linguagem LOGO por Seymour Papert </li></ul><ul><ul><li>A tela (display) é um plano cartesiano </li></ul></ul><ul><ul><li>A seqüência de comando movimentam o cursor </li></ul></ul><ul><ul><ul><li>O cursor pode ser qualquer coisa, geralmente é uma tartaruga </li></ul></ul></ul><ul><ul><li>O cursos pode, ou não, pintar a sua trajetória </li></ul></ul>
  6. 6. O Que Python Tem a Ver Com Isso? <ul><li>Python possui o módulo Turtle </li></ul><ul><ul><li>Uma implementação fiel ao modelo original </li></ul></ul><ul><ul><li>Utiliza o Tkinter para renderizar seus gráficos </li></ul></ul><ul><li>Fácil de usar! </li></ul><ul><ul><li>A simplicidade da linguagem Python </li></ul></ul><ul><ul><li>Basta import turtle para começar a brincar </li></ul></ul><ul><li>Total Flex </li></ul><ul><ul><li>Orientado a objetos? Funcional? </li></ul></ul><ul><ul><ul><li>Tanto faz, é você quem determina. Tanto faz, vai de álcool ou gasolina... </li></ul></ul></ul>
  7. 7. POR QUE SIM NÃO É RESPOSTA! Por Que Ensinar a Programar?
  8. 8. Por Que Ensinar a Programar? <ul><li>Todo mundo tem um computador </li></ul><ul><ul><li>Ensinar como os programar funcionam e como fazê-lo ajuda no entendimento da tecnologia </li></ul></ul><ul><li>Saber programar ajuda no: </li></ul><ul><ul><li>Entendimento cognitivo e na formação do pensamento lógico </li></ul></ul><ul><ul><li>Aprendizado da matemática e do inglês </li></ul></ul><ul><ul><li>Socialização </li></ul></ul><ul><ul><ul><li>Pode-se mostrar a “coisa legal que você fez” para seus conhecidos </li></ul></ul></ul><ul><ul><ul><li>Programar em grupo é mais simples, fácil e divertido. Vide o PUG-PE! </li></ul></ul></ul>
  9. 9. Por Que Ensinar a Programar? <ul><li>Movimenta a curiosidade </li></ul><ul><ul><li>Quanto mais se aprende e se constrói, mas se quer aprender e construir. </li></ul></ul><ul><li>Ensina a ser organizado </li></ul><ul><ul><li>Quem faz mal feito não sabe concertar o que fez </li></ul></ul><ul><li>Ensina limites e regras </li></ul><ul><ul><li>Se você não segue as regras, seu programa não funciona. </li></ul></ul><ul><li>Ensina a aprender </li></ul><ul><ul><li>Quando se “empaca” em um problema, o que se faz? </li></ul></ul><ul><ul><ul><li>Pedir ajuda </li></ul></ul></ul><ul><ul><ul><li>Pesquisar uma solução </li></ul></ul></ul>
  10. 10. COMANDOS BÁSICOS O Módulo Turtle
  11. 11. Iniciando a Brincadeira <ul><li>Criando uma área para brincar </li></ul><ul><ul><li>turtle . Screen() </li></ul></ul><ul><li>Cade a tartaruga? </li></ul><ul><ul><li>turtle . showturtle() </li></ul></ul><ul><ul><li>turtle . st() </li></ul></ul><ul><li>E se eu quiser escondê-la? </li></ul><ul><ul><li>turtle . hideturtle() </li></ul></ul><ul><ul><li>turtle . ht() </li></ul></ul>
  12. 12. Mas Isso Não É Uma Tartaruga!!! <ul><li>Mudando o formato da tartaruga </li></ul><ul><ul><li>turtle . shape( [valor] ) </li></ul></ul><ul><ul><ul><li>“ arrow” </li></ul></ul></ul><ul><ul><ul><li>“ turtle” </li></ul></ul></ul><ul><ul><ul><li>“ circle” </li></ul></ul></ul><ul><ul><ul><li>“ square” </li></ul></ul></ul><ul><ul><ul><li>“ triangle” </li></ul></ul></ul><ul><ul><ul><li>“ classic” </li></ul></ul></ul>
  13. 13. Movimentando a Tartaruga <ul><li>Para frente </li></ul><ul><ul><li>turtle . forward( valor ) </li></ul></ul><ul><ul><li>turtle . fd( valor ) </li></ul></ul><ul><ul><ul><li>Um número real </li></ul></ul></ul><ul><li>Para trás </li></ul><ul><ul><li>turtle . backward( valor ) </li></ul></ul><ul><ul><li>turtle . bk( valor ) </li></ul></ul><ul><ul><li>turtle . back( valor ) </li></ul></ul><ul><ul><ul><li>Um número real </li></ul></ul></ul>
  14. 14. Indo de Ponto a Ponto <ul><li>turtle . goto( valor ) </li></ul><ul><li>turtle . setpos( valor ) </li></ul><ul><li>turtle . setposition( valor ) </li></ul><ul><ul><li>Valor é um par de coordenadas cartesianas tal qual 0,0 </li></ul></ul>
  15. 15. Girando a tartaruga <ul><li>Trabalhando com ângulos </li></ul><ul><ul><li>Graus (padrão) </li></ul></ul><ul><ul><ul><li>turtle . degrees() </li></ul></ul></ul><ul><ul><li>Radianos </li></ul></ul><ul><ul><ul><li>turtle . radians() </li></ul></ul></ul><ul><li>Girando para a direita </li></ul><ul><ul><li>turtle . right( valor ) ou turtle . rt( valor ) </li></ul></ul><ul><li>Girando para a esquerda </li></ul><ul><ul><li>turtle . left( valor ) ou turtle . lt( valor ) </li></ul></ul><ul><li>Valor do ângulo para virar a tartaruga </li></ul>
  16. 16. Riscar ou não riscar? <ul><li>Para riscar, abaixe a caneta </li></ul><ul><ul><li>turtle . pendown() </li></ul></ul><ul><ul><li>turtle . pd() </li></ul></ul><ul><ul><li>turtle . down() </li></ul></ul><ul><li>Para não riscar, levante a caneta </li></ul><ul><ul><li>turtle . penup() </li></ul></ul><ul><ul><li>turtle . pu() </li></ul></ul><ul><ul><li>turtle . up() </li></ul></ul>
  17. 17. Largura do Traço <ul><li>turtle . pensize( valor ) </li></ul><ul><li>turtle . width( valor ) </li></ul><ul><ul><li>Valor deve ser um número positivo </li></ul></ul>
  18. 18. Cores <ul><li>Cor da Caneta </li></ul><ul><ul><li>turtle . pencolor( [valor] ) </li></ul></ul><ul><li>Cor do preenchimento </li></ul><ul><ul><li>turtle . fillcolor( [valor] ) </li></ul></ul><ul><li>Valor pode ser </li></ul><ul><ul><li>Uma string como “red”, “green” ou “#336699” </li></ul></ul><ul><ul><li>Uma tupla rgb (100, 200, 150) </li></ul></ul><ul><ul><li>Três números inteiros representando rgb </li></ul></ul><ul><ul><ul><li>fillcolor(100, 200, 150) </li></ul></ul></ul>
  19. 19. Últimos Comandos Interessantes <ul><li>Limpando a tela </li></ul><ul><ul><li>turtle . clear() </li></ul></ul><ul><li>Começando tudo de novo </li></ul><ul><ul><li>turtle . reset() </li></ul></ul><ul><li>Preenchendo um desenho </li></ul><ul><ul><li>Execute turtle . fill( True ) antes de começar o desenho e turtle . fill( False ) após terminá-lo </li></ul></ul><ul><li>Levando a tartaruga para (0, 0) </li></ul><ul><ul><li>turtle . home() </li></ul></ul>
  20. 20. TODO MUNDO GOSTA DO QUE É FÁCIL E DIVERTIDO Como Ensinar a Programar?
  21. 21. Comece Pelo Começo <ul><li>A primeira coisa a se fazer é dizer o que vai ser feito. </li></ul><ul><ul><li>Fale o que é Python e como é bom programar </li></ul></ul><ul><ul><li>Mostre o Turtle, faça VOCÊ alguns exemplos simples e divertidos </li></ul></ul><ul><ul><ul><li>Que tal desenhar uma casa? </li></ul></ul></ul><ul><li>Ensine como “ligar” o turtle e alguns comandos legais deste módulo </li></ul>
  22. 23. Passos de Bebê <ul><li>Ensine um pouco de variáveis Python </li></ul><ul><ul><li>Uma idéia simples é criar um retângulo. Mas a altura e a largura são duas variáveis Python </li></ul></ul><ul><li>Mostre que as ordens dos fatores altera o produto </li></ul><ul><ul><li>Utilize o exemplo anterior, mas agora utilizando turtle . fill() para preencher o quadrado </li></ul></ul>
  23. 24. Um Retângulo Variável
  24. 25. A Ordem Dos Fatores Altera o Produto
  25. 26. Regras Existem! <ul><li>Mostre que até para programar existem regras </li></ul><ul><ul><li>Criar 3 variáveis para receber números entre 0 e 250 </li></ul></ul><ul><ul><li>Utilizar turtle . fillcolor() no exemplo do retângulo preenchido </li></ul></ul><ul><ul><li>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. </li></ul></ul><ul><ul><li>Inclusive, mostre que trocar a ordem que os dados entram na função podem danificar todo o programa! </li></ul></ul>
  26. 28. Aumento o Nível Sem Medo <ul><li>Ensine os loops </li></ul><ul><ul><li>Fazer uma circunferência é um bom exemplo </li></ul></ul><ul><li>Ensine a pesquisar e aprender </li></ul><ul><ul><li>Fale que turtle tem mais comandos do que os quais você ensinou. Diga onde pesquisar e deixe que comece a aprendizado fluir </li></ul></ul><ul><li>Ensine procedimentos </li></ul><ul><ul><li>Refazer o exemplo do retângulo variável, mas agora como um procedimento, é uma boa idéia </li></ul></ul>
  27. 29. Ensinando Loop
  28. 30. Ensinando Procedimentos
  29. 31. E o Que Mais? <ul><li>Mostre como fazer os gráficos das funções aprendidas na escola </li></ul><ul><li>Crie Desafios </li></ul><ul><ul><li>Desafios são divertidos e estimulantes </li></ul></ul><ul><ul><ul><li>Se tiver premiação então, todo mundo vai querer competir! </li></ul></ul></ul><ul><li>Quando for tirar dúvidas nunca dê a resposta de cara </li></ul><ul><ul><li>Fale onde pesquisar </li></ul></ul><ul><ul><li>Mostre como se deve raciocinar </li></ul></ul><ul><ul><li>Dê dicas </li></ul></ul><ul><ul><li>Se não houver saída, ai sim mostre a resposta </li></ul></ul><ul><li>Tenha paciência </li></ul><ul><ul><ul><li>Lembre-se: Nem todo mundo nasce sabendo e as pessoas são diferentes e aprendem de forma diferente. </li></ul></ul></ul>
  30. 32. UM PASSO A FRENTE E VOCÊ JÁ NÃO ESTÁ NO MESMO LUGAR Ensinando a Programar
  31. 33. O que Vem a Seguir? <ul><li>Turtle não é apenas para ensinar a programar </li></ul><ul><ul><li>Apesar de ser voltado a isso, pode-se incluir o turtle em programas para, por exemplo, criar gráficos e curvas </li></ul></ul><ul><li>Programar não se limita ao turtle </li></ul><ul><ul><li>Muitos módulos existem no Python </li></ul></ul><ul><ul><li>Existem muitos motivos para programar </li></ul></ul><ul><ul><ul><li>Pode-se usar programação para facilitar tarefas repetitivas ou resolver problemas do dia-a-dia </li></ul></ul></ul><ul><li>A orientação a objeto existe </li></ul>
  32. 34. Obrigado Pela Atenção Venham sempre aos encontros do PUG-PE!
  33. 35. Referências
  34. 36. Fontes e Referências <ul><li>Turtle Robot </li></ul><ul><ul><ul><li>http://en.wikipedia.org/wiki/Turtle_%28robot%29 </li></ul></ul></ul><ul><li>Logo Programming </li></ul><ul><ul><ul><li>http://en.wikipedia.org/wiki/Logo_programming_language </li></ul></ul></ul><ul><li>Turtle Graphics </li></ul><ul><ul><ul><li>http://en.wikipedia.org/wiki/Turtle_graphics </li></ul></ul></ul><ul><li>Logo Foundation </li></ul><ul><ul><ul><li>http://el.media.mit.edu/logo-foundation/ </li></ul></ul></ul><ul><li>Turtle Module </li></ul><ul><ul><ul><li>http://docs.python.org/library/turtle.html </li></ul></ul></ul>
  35. 37. Fontes e Referências <ul><li>Seven Ways to Use Turtle </li></ul><ul><ul><ul><li>http://us.pycon.org/2009/conference/schedule/event/65/ </li></ul></ul></ul><ul><li>Teaching Kids How to Write Computer Programs </li></ul><ul><ul><ul><li>http://www.marshallbrain.com/kids-programming.htm </li></ul></ul></ul><ul><li>How to Teach Programming to Kids </li></ul><ul><ul><ul><li>http://chris.pirillo.com/how-to-teach-programming-to-kids/ </li></ul></ul></ul>

×