SlideShare uma empresa Scribd logo
Uso de Python em cursos de Ciˆncia da
                                          e
                         Computa¸˜o
                                 ca
                       Estruturas, bibliotecas e ferramentas


         Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
                   e



                                    9 de abril de 2011




Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                               e               ca
Apresenta¸˜o
         ca
Quem ´ esse cara?
     e




      1   Mestre em Ciˆncia da Computa¸˜o pela UFSC
                      e               ca
      2   Professor desde 1995

      1   Usu´rio Unix desde 1992 e Linux desde 1999
             a
      2   Entusiasta de software de c´digo aberto
                                     o

      1   Membro da comunidade Python desde 2004
      2   Membro-fundador da Associa¸˜o Python Brasil (APyB)
                                    ca
      3   Membro da diretoria da APyB




  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
Uma breve introdu¸˜o
                 ca
Sobre a linguagem




 1    Criada por Guido van Rossum em 1991
 2    Origem do nome: grupo de humoristas
      Monty Python
 3    Linguagem de alt´
                      ıssimo n´ (VHLL)
                              ıvel
 4    Sintaxe de f´cil leitura
                  a
 5    Orientada ` objetos, estruturada e funcional
                a
 6    Tipagem forte e dinˆmica
                         a
 7    Multiplataforma
 8    Interpretada
 9    Ambiente interativo
10    Licen¸a compat´ com a GPL
           c        ıvel


     Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
               e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                    e               ca
Estruturas de dados nativas




     1   Strings
     2   Listas
     3   Tuplas
     4   Dicion´rios
               a
     5   Sets
     6   Frozensets




 Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
           e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                e               ca
NumPy
Matem´tica
     a




      1   Poderoso array N-dimensional de objetos
      2   integra¸˜o com c´digo C/C++ e Fortran
                 ca       o
      3   fun¸˜es de ´lgebra linear, transformada de Fourier e n´meros
             co      a                                          u
          aleat´rios
               o

  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
SciPy
Matem´tica
     a




      1   Utiliza como base o NumPy para lidar eficientemente com
          grandes quantidades de n´meros
                                  u
      2   Implementa: Estat´  ısticas, otimiza¸˜o, integra¸˜o num´rica,
                                              ca          ca       e
          processamento de sinais e imagens, solu¸˜o de equa¸˜es
                                                     ca          co
          diferenciais, fun¸˜es especiais (Bessel, etc.), polinˆmios, etc.
                           co                                  o
  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
Sage
Matem´tica
     a




      1   Aplicativo de matem´tica GPL
                             a
      2   Combina o poder de muitos pacotes de c´digo aberto
                                                o
          existentes em uma interface Python comum
      3   Miss˜o: Criar uma alternativa livre e de c´digo aberto para
              a                                     o
          Magma, Maple, Mathematica e Matlab.

  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
PyODE
Computa¸˜o Gr´fica
       ca    a




      1   PyODE ´ um binding de ODE para Python
                e
      2   ODE: simula¸˜o de dinˆmica de objetos r´
                     ca        a                 ıgidos
      3   Jun¸˜es e detec¸˜o de colis˜o com fric¸˜o
             co          ca          a          ca
      4   Simula¸˜o de ve´
                 ca      ıculos, objetos e criaturas em ambientes
          virtuais
      5   Jogos de computador, ferramentas de autoria 3D e de
          simula¸˜o
                ca
  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
PyOpenGL
Computa¸˜o Gr´fica
       ca    a




      1   PyOpenGL: binding de OpenGL para Python
      2   OpenGL: API livre utilizada na computa¸˜o gr´fica
                                                ca    a
      3   Desenvolvimento de aplicativos gr´ficos, ambientes 3D, jogos,
                                           a
          entre outros
  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
PIL - Python Image Library
Processamento de Imagens




      1   suporte ` abertura e grava¸˜o de muitos formatos de imagem
                   a                ca
          diferentes
      2   formatos suportados: PNG, TIFF, BMP, EPS e GIF


  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
PyGlet
Computa¸˜o Gr´fica, anima¸˜o e jogos
       ca    a          ca




      1   Desenvolvimento de jogos e aplica¸˜es visualmente ricas
                                           co
      2   Suporte para eventos de mouse e teclado
      3   Pode carregar diversos formatos de arquivos de multim´
                                                               ıdia

  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
