Publicação em Diário da República: Despacho n.º 9184/2020 - 25/09/2020
6 ECTS; 1º Ano, 2º Semestre, 42,0 PL + 28,0 TP + 5,0 OT , Cód. 81439.
Docente(s)
- Ricardo Nuno Taborda Campos (1)(2)
(1) Docente Responsável
(2) Docente que lecciona
Pré-requisitos
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 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;
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
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. Tuplos
6.5. Tuples
6.6. Names Tuples
6.7. 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)
9.4. Agendamento de Tarefas e de Scripts envolvendo Funções
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
Metodologia de avaliação
Avaliação por Frequência: Frequência I (40%) [Prova com consulta] + Frequência II (60%) [Provacom consulta parcial dos conteúdos].
Participação obrigatória em todos os elementos de avaliação (nota mínima de 6 valores em cada um).
Avaliação por Exame: Exame (100%) [Prova sem consulta].
Requisitos de admissibilidade à frequência e ao exame:
- Mínimo de 70% de assiduidade às aulas (exceto trabalhadores estudantes);
- Mínimo de 80% na entrega dos problemas de programação propostos nas aulas;
- As presenças em aula ou a resolução dos problemas não são classificados com nota nem contam para avaliação, constituem, no entanto, condição necessária para aprovação à UC por frequência e exame. O incumprimento de qualquer um destes itens impede o aluno de se submeter à frequência e ao exame.
Bibliografia
(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
(0). Think Python - How to Think Like a Computer Scientist. Acedido em 16 de fevereiro de 2018 em http://greenteapress.com/wp/think-python
(2012). Introducing to Programming using Python. NA: NA
(2016). Programação em Python - Fundamentos e Resolução de Problemas . Lisboa: FCA
Método de Ensino
Aulas teórico-práticas expositivas onde se descrevem os conceitos fundamentais.Aulas práticas de resolução de casos práticos e aplicação dos conceitos a cenários de utilização real.
Software utilizado nas aulas
Python - Anaconda
Jupyter Notebooks
Git
PyCharm
Moodle: plataforma de eLearning do IPT, Centro de eLearning