6 ECTS; 1º Ano, 2º Semestre, 45,0 PL + 30,0 TP , Cód. 61428.
Docente(s)
- Ricardo Nuno Taborda Campos (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 usando a linguagem Python. Ao concluir esta unidade o estudante deverá:
1) ser capaz de codificar algoritmos elementares na linguagem Python
2) ter conhecimento profundo das características desta linguagem de programação e saber instalar e configurar o ambiente de desenvolvimento;
3) ter conhecimento dos principais comandos da linguagem de programação
4) ter conhecimento das principais bibliotecas existentes em Python;
5) saber automatizar rotinas com recurso a estruturas de controlo e iteração;
6) saber escrever e estruturar programas em Python com recurso a arrays;
7) saber escrever e estruturar programas em Python com recurso a estruturas de dados avançadas;
8) saber escrever e estruturar programas em Python com recurso a compreensão de listas;
9) ser capaz de escrever e guardar ficheiros de texto, CSV, JSON e documentos web;
10) saber decompor problemas em sub-tarefas com recurso a funções reutilizáveis e anónimas;
11) saber criar e disponibilizar módulos
12) ser capaz de executar módulos/scripts a partir da linha de comandos
13) estar capacitado para testar e corrigir erros em programas;
14) estar familiarizado com as principais noções da programação orientada a objetos
Programa
1. Introdução à Programação
1.1. Porquê aprender a programar?
1.2. O que é um programa?
1.3. O que é um algoritmo?
1.4. Linguagens de programação
2. Programação em Python
2.1. Porquê programar em Python?
2.2. História do Python
2.3. Características
2.4. Vantagens
2.5. Instalação do Python
3. Introdução ao Python
3.1. Comentários
3.2. Ajuda no Python
3.3. Entrada e saída de informação
3.4. Variáveis
3.5. Tipos de dados
3.6. Operadores
3.7. Casting
3.8. Formatação de dados
3.9. Imutabilidade vs Mutabilidade
3.10. Notebooks em Python
4. Importação e Utilização de Bibliotecas
4.1. Módulos internos
4.2. Módulos externos
4.3. Módulos frequentemente usados
5. Estruturas de Controlo e Iteração
5.1. IF
5.2. For
5.3. While
5.4. Break/Continue
6. Estruturas de Dados Simples
6.1. Arrays
6.2. Arrays Multidimensionais
6.3. Jagged Arrays
7. Estruturas de Dados Avançadas
7.1. Listas
7.2. Conjuntos
7.3. Dicionários
7.4. Tuplos
8. Compreensão de Listas
8.1. Introdução à compreensão de listas
8.2. LINQ em Python
9. Leitura e Escrita de Ficheiros
9.1. Ficheiros de texto
9.2. Ficheiros HTML
9.3. Ficheiros CSV
9.4. Ficheiros JSON
10. Funções
10.1 Funções definidas pelo utilizador
10.2. Funções geradoras
10.3 Funções lambda (MAP, Filter, Reduce)
11. Criação e Partilha de Módulos
11.1. Criação de módulos
11.2. Disponibilização local de módulos
11.3. Disponibilização online de módulos (PyPi e Github)
11.4. Criação de pacotes
11.5. Disponibilização local de pacotes localmente
11.6. Disponibilização online de pacotes (PyPi e Github)
12. Linha de Comandos
12.1. Execução de código a partir da linha de comandos
12.2. Passagem de parâmetros
12.3. Módulo __name__
12.4. Função Main
13. Exceções
13.1. Definição
13.2. Tipos de erros
13.3. Controlo de exceções
14. Introdução à POO
14.1. Definição de classe
14.2. Criação de instâncias
14.2. Construtores
14.3. Atributos de classe estáticos
14.4. Métodos
14.5. Iteradores
Metodologia de avaliação
Avaliação por Frequência: Frequência I (60%) + Frequência II (40%)
Participação obrigatória nos 2 elementos de avaliação com nota mínima de 6 valores (em cada um)
Avaliação por Exame: Exame(100%)
Bibliografia
- Costa, E. e , . (2016). 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
- Liang, D. (2012). Introducing to Programming using Python. NA: NA
- 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
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
Moodle: plataforma de eLearning do IPT, Centro de eLearning