Ensinando a Programar Através do  Turtle Graphics For Tk Guilherme 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ÁSICOS O 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/

Ensinando a programar através do Python turtle graphics

  • 1.
    Ensinando a ProgramarAtravés do Turtle Graphics For Tk Guilherme Medeiros www.FReNeTiC.com.br @FReNeTiC_Br
  • 2.
  • 3.
    A Linguagem LOGOCriada 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
  • 4.
    Turtle Robots (Robôstartaruga) 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
  • 5.
    Turtle Graphics (Gráficostartaruga) 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
  • 6.
    O Que PythonTem 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...
  • 7.
    POR QUE SIMNÃO É RESPOSTA! Por Que Ensinar a Programar?
  • 8.
    Por Que Ensinara 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!
  • 9.
    Por Que Ensinara 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
  • 10.
    COMANDOS BÁSICOS OMódulo Turtle
  • 11.
    Iniciando a BrincadeiraCriando uma área para brincar turtle . Screen() Cade a tartaruga? turtle . showturtle() turtle . st() E se eu quiser escondê-la? turtle . hideturtle() turtle . ht()
  • 12.
    Mas Isso NãoÉ Uma Tartaruga!!! Mudando o formato da tartaruga turtle . shape( [valor] ) “ arrow” “ turtle” “ circle” “ square” “ triangle” “ classic”
  • 13.
    Movimentando a TartarugaPara 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
  • 14.
    Indo de Pontoa Ponto turtle . goto( valor ) turtle . setpos( valor ) turtle . setposition( valor ) Valor é um par de coordenadas cartesianas tal qual 0,0
  • 15.
    Girando a tartarugaTrabalhando 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
  • 16.
    Riscar ou nãoriscar? Para riscar, abaixe a caneta turtle . pendown() turtle . pd() turtle . down() Para não riscar, levante a caneta turtle . penup() turtle . pu() turtle . up()
  • 17.
    Largura do Traçoturtle . pensize( valor ) turtle . width( valor ) Valor deve ser um número positivo
  • 18.
    Cores Cor daCaneta 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)
  • 19.
    Últimos Comandos InteressantesLimpando 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()
  • 20.
    TODO MUNDO GOSTADO QUE É FÁCIL E DIVERTIDO Como Ensinar a Programar?
  • 21.
    Comece Pelo ComeçoA 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
  • 22.
  • 23.
    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
  • 24.
  • 25.
    A Ordem DosFatores Altera o Produto
  • 26.
    Regras Existem! Mostreque 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!
  • 27.
  • 28.
    Aumento o NívelSem 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
  • 29.
  • 30.
  • 31.
    E o QueMais? 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.
  • 32.
    UM PASSO AFRENTE E VOCÊ JÁ NÃO ESTÁ NO MESMO LUGAR Ensinando a Programar
  • 33.
    O que Vema 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
  • 34.
    Obrigado Pela AtençãoVenham sempre aos encontros do PUG-PE!
  • 35.
  • 36.
    Fontes e ReferênciasTurtle 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
  • 37.
    Fontes e ReferênciasSeven 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/