Curso de Python
para as Engenharias da UFRJ
DCC/IM

Acessos a esta página desde 21/06/2007: Page Visit Counter PageRank

Índice


Por que Estudar Python?

Trata-se de uma linguagem moderna com todas as características importantes para o desenvolvimento de habilidades de programação: orientação a objetos, persistência, recursividade, tratamento de exceções, estruturas de dados sofisticadas (como listas, tuplas e dicionários), além de existir uma infinidade de bindings disponíveis. Além disso, é uma linguagem funcional: [1], [2].

Para engenheiros, fornece o ambiente ideal para "costura" de aplicações e criação de interfaces, tanto em ambiente Linux como Windows. Se não bastasse, é fácil de aprender e, por ser interpretada (scripting language), permite que se testem rapidamente todos os conceitos estudados em sala de aula.

Linguagens declarativas tradicionais, como "C" ou Pascal (uma linguagem já morta, na minha opinião), apresentam uma certa dificuldade de aprendizado devido a grande quantidade de linhas de código que devem ser digitadas para se fazer operações relativamente simples. Manipulação de ponteiros para implementação de estruturas de dados, em particular, nesse tipo de linguagem, é uma tarefa que exige um grau de conhecimento e maturidade que só é adquirido por pessoas que pretendam se tornar profissionais de computação.

Em resumo, é muito mais fácil para o professor e para o aluno. Se alguém ainda se perguntar, para que isso vai servir na minha vida, então assista o discurso de formatura de Steve Jobs em Stanford. Na realidade, todos devem assistir este vídeo, ao menos uma vez.

Programar não é fácil, mas pode ser divertido, e principalmente depende do esforço individual de cada um, e da atitude correta. No entanto, são necessários vários anos para se atingir um nível de proficiência razoável, mas com muito treino se chega lá.


Módulos Disponíveis

O curso está dividido em quinze módulos, podendo ser estendido, caso haja uma maior disponibilidade de tempo. Aqui estão as ementas do curso: Prog I e Prog II.

Os módulos estão disponíveis no formato .ppt (Powerpoint), .odp (OpenOffice), .pdf (Adobe) ou .ps (GhostScript), com quatro transparências por slide, neste último caso.

Aulas


Links Úteis

Índice
Índice dos Módulos
Referência da biblioteca
Python Learning Foundation
Scientific Tools for Python
Sage - um software livre de matemática
Python for Fun
Python Brasil
Code Sampler
Learning Python: Child's Play with RUR-PLE!
Visual Python: 3D Programming for Ordinary Mortals
Invent with Python
Passing Arguments
Tkinter Tour II
Call by Obect
Bokeh Visualization Library
VisPy
astropy
Flask
Slice like a ninja
Beautiful Soup (html and xml parser)
Common Gotchas


Exemplos

Por tópicos:
1), 2), 3)

Com OpenGL e CGAL:
4)

  • Doxygen of Source Code

    Exercícios de programação

    Nota: escolha UTF-8 na codificação de caracteres do seu navegador.

    Projetos implementados em Python


    Laboratórios

    Todos os programas rodam com python 2.6, 2.7 ou 3.5 e foram implementados em ambiente Fedora Linux. A grande maioria roda em Windows e Mac OS também, a menos dos laboratórios II, exercícios 11, 14 e 17. O ex. 14 necessita do cgal-python, que, em Windows, só existe para o python 2.4, e não existe para Mac. O ex. 11 necessita de uma placa de captura de TV/FM e os drivers abertos são para Linux. No entanto, o ex. 11 ainda pode utilizar o mplayer para reproduzir as rádios via streaming. Por fim, o ex. 17 acessa os dispositivos de CD/DVD, da maneira típica do Unix.

    Nota: no Mac, é necessário instalar o ambiente python do MacPorts.


    Avaliações


    Livros (acesso requer uso de senha ou estão à venda)


    Infraestrutura Mínima


    Instalação

    A instalação básica (passo 1) para ambiente Windows só necessita do interpretador Python. Existem também IDEs muito boas para Python, como o Eric, o IDLE, o SPE, o Boa Constructor e o Eclipse. Da mesma forma, há verificadores de sintaxe/qualidade, como o pylint ou o PyChecker.

    Para adicionar plugins, por exemplo, para o OpenGL ou o CGAL, devem-se seguir as seguintes etapas:

    1) Instalar o interpretador Python 2.7 ou 3.5 .

    2) Instalar o mplayer, porque ninguém é de ferro e ver alguns filmezinhos sempre distrai. Todos os codecs já vêm embutidos (DivX, Xvid, AC3, mp3, etc...)
    3) Instalar o mpg123 para rodar o exemplo do alarme.
    4) Instalar o dnspython para rodar o exemplo do dns reverso.

    Assista também aos vídeos (path, python e ícone) gerados no Camtasia com as instruções para alterar as variáveis de ambiente do Windows e testar a sua instalação.

    Para converter programas que rodam em python 2 para python 3, use o utilitário 2to3 do python-tools:

    2to3 -w nome-do_programa

    Para ambiente Linux (Fedora) é necessário fazer:

    sudo yum install python-tools
                python-devel
                python2-matplotlib
                python2-dns
                python-mtTkinter
                python-kaa-metadata
                python-pillow-tk
                python-enum34
                wxPython
                rurple
                python2-numpy
                python2-scipy
                notify-python
                gnuplot-py
                python2-pyopengl
                PyQt-devel
                PyQt4-devel
                python-qt5-devel
                CGAL-devel
                cgal-python
                eric
                mplayer
                mpg123
    
    sudo yum install python3-tools
                python3-devel
                python3-tkinter
                python3-dns
                python3-matplotlib
                python3-numpy
                python3-scipy
                python3-PyQt4-devel
                python3-qt5-devel
                python3-pyopengl
                python3-pillow-tk
    
    Para ambiente Linux (Ubuntu) é necessário fazer:
    sudo apt-get install idle
                python-dev
                python-tk
                python-matplotlib
                python-dnspython
                python-kaa-metadata
                python-pil
                python-pil.imagetk
                python-enum34
                python-notify
                python-notify2
                python-wxglade
                python-numpy
                python-scipy
                python-opengl
                python-gnuplot
                python-qt4
                python-qt4-dev
                python-opencv
                libcgal-dev
                eric
                mplayer
                mpg123
    
    sudo apt-get install idle3
                python3-dev
                python3-tk
                python3-dnspython
                python3-matplotlib
                python3-numpy
                python3-scipy
                python3-pyqt4
                python3-pyqt5
                python3-notify2
                pyqt5-dev
                python3-opengl
                python3-enum34
                python3-pil
                python3-pil.imagetk
    


    Turmas do Prof. Paulo Roma

    Para aqueles matriculados no curso de Computação I (MAB-114) ou Computação II (MAB-225) da Engenharia Mecânica (EM1), por favor, inscrevam-se no curso: MAB-114 ou MAB-225. A sala de aula é a G215/LEPAC. As notas das provas podem ser obtidas neste local: MAB114 ou MAB225. A sexta nota (nota 6) é a média final. Revisão de todas as provas ao final do curso. As datas das provas estão de acordo com o Calendário Acadêmico: P1 dia 23 de junho, P2 dia 14 de julho.


    Agradecimentos

    Agradecemos a Claudio Esperança pela confecção das notas de aula na forma de transparências PowerPoint.

    /Paulo Roma.