Informática e Tecnologias Multimédia

Linguagens de Programação

<< voltar ao Plano Curricular

6 ECTS; 1º Ano, 2º Semestre, 42,0 PL + 28,0 TP + 5,0 OT , Cód. 81439.

Docente(s)
- Fernando Sérgio Hortas Rodrigues (1)(2)

(1) Docente Responsável
(2) Docente que lecciona

Pré-requisitos
Não aplicável.

Objetivos
Esta unidade curricular tem por objectivo introduzir os alunos à programação de computadores de alto nível, nomeadamente através da linguagem de programação Python. Ao concluir esta unidade curricular o estudante deverá:
1) ter conhecimento profundo das características desta linguagem de programação e saber instalar e configurar o ambiente de desenvolvimento;
2) ter conhecimento dos principais comandos da linguagem de programação
3) ter conhecimento das principais bibliotecas existentes em Python;
4) saber automatizar rotinas com recurso a estruturas de controlo e iteração;
5) saber escrever e estruturar programas em Python com recurso a arrays;
6) saber escrever e estruturar programas em Python com recurso a estruturas de dados avançadas;
7) saber escrever e estruturar programas em Python com recurso a compreensão de listas;
8) ser capaz de processar ficheiros de texto, word, CSV, JSON, e documentos web, bem como entender a importância do OCR (mecanismo de reconhecimento de caracteres) no processamento de texto a partir de imagens e pdfs;
9) saber decompor problemas em sub-tarefas com recurso a funções reutilizáveis e anónimas;
10) saber criar e disponibilizar módulos;
11) ser capaz de executar módulos/scripts a partir da linha de comandos;
12) estar capacitado para testar e corrigir erros em programas;
13) ser capaz de gerir logs decorrentes de exceções.

Programa
1. Programação em Python
1.1. Porquê programar em Python?
1.2. História do Python
1.3. Características
1.4. Vantagens
1.5. Instalação do Python

2. Introdução ao Python
2.1. Comentários
2.2. Ajuda no Python
2.3. Entrada e saída de informação
2.4. Variáveis
2.5. Tipos de dados
2.6. Operadores
2.7. Casting
2.8. Formatação de dados
2.9. Imutabilidade vs Mutabilidade
2.10. Notebooks em Python

3. Importação e Utilização de Bibliotecas
3.1. Módulos internos
3.2. Módulos externos
3.3. Módulos frequentemente usados
3.4. Introdução ao PyPi: repositório oficial de pacotes do Python
3.5. Criação de Ambiente Virtuais

4. Estruturas de Controlo e Iteração
4.1. IF
4.2. For
4.3. While
4.4. Break/Continue

5. Estruturas de Dados Simples
5.1. Arrays
5.2. Arrays Multidimensionais
5.3. Jagged Arrays

6. Estruturas de Dados Avançadas
6.1. Listas
6.2. Conjuntos
6.3. Dicionários
6.4. Tuples
6.5. Names Tuples
6.6. Enums

7. Compreensão de Listas e LINQ
7.1. Introdução à compreensão de listas
7.2. LINQ em Python

8. Leitura e Escrita de Ficheiros
8.1. Ficheiros de texto
8.2. Ficheiros de Imagem
8.3. Ficheiros PDF
8.4. Ficheiros MS Word
8.5. Ficheiros HTML
8.6. Ficheiros CSV
8.7. Ficheiros JSON

9. Funções
9.1 Funções definidas pelo utilizador
9.2. Funções geradoras
9.3 Funções lambda (MAP, Filter, Reduce)

10. Criação e Partilha de Módulos
10.1 Introdução ao git (sistema de controlo de versões)
10.2 Introdução ao github (repositório de código-fonte com ligação ao git)
10.3 Sincronização de projetos com o github, a partir do Git e do software de desenvolvimento PyCharm
10.4. Criação de módulos
10.5. Disponibilização local de módulos
10.6. Disponibilização online de módulos (PyPi e Github)
10.7. Criação de pacotes
10.8. Disponibilização local de pacotes
10.9. Disponibilização online de pacotes (PyPi e Github)