Cocos 2D
Anima¸˜o e jogos
     ca




      1   Framework para a constru¸˜o de jogos, demos e outras
                                    ca
          aplica¸˜es gr´ficas e interativas em 2D
                co     a
      2   Utiliza PyGlet e OpenGL


  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
PyGame
Anima¸˜o e jogos
     ca




      1   M´dulo multi-plataforma projetado para escrever jogos.
           o
      2   Inclui bibliotecas de computa¸˜o gr´fica de som.
                                       ca    a
      3   ´ constru´ sobre a biblioteca SDL (Simple DirectMedia
          E          ıda
          Layer)

  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
Panda 3D
Anima¸˜o e jogos
     ca




      1   Motor de jogo 3D escrito em C++ para ser usado com Python
      2   Desenvolvido pela Disney e Carnegie Mellon University’s
          Entertainment Technology Center
      3   Possui motor de f´
                           ısica, texturas animadas, suporte a shaders e
          som 2D e 3D
  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
AIMA
Inteligˆncia Artificial
       e




      1   C´digo em Python dos algoritmos do livro Artificial
            o
          Intelligence: a Modern Approach, de Peter Norvig
      2   O livro-texto apresenta os algoritmos em pseudo-c´digo
                                                           o
      3   Existem os c´digos em Lisp tamb´m, para compara¸˜o
                      o                  e               ca

  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
Peach
Inteligˆncia Artificial
       e




      1   M´dulo escrito puramente em Python, baseado nas bibliotecas
            o
          cient´
               ıficas SciPy e NumPy
      2   Implementa¸˜o de algoritmos de inteligˆncia computacional e
                     ca                         e
          aprendizado de m´quina
                          a
      3   Redes neurais artificiais, l´gica fuzzy, algoritmos gen´ticos,
                                     o                          e
          inteligˆncia de enxames e muito mais
                 e
      4   Objetivo primariamente educacional
      5   Cuidado com a eficiˆncia na implementa¸˜o
                            e                  ca




  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
Compiladores




     1   PLY: Python Lex-Yacc
     2   PyParsing
     3   Parsing: Python parser generator module
     4   ANTLR: ANother Tool for Language Recognition




 Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
           e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                e               ca
PyDot e Graphviz
Grafos




         1   pydot ´ uma interface da linguagem de pontos Graphviz’s
                   e
             para Python
         2   Permite a cria¸˜o f´cil de grafos dirigidos e n˜o dirigidos
                           ca a                             a
         3   Grafos abstratos e redes podem ser criados automaticamente
         4   Desenvolvido pelos laborat´rios de pesquisa da AT&T
                                       o
  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
NetworkX
Grafos




         1   Cria¸˜o, manipula¸˜o e estudo da estrutura, dinˆmica e
                 ca            ca                           a
             fun¸˜es das redes complexas
                co
         2   Adequado para opera¸˜o em grandes gr´ficos reais (p.e. mais
                                 ca                a
             de 10 milh˜es de n´s e 100 milh˜es de bordas)
                       o       o            o
         3   Utiliza dicion´rios de dicion´rios de Python como estrutura
                           a              a
         4   Pode ser usado para an´lises de redes e de redes sociais
                                   a
  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
PyMetric
Grafos


                                      1   Simula¸˜o interativa de rede e ferramenta de
                                                  ca
                                          visualiza¸˜o
                                                   ca
                                      2   Tra¸a caminhos dado um conjunto de n´s e
                                             c                                o
                                          enlaces com m´tricas
                                                       e
                                      3   Simula¸˜o de mudan¸as do sistema m´trico,
                                                 ca            c                e
                                          falhas de roteador e interrup¸˜es de enlaces,
                                                                       co
                                          mudan¸as na topologia e roteamento
                                                 c
                                      4   Considera cargas em enlaces e mudan¸as
                                                                             c
                                          que afetam a distribui¸˜o de carga
                                                                ca
                                      5   Estat´
                                               ısticas sobre a topologia: caminhos de
                                          custo-igual, liga¸˜es com custos
                                                           co
                                          assim´tricos, caminho mais longo
                                               e
                                      6   Sugere mudan¸as m´tricas em engenharia de
                                                      c    e
                                          tr´fego
                                            a
  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
