Ensinando OO com
 Python, Django
    e PyGame
        Luciano Ramalho
  Academia Python - Globalcode
    python.globalcode.com.br
O problema...
Programar Orientado a Objetos dá mais trabalho
   mais conceitos para aprender, mais código para
   escrever, em mais arquivos
   retrabalho (refatoração)
E as vantagens não ficam evidentes nos programas
pequenos que são usados como exemplos
   reuso de quê?
A solução
Ensinar OO no contexto de uma biblioteca de classes rica
Sempre foi assim em Smalltalk
   linguagem + ambiente
Mas e no mundo real Python?
Django
   popular e útil, resultados rápidos graças ao admin
Tkinter
   integrado na distribuição
PyGame
   com GameEngine
   de Andy Harris
Exemplo com Django

Sistema de entrega de uma pizzaria por telefone
   Atendente recebe uma ligação, identifica o cliente pelo
   telefone ou cadastra um novo cliente e anota as pizzas
   do pedido
   Quando as pizzas ficam prontas, atendende associa um
   entregador ao pedido
Exemplo com Django
Sistema de entrega de uma pizzaria por telefone
   Atendente recebe uma ligação, identifica o cliente
   pelo telefone ou cadastra um novo cliente e anota as
   pizzas do pedido
   Quando o pedido fica pronto, atendende associa
   um entregador ao pedido
UML como meio, não fim
UML como meio, não fim
UML como meio, não fim
UML como meio, não fim
UML como meio, não fim
OO com jogos
Jogos são um ótimo contexto para exercitar OO
   metáforas claras: objetos = atributos + comportamentos
   resultados estimulantes
2D x 3D
   2D oferece um contexto suficientemente rico
   complexidade do 3D talvez não compense
Bibliotecas em Python
Bibliotecas 2D
   PyGame: multi-plataforma, bem suportada, baixo nível
   Pyglet: alto-nível, ótima, abandonada no momento,
   quebrada no Ubuntu GNU Linux 11.04 e no OS X ⩾ 10.6
Bibliotecas 3D
   sugestões?
Livro: Game Programming
Game Programming: The L Line,
The Express Line to Learning
   Andy Harris, professor na
   Indiana/Purdue University
   ISBN: 978-0-470-06822-9
   570 p. + slides
   publicado em fev/2007
Game Programming: temas
Introdução à programação
Gráficos 2D com PyGame
Animação com PyGame
Audio com PyGame
Programação orientada a eventos com PyGame
Programação orientada a objetos com GameEngine
Porquê?
Desenho instrucional da
Academia Python           !"!#$%&!'()*+,-           COM LUCIANO RAMALHO


na Globalcode
                          A Academia Python dá uma visão acessível e prática da linguagem: principais
                          bibliotecas, desenvolvimento Web com Django, receitas para tarefas comuns,
                                             !
                          programação Orientada a Objetos e multi-paradigma e testes automatizados.
                                           !
                          As academias da Globalcode são formações completas compostas por vários
                                           !
                          módulos com muito mais tempo para os alunos interagirem com os instrutores.

Especificamente:
                                           !
                                           !
                          A Academia Python tem cinco módulos totalizando 112 horas aula. É fruto da
                                           !
                          união entre a qualidade e metodologia da Globalcode e a experiência e


Módulo PY2 -
                          conhecimento do Luciano Ramalho.
                                                Módulos da Academia Python:
                                                    PY1 - Introdução à linguagem Python


Orientação a Objetos e                              PY2 - Orientação a Objetos e frameworks
                                                    PY3 - Desenvolvimento Web com Django e JQuery



Frameworks
                                                    PY4 - Django pro ssional
                                                    PY5 - Cloud, NoSQL e novas arquiteturas

                          @luciano              !"#$%&'()%*+),%-.',%/'*0
                                       Mais informações:
                                       !"#$%&'()%*+),%-./,%0/*12           2!""#$%"&'())%*

Ensinando OO com Python

  • 1.
    Ensinando OO com Python, Django e PyGame Luciano Ramalho Academia Python - Globalcode python.globalcode.com.br
  • 2.
    O problema... Programar Orientadoa Objetos dá mais trabalho mais conceitos para aprender, mais código para escrever, em mais arquivos retrabalho (refatoração) E as vantagens não ficam evidentes nos programas pequenos que são usados como exemplos reuso de quê?
  • 3.
    A solução Ensinar OOno contexto de uma biblioteca de classes rica Sempre foi assim em Smalltalk linguagem + ambiente
  • 6.
    Mas e nomundo real Python? Django popular e útil, resultados rápidos graças ao admin Tkinter integrado na distribuição PyGame com GameEngine de Andy Harris
  • 7.
    Exemplo com Django Sistemade entrega de uma pizzaria por telefone Atendente recebe uma ligação, identifica o cliente pelo telefone ou cadastra um novo cliente e anota as pizzas do pedido Quando as pizzas ficam prontas, atendende associa um entregador ao pedido
  • 8.
    Exemplo com Django Sistemade entrega de uma pizzaria por telefone Atendente recebe uma ligação, identifica o cliente pelo telefone ou cadastra um novo cliente e anota as pizzas do pedido Quando o pedido fica pronto, atendende associa um entregador ao pedido
  • 9.
    UML como meio,não fim
  • 10.
    UML como meio,não fim
  • 11.
    UML como meio,não fim
  • 12.
    UML como meio,não fim
  • 13.
    UML como meio,não fim
  • 14.
    OO com jogos Jogossão um ótimo contexto para exercitar OO metáforas claras: objetos = atributos + comportamentos resultados estimulantes 2D x 3D 2D oferece um contexto suficientemente rico complexidade do 3D talvez não compense
  • 15.
    Bibliotecas em Python Bibliotecas2D PyGame: multi-plataforma, bem suportada, baixo nível Pyglet: alto-nível, ótima, abandonada no momento, quebrada no Ubuntu GNU Linux 11.04 e no OS X ⩾ 10.6 Bibliotecas 3D sugestões?
  • 16.
    Livro: Game Programming GameProgramming: The L Line, The Express Line to Learning Andy Harris, professor na Indiana/Purdue University ISBN: 978-0-470-06822-9 570 p. + slides publicado em fev/2007
  • 17.
    Game Programming: temas Introduçãoà programação Gráficos 2D com PyGame Animação com PyGame Audio com PyGame Programação orientada a eventos com PyGame Programação orientada a objetos com GameEngine
  • 18.
    Porquê? Desenho instrucional da AcademiaPython !"!#$%&!'()*+,- COM LUCIANO RAMALHO na Globalcode A Academia Python dá uma visão acessível e prática da linguagem: principais bibliotecas, desenvolvimento Web com Django, receitas para tarefas comuns, ! programação Orientada a Objetos e multi-paradigma e testes automatizados. ! As academias da Globalcode são formações completas compostas por vários ! módulos com muito mais tempo para os alunos interagirem com os instrutores. Especificamente: ! ! A Academia Python tem cinco módulos totalizando 112 horas aula. É fruto da ! união entre a qualidade e metodologia da Globalcode e a experiência e Módulo PY2 - conhecimento do Luciano Ramalho. Módulos da Academia Python: PY1 - Introdução à linguagem Python Orientação a Objetos e PY2 - Orientação a Objetos e frameworks PY3 - Desenvolvimento Web com Django e JQuery Frameworks PY4 - Django pro ssional PY5 - Cloud, NoSQL e novas arquiteturas @luciano !"#$%&'()%*+),%-.',%/'*0 Mais informações: !"#$%&'()%*+),%-./,%0/*12 2!""#$%"&'())%*