11. Linha de Comandos
11.1. Execução de código a partir da linha de comandos
11.2. Passagem de parâmetros
11.3. Módulo __name__
11.4. Função Main

12. Exceções
12.1. Definição
12.2. Tipos de erros
12.3. Controlo de exceções

13. Logs
13.1 Níveis de mensagens de logs
13.2 Formatação de logs
13.3 Mensagens de Logs
13.4 Controlo de exceções no âmbito de logs
13.5 Escrita de logs em ficheiros

14. Introdução à Orientação a Objetos
14.1 Classes
14.2 Instancias de Classe
14.3 Construtores
14.4 Atributos de classe estáticos
14.5 Métodos
14.6 Iteradores

Metodologia de avaliação
Frequência:

- Dez minitestes de escolha múltipla, tipo americano (MT) - Peso da componente: 10%
- Duas apresentações de grupo (AP) - Peso da componente: 10%
- Projeto de grupo a realizar em aula (P) – Peso de 80%, com nota mínima de 10 valores. A não obtenção de nota mínima resulta na exclusão de exame.
- Participação obrigatória em 2/3 das aulas TP e PL. Em caso contrário será excluído de exame.

NF = Med(MT) × 0,1 + Med(AP) × 0,1 + P × 0,8 c/ Med(X) -> Média de X

O aluno trabalhador-estudante ou abrangido por estatutos especiais legalmente previstos aplica-se o Ponto 3 do artigo 13 do RA.

Em alternativa, estes devem:
1-Participar em sessões de acompanhamento e avaliação com o docente, com periodicidade quinzenal, em horário a acordar entre ambas as partes.
2-Apresentar, em cada sessão de acompanhamento, evidências do progresso do projeto, sendo estas sessões consideradas momentos de avaliação intercalar. A não comparência reiterada e injustificada poderá comprometer a avaliação da componente de projeto.
3-Cumprir os mesmos critérios de qualidade e as mesmas datas-limite de entrega do projeto aplicáveis aos restantes estudantes.


Exame:
- Exame escolha múltipla, tipo americano (E) - 20%
- Projeto de grupo (nota da obtida na época de frequência)

NF = E × 0,2 + P × 0,8

A aprovação à UC faz-se de acordo com o disposto nos Pontos 11 e 12, do Artigo 11º, do RA do IPT.

Bibliografia
- Carvalho, A. (2021). Práticas de Python - Algoritmia e Programação. Lisboa: FCA
- Costa, E. (2024). Programação em Python - Fundamentos e Resolução de Problemas . Lisboa: FCA
- Downey, A. (0). Think Python - How to Think Like a Computer Scientist. Acedido em 16 de fevereiro de 2018 em http://greenteapress.com/wp/think-python
- Severance, C. (0). Python for Everybody - Exploring Data Using Python 3. Acedido em 16 de fevereiro de 2018 em http://do1.dr-chuck.com/pythonlearn/EN_us/pythonlearn.pdf

Método de Ensino
Metodologias ativas centradas na aula invertida e no project based learning, complementadas por aulas teórico-práticas. Os capítulos 1, 2 e 10 são introduzidos por aulas expositivas. Inclui trabalho autónomo, minitestes, apresentações e projeto.

Software utilizado nas aulas
Python
Anaconda
Jupyter Notebooks
Repositórios de Desenvolvimento Colaborativo: Git/GitHub
IDEs: PyCharm / VS Code / Spider / outros
LLMs: Claude / Gemini / openAI / outros

 

Aprovado em Conselho Técnico Cientifico: Reunião nº 225 - Reabertura (26/03/2026)

Download da Ficha da Unidade Curricular (FUC)

 

 


<< voltar ao Plano Curricular
ISO 9001
NP4552
SGC
KreativEu
erasmus
catedra
b-on
portugal2020
centro2020
compete2020
crusoe
fct
feder
fse
poch
portugal2030
poseur
prr
santander
republica
UE next generation
Centro 2030
Lisboa 2020
Compete 2030
co-financiado