PL/Python
Banco de Dados e SQL




      1   ”O banco de dados livre mais avan¸ado do mundo”
                                           c
      2   Stored procedures (em PL/PgSQL), triggers, domains
      3   Programa¸˜o de procedures: uso de outras linguagens de
                  ca
          programa¸˜o
                  ca
      4   Atualmente suportadas: python, ruby, tcl, perl, Java, PHP e C
      5   Python: simples, poderosa e com muitas bibliotecas
          dispon´
                ıveis




  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
ZODB - Zope Object Data Base
Banco de Dados Orientado a Objetos




      1   Banco de dados transacional orientado a objetos livre utilizado
          pelo servidor de aplica¸˜o Zope para armazenamento
                                 ca
          transparente de objetos Python
      2   Pode ser usado independentemente
      3   Caracter´
                  ısticas: transa¸˜es, hist´rico/cancelamento,
                                 co        o
          armazenamento transparente conect´vel, cache embutido,
                                                a
          controle de concorrˆncia multivers˜o (MVCC) e escalabilidade
                              e               a
          atrav´s da rede (usando ZEO)
               e
      4   Reposit´rio de dados Python maduro que possui centenas de
                 o
          milhares de sistemas rodando sobre ele atualmente


  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
Twisted
Protocolos de redes




      1   Framework de rede de c´digo aberto escrito inteiramente em
                                o
          Python
      2   Permite a cria¸˜o de proxies SMTP, HTTP e servidores SSH
                        ca
          (e mais) em Python com o m´   ınimo esfor¸o
                                                   c
      3   ´ ass´
          E    ıncrono e dirigido a eventos
      4   N˜o exige o uso de modelos tradicionais de threading
           a



  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
