Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010

1,974 views

Published on

Published in: Education
  • Be the first to like this

Python em um curso de Ciência da Computação - CALCOMP - FURB - 2010

  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 24 de setembro de 2010 Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  2. 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. 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 simples e f´cil de ser assimilada 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. 4. Strings Estruturas de dados nativas 1 Armazenam texto (conjuntos de caracteres) 2 Crescem at´ o limite da mem´ria e o 3 Substituem char e vetor de char 4 Acesso sequencial, em fatias ou direto por ´ ındice 5 Implementadas com listas encadeadas 6 S˜o objetos com diversos m´todos: procurar, contar, mudar a e caixa, etc. 7 Podem ser utilizadas para implementar outras estruturas como pilhas e filas Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  5. 5. Listas e tuplas Estruturas de dados nativas 1 Armazenam cole¸˜es de objetos heterogˆneos co e 2 Crescem at´ o limite da mem´ria e o 3 Substituem vetores, matrizes, registros e listas encadeadas 4 Acesso sequencial, em fatias ou direto por ´ ındice 5 Implementadas com listas encadeadas 6 S˜o objetos com diversos m´todos: adicionar, remover, a e ordenar, procurar, contar 7 Podem ser utilizadas para implementar outras estruturas como pilhas e filas Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  6. 6. Dicion´rios a Estruturas de dados nativas 1 Armazenam pares chave/valor de forma desordenada 2 Crescem at´ o limite da mem´ria e o 3 Podem ser utilizados para persistir dados 4 Acesso sequencial ou direto pela chave 5 Implementados com tabelas hash 6 S˜o objetos com diversos m´todos: adicionar, remover, a e procurar, contar Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  7. 7. Conjuntos (Sets, Frozensets) Estruturas de dados nativas 1 Armazenam cole¸˜es de objetos unicos e desordenados co ´ 2 Crescem at´ o limite da mem´ria e o 3 Acesso atrav´s de percurso e 4 Implementados com tabelas hash 5 S˜o objetos com diversos m´todos: uni˜o, disjun¸˜o, a e a ca diferen¸a, etc. c Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  8. 8. 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 co a capacidades de n´meros aleat´rios u o Marco Andr´ Lopes Mendes <marcoandre@gmail.com> e Uso de Python em cursos de Ciˆncia da Computa¸˜o e ca
  9. 9. 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,<marcoandre@gmail.com> (Bessel, etc.), polinˆncia da Computa¸˜o Marco Andr´ Lopes Mendes e fun¸˜es especiais Uso de Python em cursos de Ciˆ mios, etc. ca co o e
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. PyGlet Computa¸˜o Gr´fica, anima¸˜o e jogos ca a ca 1 Desenvolvimento de jogos e outras aplica¸˜es visualmente co ricas 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
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. NetworkX Grafos 1 Cria¸˜o, manipula¸˜o e estudo da estrutura, dinˆmica e ca ca a fun¸˜es das redes complexas co 2 ´ E adequado para a opera¸˜o em grandes gr´ficos do mundo ca a real, p.e. com mais de 10 milh˜es de n´s e 100 milh˜es de o o o bordas 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
  23. 23. 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
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. 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
  28. 28. 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 fosse local 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
  29. 29. 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
  30. 30. 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
  31. 31. 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
  32. 32. Pythn Brasil[6] 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
  33. 33. 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

×