Programação de Computadores I

Propaganda
Licenciatura em Engenharia Multimédia
Unidade Curricular
Programação de Computadores I
Computer Programming I
Objetivos
-Compreender a linguagem Python e seus fundamentos;
-Entender os paradigmas de programação;
-Compreender a linguagem Python como programação orientada
para objetos;
-Compreender o desenvolvimento das funcionalidades da linguagem
Python;
-Apreender a especificidade das aplicações Python aplicadas à
Multimédia.
Summary of objectives
-Understand Python and its foundations;
-Understanding programming paradigms;
-Understanding Python as programming oriented to objects;
-Understanding developing the features of the Python language;
-Grasping the specificity of Python applications applied to Multimedia.
Enquadramento: Obrigatória,
1º ano - 1º Semestre
Pré-requisitos:
Créditos: 6 ECTS
Horas contacto
Orientação tutorial (OT):
Seminário (S):
Teóricas (T):
Prática Laboratoriais (PL):
Teórico-práticas (TP):
12 h
0
0
0
48 h
Contextualização Científica
Python é uma linguagem interpretada,
dinamicamente digitada com uma sintaxe
precisa e eficiente. Python tem uma boa REPL
e novos módulos que podem ser exploradas
a partir do REPL com dir () e docstrings. Esta é
uma razão para preferir Python em relação C,
C ++ ou Java.
A linguagem Python está otimizada, nos dias
de hoje, para algumas áreas importantes:
a) A melhor linguagem para análise
aprofundada de dados científicos;
b) Inteligência artificial e aprendizagem
automática de máquinas;
c) É uma linguagem de uso geral que
pode ser empregada em vários tipos de
problemas. A biblioteca padrão inclui módulos
para processamento de texto e expressões
regulares, protocolos de rede (HTTP, FTP, SMTP,
POP, XML-RPC, IMAP), acesso aos serviços
do sistema operativo, criptografia e interface
gráfica. Além da biblioteca padrão, existe uma
grande variedade de extensões adicionais
para todo tipo de aplicações;
d) É tipicamente usada em aplicações
Web como linguagem de scripting para
administração de sistemas. A facilidade
de integração com C faz de Python uma
linguagem embutida atrativa em aplicações
de maior porte. A possibilidade de uso de
componentes COM faz da linguagem Python
uma alternativa mais fácil (e barata) do que
outras linguagens. Com o uso de ferramentas
como o freeze ou Py2Exe é possível distribuir
aplicações Python stand-alone, sem que o
utilizador tenha que instalar o interpretador
Python separadamente
e) Praticamente tudo o que se faria com
qualquer linguagem de programação, seja
ela interpretada ou compilada pode-se
fazer com Python: protótipos de sistemas,
automatização de tarefas repetitivas como
manipulação de texto, cópia de arquivos
e outros. Podem criar programas que
funcionam no modo texto, tanto interativos
como servidores (ou daemons). Podem
desenvolver-se programas em modo gráfico
usando a interface nativa do seu sistema,
ou então utilizando Tk, GTk, Qt, wxWidgets e
tantas outras.
Em termos científicos é sistematicamente
utilizada como ferramenta de ensino
de programação (pela sua facilidade de
aprendizagem
e
implementação
de
conceitos de Ciência da Computação), teste e
prototipagem, script, etc.
Operacionalização dos Conteúdos
1. Introdução
a. Linguagens:
i. Da máquina ao utilizador,
ii. Diferentes paradigmas:
1. Linguagens declarativas ou relacionais,
2. Linguagens funcionais,
3. Linguagens imperativas ou procedimentais,
4. Linguagens orientadas aos objetos.
iii. Modelo PCAP.
b. A linguagem Python.
c. Programas:
i. Exemplo de um programa.
d. O primeiro programa:
i. Funções.
e. Fazer escolhas.
f. Repetir.
g. Intermezzo.
h. Módulos.
i. Adivinhar.
j. Modo não interativo.
2. Objetos
a. Generalidades.
b. Números:
i. Operações,
ii. Coerção e construtores,
iii. Precedência,
iv. Outros casos,
v. Exemplos.
c. Booleanos.
d. Cadeia de Carateres:
i. Carateres de controlo,
ii. Operações de conversão,
iii. Comparar cadeias de carateres,
iv. Operadores,
v. Indexação,
vi. Fatiamento,
vii. Cadeias de carateres, Print e Formatação,
viii. Mais operações,
ix. Métodos específicos,
x. Construtor.
e. Range.
f. Tuplos:
i. Operações,
ii. Empacotamento,
iii. Construtor,
iv. Representação,
v. Embricamento,
vi. Tuplos com nome.
g. Intermezzo.
h. Imutabilidade:
i. Mutabilidade e memória,
ii. Nonetype.
3. Programação Orientada aos Objetos
a. Introdução.
b. Encapsulamento.
c. Intermezzo.
d. Herança.
e. Polimorfismo.
f. UML.
i. Exemplos:
1. Biblioteca da Escola,
2. Máquina multibanco.
g. Exemplo: Mundos e Robôs:
i. Predadores e presas.
h. Classes abstratas.
4. Multimédia
a. Introdução.
b. Representação de imagens.
c. O Módulo cIMAGE:
i. Janelas,
ii. Imagens,
iii. Píxeis.
d. Exemplos básicos.
e. Manipulações simples:
i. Negativo,
ii. Cinzento,
iii. Sépia.
f. Intermezzo: abstração:
i. Brilho.
g. Exemplos complementares:
i. Colorir o chão,
ii. Distorcer uma imagem,
iii. Espelho.
h. Filtros:
i. Convulação,
ii. Extrair características,
i. O formato da imagem PPM:
i. De PPM para JPG,
ii. De JPG para PPM.
Bibliografia
OBRIGATÓRIA:
COSTA, Ernesto; Programação em Python, FCA, 2015.
COMPLEMENTAR:
LUBANOVIC, Bill Introducing Python: Modern Computing in Simple Packages; O’Reilly.
BEAZLEY, David; Python Cookbook, Third edition; O’Reilly.
META, Alex; Python: The Ultimate Crash Course for Python Programming; Learn Today.
HATTEM, Rick; Mastering Python, PACKT.
GUTTAG, John; Introduction to Computation and Programming Using Python: With Application to
Understanding Data, MIT Press.
SLATKIN, Brett; Effective Python: 59 Specific Ways to Write Better Python, Scott Meyers.
GADDIS, Tony; Starting Out with Python, Global Edition.
ABNER, Ben; Python: The ultimate beginners guide that intermediate and advanced users can also find use
in, Edição de Autor.
KINDER, Jesse; A Student’s Guide to Python for Physical Modeling, Princeton University Press.
BEAZLEY, David; Python Essential Reference (4th Edition), Developer’s Library.
Download