Socket e Asyncore
Protocolos de redes




   Socket
     1 Interface de rede de baixo n´
                                   ıvel
      2   Fornece interface semelhante ` BSD
                                       a

   Asyncore
      1   Infra-estrutura b´sica para escrever servi¸os de socket
                           a                        c
          ass´
             ıncrono para clientes e servidores
      2   Meio termo entre socket e Twisted




  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
PyRO - Python Remote Objects
Sistemas Distribu´
                 ıdos




      1   Comunica¸˜o de objetos em rede de forma simples
                  ca
      2   Acesso a objetos em diferentes m´quinas na rede como se
                                          a
          fossem locais
      3   Lembra Java Remote Method Invocation (RMI).




  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
Multithreading
Processamento distribu´
                      ıdo, paralelo e multiprocessamento




      1   threading: primitivas de baixo n´ para trabalhar com
                                          ıvel
          m´ltiplos threads
            u
      2   Qeue: filas LIFO, FIFO e de prioridade com multi-produtores e
          consumidores
      3   multiprocessing: oferece concorrˆncia local e remoto, usando
                                          e
          subprocessos em vez de threads




  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
Python Cryptography Toolkit
Criptografia




      1   Algoritmos de criptografia: RC4, Blowfish, DES, Diamond,
          IDEA, LOKI91, RC5, REDOC III, Sapphire.
      2   Algoritmos de hash: MD2, MD4, MD5, Secure Hash
          Algorithm
      3   Algoritmos de chave p´blica: ElGamal, RSA
                               u




  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
Lista de discuss˜o
                a




 Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
           e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                e               ca
Python Brasil[7]
Encontro brasileiro da comunidade Python




  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
Comunidade Python Brasil
Acesse e assine nossa lista




  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
            e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                                 e               ca
Dorneles Trem´a: 1979 - 2011
                                        e



Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                               e               ca
1   Estes slides: slideshare.com/marrcandre
    2   google*: marcoandre@gmail.com
    3   twitter: @marrcandre
    4   blog: marrcandre.blogspot.com

              random.choice([’pergunta’, ’d´vida’, ’discuss˜o’])
                                           u               a




Marco Andr´ Lopes Mendes <marcoandre@gmail.com>
          e                                       Uso de Python em cursos de Ciˆncia da Computa¸˜o
                                                                               e               ca

Mais conteúdo relacionado

PDF
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
PPT
Uso de POO com Python - PyconBrasil 2
PDF
Projetos de algoritmos com implementações em pascal e c (nivio ziviani, 4ed)
PDF
Slides tdc 2010
PDF
Por que Python? Latinoware 2011
PDF
Por que Python? - FURB - 2009
PDF
Por que Python - PyConBrasil 2008
PDF
Software Codigo Aberto Desktop
Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010
Uso de POO com Python - PyconBrasil 2
Projetos de algoritmos com implementações em pascal e c (nivio ziviani, 4ed)
Slides tdc 2010
Por que Python? Latinoware 2011
Por que Python? - FURB - 2009
Por que Python - PyConBrasil 2008
Software Codigo Aberto Desktop

Destaque (20)

PPT
Calculadora IP com libglade - PyconBrasil 2
PDF
Porque Python? Semana Acadêmica UTFPR 2011
PDF
Porque Python - PythonBrasil[6]
ODP
Pymordida0 Semana de computação da SOCIESC - 2008/10
PDF
Por que Python - Latinoware 2008
PDF
Porque Python - FISL 9.0
PDF
Por que Python? - FISL 10 - 2009
PDF
Por que Python? - Latinoware 2009
PDF
Porque Python? FISL11
PPT
Versões do Ubuntu
PPT
Python no Ensino Superior - PyconBrasil 1
PDF
Por que Python? IFC Concórdia 2011
PDF
Por que python? fisl 14 - 2013
PPT
Educação Continuada
PDF
Por que Python? - PythonBrasil[5] - 2009
PDF
Configurando o Geany para Python - 03/2012
PDF
Porque Python?
PDF
Configurando o geany_para_python
PDF
Educação continuada
PDF
Resumo, Resenha e Resenha Crítica
Calculadora IP com libglade - PyconBrasil 2
Porque Python? Semana Acadêmica UTFPR 2011
Porque Python - PythonBrasil[6]
Pymordida0 Semana de computação da SOCIESC - 2008/10
Por que Python - Latinoware 2008
Porque Python - FISL 9.0
Por que Python? - FISL 10 - 2009
Por que Python? - Latinoware 2009
Porque Python? FISL11
Versões do Ubuntu
Python no Ensino Superior - PyconBrasil 1
Por que Python? IFC Concórdia 2011
Por que python? fisl 14 - 2013
Educação Continuada
Por que Python? - PythonBrasil[5] - 2009
Configurando o Geany para Python - 03/2012
Porque Python?
Configurando o geany_para_python
Educação continuada
Resumo, Resenha e Resenha Crítica
Anúncio

Semelhante a Python na Ciência da Computação - FLISOL 2011 (20)

PDF
Por que Python?
PDF
"Mostrando a Cobra" - ou Breve Introdução à Linguagem Python
PDF
Introdução à Programação Python e Tk
PDF
Mostrando a Cobra - Breve Introdução à Linguagem Python
PDF
"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2
PDF
PDF
Canivete python
PDF
Python para devs
PDF
Linguagem Python
PDF
Introdução à Programação em Python
ODP
Python: programação divertida novamente
PDF
Minicurso: Python e suas baterias incluídas
PDF
Python com baterias incluídas v2.0
PDF
Introdução a linguagem Python
KEY
Ensinando OO com Python
PDF
Python Mini Ccurso Consegi2011
PDF
Introducao python 2010
PDF
Livro para desenvolvedores de Python
PPTX
PDF
Curso python
Por que Python?
"Mostrando a Cobra" - ou Breve Introdução à Linguagem Python
Introdução à Programação Python e Tk
Mostrando a Cobra - Breve Introdução à Linguagem Python
"Mostrando a Cobra" - ou Breve Introdução a Linguagem Python. ed2
Canivete python
Python para devs
Linguagem Python
Introdução à Programação em Python
Python: programação divertida novamente
Minicurso: Python e suas baterias incluídas
Python com baterias incluídas v2.0
Introdução a linguagem Python
Ensinando OO com Python
Python Mini Ccurso Consegi2011
Introducao python 2010
Livro para desenvolvedores de Python
Curso python
Anúncio

Último (20)

PDF
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf
PPTX
O Romantismo e a identidade brasileira..
PPTX
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
PPTX
Pedagogia em Ambientes Não Escolares.pptx
PDF
A Revolução Francesa de 1789 slides história
PPTX
A História da Europa na Baixa Idade Média.pptx
PPTX
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
PPTX
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
PDF
Metabolismo_energético_3ano_pre_vest_2026.pdf
PPTX
HISTÓRIA DO BRASIL - anos de Democracia.pptx
PDF
Ementa 2 semestre PEI Orientação de estudo
PPTX
NR11 - Treinamento Direcao Defensiva - 2023.pptx
PDF
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
PPT
História e Evolução dos Computadores domésticos
PPTX
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
PPT
Imperio Bbrasileiro-1822-1889 - aspectos gerais
PPTX
INDÚSTRIA_ Histórico da industrialização.pptx
PDF
saeb_documentos_de_referencia_versao_1.0.pdf
PPTX
ACIDOS NUCLEICOS - REPLICAÇÃO DO DNA - E.M.
PDF
embriologia_animal_aula_share_2026_semestre
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf
O Romantismo e a identidade brasileira..
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
Pedagogia em Ambientes Não Escolares.pptx
A Revolução Francesa de 1789 slides história
A História da Europa na Baixa Idade Média.pptx
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
Metabolismo_energético_3ano_pre_vest_2026.pdf
HISTÓRIA DO BRASIL - anos de Democracia.pptx
Ementa 2 semestre PEI Orientação de estudo
NR11 - Treinamento Direcao Defensiva - 2023.pptx
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
História e Evolução dos Computadores domésticos
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
Imperio Bbrasileiro-1822-1889 - aspectos gerais
INDÚSTRIA_ Histórico da industrialização.pptx
saeb_documentos_de_referencia_versao_1.0.pdf
ACIDOS NUCLEICOS - REPLICAÇÃO DO DNA - E.M.
embriologia_animal_aula_share_2026_semestre

Python na Ciência da Computação - FLISOL 2011

  • 1. Uso de Python em cursos de Ciˆncia da e Computa¸˜o ca Estruturas, bibliotecas e ferramentas Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e 9 de abril de 2011 Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 2. Apresenta¸˜o ca Quem ´ esse cara? e 1 Mestre em Ciˆncia da Computa¸˜o pela UFSC e ca 2 Professor desde 1995 1 Usu´rio Unix desde 1992 e Linux desde 1999 a 2 Entusiasta de software de c´digo aberto o 1 Membro da comunidade Python desde 2004 2 Membro-fundador da Associa¸˜o Python Brasil (APyB) ca 3 Membro da diretoria da APyB Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 3. Uma breve introdu¸˜o ca Sobre a linguagem 1 Criada por Guido van Rossum em 1991 2 Origem do nome: grupo de humoristas Monty Python 3 Linguagem de alt´ ıssimo n´ (VHLL) ıvel 4 Sintaxe de f´cil leitura a 5 Orientada ` objetos, estruturada e funcional a 6 Tipagem forte e dinˆmica a 7 Multiplataforma 8 Interpretada 9 Ambiente interativo 10 Licen¸a compat´ com a GPL c ıvel Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 4. Estruturas de dados nativas 1 Strings 2 Listas 3 Tuplas 4 Dicion´rios a 5 Sets 6 Frozensets Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 5. NumPy Matem´tica a 1 Poderoso array N-dimensional de objetos 2 integra¸˜o com c´digo C/C++ e Fortran ca o 3 fun¸˜es de ´lgebra linear, transformada de Fourier e n´meros co a u aleat´rios o Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 6. SciPy Matem´tica a 1 Utiliza como base o NumPy para lidar eficientemente com grandes quantidades de n´meros u 2 Implementa: Estat´ ısticas, otimiza¸˜o, integra¸˜o num´rica, ca ca e processamento de sinais e imagens, solu¸˜o de equa¸˜es ca co diferenciais, fun¸˜es especiais (Bessel, etc.), polinˆmios, etc. co o Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 7. Sage Matem´tica a 1 Aplicativo de matem´tica GPL a 2 Combina o poder de muitos pacotes de c´digo aberto o existentes em uma interface Python comum 3 Miss˜o: Criar uma alternativa livre e de c´digo aberto para a o Magma, Maple, Mathematica e Matlab. Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 8. PyODE Computa¸˜o Gr´fica ca a 1 PyODE ´ um binding de ODE para Python e 2 ODE: simula¸˜o de dinˆmica de objetos r´ ca a ıgidos 3 Jun¸˜es e detec¸˜o de colis˜o com fric¸˜o co ca a ca 4 Simula¸˜o de ve´ ca ıculos, objetos e criaturas em ambientes virtuais 5 Jogos de computador, ferramentas de autoria 3D e de simula¸˜o ca Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 9. PyOpenGL Computa¸˜o Gr´fica ca a 1 PyOpenGL: binding de OpenGL para Python 2 OpenGL: API livre utilizada na computa¸˜o gr´fica ca a 3 Desenvolvimento de aplicativos gr´ficos, ambientes 3D, jogos, a entre outros Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 10. PIL - Python Image Library Processamento de Imagens 1 suporte ` abertura e grava¸˜o de muitos formatos de imagem a ca diferentes 2 formatos suportados: PNG, TIFF, BMP, EPS e GIF Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 11. PyGlet Computa¸˜o Gr´fica, anima¸˜o e jogos ca a ca 1 Desenvolvimento de jogos e aplica¸˜es visualmente ricas co 2 Suporte para eventos de mouse e teclado 3 Pode carregar diversos formatos de arquivos de multim´ ıdia Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 12. Cocos 2D Anima¸˜o e jogos ca 1 Framework para a constru¸˜o de jogos, demos e outras ca aplica¸˜es gr´ficas e interativas em 2D co a 2 Utiliza PyGlet e OpenGL Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 13. PyGame Anima¸˜o e jogos ca 1 M´dulo multi-plataforma projetado para escrever jogos. o 2 Inclui bibliotecas de computa¸˜o gr´fica de som. ca a 3 ´ constru´ sobre a biblioteca SDL (Simple DirectMedia E ıda Layer) Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 14. Panda 3D Anima¸˜o e jogos ca 1 Motor de jogo 3D escrito em C++ para ser usado com Python 2 Desenvolvido pela Disney e Carnegie Mellon University’s Entertainment Technology Center 3 Possui motor de f´ ısica, texturas animadas, suporte a shaders e som 2D e 3D Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 15. AIMA Inteligˆncia Artificial e 1 C´digo em Python dos algoritmos do livro Artificial o Intelligence: a Modern Approach, de Peter Norvig 2 O livro-texto apresenta os algoritmos em pseudo-c´digo o 3 Existem os c´digos em Lisp tamb´m, para compara¸˜o o e ca Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 16. Peach Inteligˆncia Artificial e 1 M´dulo escrito puramente em Python, baseado nas bibliotecas o cient´ ıficas SciPy e NumPy 2 Implementa¸˜o de algoritmos de inteligˆncia computacional e ca e aprendizado de m´quina a 3 Redes neurais artificiais, l´gica fuzzy, algoritmos gen´ticos, o e inteligˆncia de enxames e muito mais e 4 Objetivo primariamente educacional 5 Cuidado com a eficiˆncia na implementa¸˜o e ca Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 17. Compiladores 1 PLY: Python Lex-Yacc 2 PyParsing 3 Parsing: Python parser generator module 4 ANTLR: ANother Tool for Language Recognition Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 18. PyDot e Graphviz Grafos 1 pydot ´ uma interface da linguagem de pontos Graphviz’s e para Python 2 Permite a cria¸˜o f´cil de grafos dirigidos e n˜o dirigidos ca a a 3 Grafos abstratos e redes podem ser criados automaticamente 4 Desenvolvido pelos laborat´rios de pesquisa da AT&T o Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 19. NetworkX Grafos 1 Cria¸˜o, manipula¸˜o e estudo da estrutura, dinˆmica e ca ca a fun¸˜es das redes complexas co 2 Adequado para opera¸˜o em grandes gr´ficos reais (p.e. mais ca a de 10 milh˜es de n´s e 100 milh˜es de bordas) o o o 3 Utiliza dicion´rios de dicion´rios de Python como estrutura a a 4 Pode ser usado para an´lises de redes e de redes sociais a Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 20. PyMetric Grafos 1 Simula¸˜o interativa de rede e ferramenta de ca visualiza¸˜o ca 2 Tra¸a caminhos dado um conjunto de n´s e c o enlaces com m´tricas e 3 Simula¸˜o de mudan¸as do sistema m´trico, ca c e falhas de roteador e interrup¸˜es de enlaces, co mudan¸as na topologia e roteamento c 4 Considera cargas em enlaces e mudan¸as c que afetam a distribui¸˜o de carga ca 5 Estat´ ısticas sobre a topologia: caminhos de custo-igual, liga¸˜es com custos co assim´tricos, caminho mais longo e 6 Sugere mudan¸as m´tricas em engenharia de c e tr´fego a Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 21. PL/Python Banco de Dados e SQL 1 ”O banco de dados livre mais avan¸ado do mundo” c 2 Stored procedures (em PL/PgSQL), triggers, domains 3 Programa¸˜o de procedures: uso de outras linguagens de ca programa¸˜o ca 4 Atualmente suportadas: python, ruby, tcl, perl, Java, PHP e C 5 Python: simples, poderosa e com muitas bibliotecas dispon´ ıveis Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 22. ZODB - Zope Object Data Base Banco de Dados Orientado a Objetos 1 Banco de dados transacional orientado a objetos livre utilizado pelo servidor de aplica¸˜o Zope para armazenamento ca transparente de objetos Python 2 Pode ser usado independentemente 3 Caracter´ ısticas: transa¸˜es, hist´rico/cancelamento, co o armazenamento transparente conect´vel, cache embutido, a controle de concorrˆncia multivers˜o (MVCC) e escalabilidade e a atrav´s da rede (usando ZEO) e 4 Reposit´rio de dados Python maduro que possui centenas de o milhares de sistemas rodando sobre ele atualmente Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 23. Twisted Protocolos de redes 1 Framework de rede de c´digo aberto escrito inteiramente em o Python 2 Permite a cria¸˜o de proxies SMTP, HTTP e servidores SSH ca (e mais) em Python com o m´ ınimo esfor¸o c 3 ´ ass´ E ıncrono e dirigido a eventos 4 N˜o exige o uso de modelos tradicionais de threading a Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 24. Socket e Asyncore Protocolos de redes Socket 1 Interface de rede de baixo n´ ıvel 2 Fornece interface semelhante ` BSD a Asyncore 1 Infra-estrutura b´sica para escrever servi¸os de socket a c ass´ ıncrono para clientes e servidores 2 Meio termo entre socket e Twisted Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 25. PyRO - Python Remote Objects Sistemas Distribu´ ıdos 1 Comunica¸˜o de objetos em rede de forma simples ca 2 Acesso a objetos em diferentes m´quinas na rede como se a fossem locais 3 Lembra Java Remote Method Invocation (RMI). Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 26. Multithreading Processamento distribu´ ıdo, paralelo e multiprocessamento 1 threading: primitivas de baixo n´ para trabalhar com ıvel m´ltiplos threads u 2 Qeue: filas LIFO, FIFO e de prioridade com multi-produtores e consumidores 3 multiprocessing: oferece concorrˆncia local e remoto, usando e subprocessos em vez de threads Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 27. Python Cryptography Toolkit Criptografia 1 Algoritmos de criptografia: RC4, Blowfish, DES, Diamond, IDEA, LOKI91, RC5, REDOC III, Sapphire. 2 Algoritmos de hash: MD2, MD4, MD5, Secure Hash Algorithm 3 Algoritmos de chave p´blica: ElGamal, RSA u Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 28. Lista de discuss˜o a Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 29. Python Brasil[7] Encontro brasileiro da comunidade Python Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 30. Comunidade Python Brasil Acesse e assine nossa lista Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 31. Dorneles Trem´a: 1979 - 2011 e Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  • 32. 1 Estes slides: slideshare.com/marrcandre 2 google*: marcoandre@gmail.com 3 twitter: @marrcandre 4 blog: marrcandre.blogspot.com random.choice([’pergunta’, ’d´vida’, ’discuss˜o’]) u a Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca