Your SlideShare is downloading. ×
0
Uso de Python em cursos de Ciˆncia da                                          e                         Computa¸˜o       ...
Apresenta¸˜o         caQuem ´ esse cara?     e      1   Mestre em Ciˆncia da Computa¸˜o pela UFSC                      e  ...
Uma breve introdu¸˜o                 caSobre a linguagem 1    Criada por Guido van Rossum em 1991 2    Origem do nome: gru...
Estruturas de dados nativas     1   Strings     2   Listas     3   Tuplas     4   Dicion´rios               a     5   Sets...
NumPyMatem´tica     a      1   Poderoso array N-dimensional de objetos      2   integra¸˜o com c´digo C/C++ e Fortran     ...
SciPyMatem´tica     a      1   Utiliza como base o NumPy para lidar eficientemente com          grandes quantidades de n´me...
SageMatem´tica     a      1   Aplicativo de matem´tica GPL                             a      2   Combina o poder de muito...
PyODEComputa¸˜o Gr´fica       ca    a      1   PyODE ´ um binding de ODE para Python                e      2   ODE: simula¸...
PyOpenGLComputa¸˜o Gr´fica       ca    a      1   PyOpenGL: binding de OpenGL para Python      2   OpenGL: API livre utiliz...
PIL - Python Image LibraryProcessamento de Imagens      1   suporte ` abertura e grava¸˜o de muitos formatos de imagem    ...
PyGletComputa¸˜o Gr´fica, anima¸˜o e jogos       ca    a          ca      1   Desenvolvimento de jogos e aplica¸˜es visualm...
Cocos 2DAnima¸˜o e jogos     ca      1   Framework para a constru¸˜o de jogos, demos e outras                             ...
PyGameAnima¸˜o e jogos     ca      1   M´dulo multi-plataforma projetado para escrever jogos.           o      2   Inclui ...
Panda 3DAnima¸˜o e jogos     ca      1   Motor de jogo 3D escrito em C++ para ser usado com Python      2   Desenvolvido p...
AIMAInteligˆncia Artificial       e      1   C´digo em Python dos algoritmos do livro Artificial            o          Intel...
PeachInteligˆncia Artificial       e      1   M´dulo escrito puramente em Python, baseado nas bibliotecas            o     ...
Compiladores     1   PLY: Python Lex-Yacc     2   PyParsing     3   Parsing: Python parser generator module     4   ANTLR:...
PyDot e GraphvizGrafos         1   pydot ´ uma interface da linguagem de pontos Graphviz’s                   e            ...
NetworkXGrafos         1   Cria¸˜o, manipula¸˜o e estudo da estrutura, dinˆmica e                 ca            ca        ...
PyMetricGrafos                                      1   Simula¸˜o interativa de rede e ferramenta de                      ...
PL/PythonBanco de Dados e SQL      1   ”O banco de dados livre mais avan¸ado do mundo”                                    ...
ZODB - Zope Object Data BaseBanco de Dados Orientado a Objetos      1   Banco de dados transacional orientado a objetos li...
TwistedProtocolos de redes      1   Framework de rede de c´digo aberto escrito inteiramente em                            ...
Socket e AsyncoreProtocolos de redes   Socket     1 Interface de rede de baixo n´                                   ıvel  ...
PyRO - Python Remote ObjectsSistemas Distribu´                 ıdos      1   Comunica¸˜o de objetos em rede de forma simpl...
MultithreadingProcessamento distribu´                      ıdo, paralelo e multiprocessamento      1   threading: primitiv...
Python Cryptography ToolkitCriptografia      1   Algoritmos de criptografia: RC4, Blowfish, DES, Diamond,          IDEA, LOKI...
Lista de discuss˜o                a Marco Andr´ Lopes Mendes <marcoandre@gmail.com>           e                           ...
Python Brasil[7]Encontro brasileiro da comunidade Python  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>            e    ...
Comunidade Python BrasilAcesse e assine nossa lista  Marco Andr´ Lopes Mendes <marcoandre@gmail.com>            e         ...
Dorneles Trem´a: 1979 - 2011                                        eMarco Andr´ Lopes Mendes <marcoandre@gmail.com>      ...
1   Estes slides: slideshare.com/marrcandre    2   google*: marcoandre@gmail.com    3   twitter: @marrcandre    4   blog: ...
Upcoming SlideShare
Loading in...5
×

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

1,153

Published on

Published in: Education
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total Views
1,153
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
26
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

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

  1. 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 2011Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  2. 2. Apresenta¸˜o caQuem ´ 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. 3. Uma breve introdu¸˜o caSobre 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 interativo10 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. 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. 5. NumPyMatem´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. 6. SciPyMatem´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. 7. SageMatem´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. 8. PyODEComputa¸˜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. 9. PyOpenGLComputa¸˜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. 10. PIL - Python Image LibraryProcessamento 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. 11. PyGletComputa¸˜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. 12. Cocos 2DAnima¸˜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. 13. PyGameAnima¸˜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. 14. Panda 3DAnima¸˜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. 15. AIMAInteligˆ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. 16. PeachInteligˆ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. 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. 18. PyDot e GraphvizGrafos 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. 19. NetworkXGrafos 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. 20. PyMetricGrafos 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. 21. PL/PythonBanco 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. 22. ZODB - Zope Object Data BaseBanco 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. 23. TwistedProtocolos 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. 24. Socket e AsyncoreProtocolos 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. 25. PyRO - Python Remote ObjectsSistemas 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. 26. MultithreadingProcessamento 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. 27. Python Cryptography ToolkitCriptografia 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. 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. 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. 30. Comunidade Python BrasilAcesse 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. 31. Dorneles Trem´a: 1979 - 2011 eMarco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  32. 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 aMarco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×