Algoritmos e Técnicas de Programação

Foto pessoal

José Carlos Ramalho

Professor/Investigador/Empresário

Dep. Informática - Universidade do Minho

jcr@di.uminho.pt

Outras informações


Horário

Aula Teória:

  • quinta das 14h às 16h, sala 0.0.7

Aulas Práticas:

  • Turno 1: segunda das 15h às 17h, sala 7.1.09
  • Turno 2: terça das 15h às 17h, sala 7.1.09
  • Turno 3: terça das 13h às 15h, sala 7.1.09


Avaliação

  • 8 Trabalhos de casa (20%);
  • 1 Projeto em grupo até 3 elementos (30%)[nota mínima de 8 val.];
  • 1 Teste escrito (40%)[nota mínima de 8 val.];
  • Fator JCR (10%).

Datas importantes

  • ??? - teste escrito;
  • 24 de Janeiro, 14h - exame de recurso;
  • fim de Janeiro - entrega do projeto.

Aulas Teóricas

Aula Teórica 1: 2022-09-22

Introdução à arquitetura dum computador: canais de entrada e saída, unidade central de processamento e unidades de armazenamento.

Tipos de dados: inteiros e reais.

Operações e operadores sobre tipos numéricos.

Operações de IO: input e print.

Notebook criado durante a aula.


Aula Teórica 2: 2022-09-29

Tipos de dados estruturados: listas e strings.

Principais métodos e operações.

Notebook criado durante a aula.

Gravação da aula.


Aula Teórica 3: 2022-10-06

Tipos de dados estruturados: listas e tuplos.

Principais métodos e operações.

Notebook criado durante a aula.

Gravação da aula.


Aula Teórica 4: 2022-10-13

Tipos de dados estruturados: listas, tuplos e dicionários.

Armazenamento de informação em ficheiros.

Notebook criado durante a aula.


Aula Teórica 5: 2022-10-20

Breve introdução ao Sistema de Ficheiros de um computador.

Introdução à construção de gráficos com o matplotlib.

Tipos de dados estruturados: dicionários.

Processamento de ficheiros JSON.

Notebook criado durante a aula.


Aula Teórica 6: 2022-10-27

Revisão geral do que foi lecionado até ao momento.

Aplicação num caso prático: gestão de publicações.

Mais sobre dicionários.

Notebook da aula.


Aula Teórica 7: 2022-11-03

Revisão geral do que foi lecionado até ao momento.

Aplicação num caso prático: gestão de publicações.

Operações CRUD sobre um modelo de dados.

Notebook da aula.

Módulos desenvolvidos na aula: pubs.py e pubsApp.py


Aula Teórica 8: 2022-11-10

Introdução às interfaces gráficas em Python: o módulo PySimpleGUI.

Conceitos associados a uma interface: janela, componentes.

Captura e tratamento de eventos e da interacção.

Notebook da aula.


Aula Teórica 9: 2022-11-17

Esta aula, tem duas partes. Na primeira, vamos analisar a dualidade função recursiva versus função iterativa, comparar padrões algorítmicos e verificar as relações entre eles. Na segunda parte, vamos ver como se podem construir aplicações com interfaces gráficas em Python com ações do utilizador e respetivas reações da aplicação.

Notebook da aula.


Aula Teórica 10: 2022-11-24

Nesta aula, introduzem-se dois módulos do Python: os e shutil.

Estes módulos permitem manipular o sistema de ficheiros da máquina fazendo com que seja possível realizar certas ações nas aplicações.

No fim da aula, apresenta-se um Browser sobre o sistema de ficheiros usando estes módulos.

Dataset de suporte à aula.

Notebook da aula.


Aulas Práticas

Aula Prática 1 (Seg e Ter): 2022-09-19/20

Resolução de exercícios com programação visual.


Aula Prática 2 (Seg e Ter): 2022-09-26/27

Resolução de exercícios sobre cálculo numérico usando estruturas cíclicas e condicionais.

Guião para a aula prática.

Notebook do TP1.

Notebook dos TP2 e TP3.


Aula Prática 3 (Seg e Ter): 2022-10-03/04

Resolução de exercícios sobre listas.

Guião para a aula prática.

Notebook do TP1.

Notebook dos TP2 e TP3.


Aula Prática 4 (Seg e Ter): 2022-10-10/11

Resolução de exercícios sobre modelação e operações com listas.

Guião para a aula prática.

Notebook do TP1.

Ficheiro Python dos TP2 e TP3.


Aula Prática 5 (Seg e Ter): 2022-10-17/18

Resolução de exercícios sobre modelação e operações sobre ficheiros e dicionários.

Guião para a aula prática.

Dataset para o TPC.

Notebook do TP1.

Notebook dos TP2 e TP3.


Aula Prática 6 (Seg e Ter): 2022-10-24/25

Resolução de exercícios sobre modelação e operações sobre ficheiros e estruturas de dados.

Guião para a aula prática.

Dataset para a aula.

Notebook do TP1.

Notebook dos TP2 e TP3.

Módulo python desenvolvido no TP1.

Módulo python desenvolvido no TP2 e TP3.


Aula Prática 7 (Seg): 2022-10-31

Resolução de exercícios com vários tipos de algoritmos.

Guião para a aula prática.

Dataset para a aula.

Notebook do TP1.

Nota para quem não foi à aula: usar o guião e tentar resolver os exercícios. Usar o notebook do TP1 para verificar as soluções e comparar resultados.


Aula Prática 8 (Seg e Ter): 2022-11-07/08

Resolução de exercícios com modelação e vários tipos de algoritmos.

Guião para a aula prática.

Notebook do TP1.

Notebook dos TP2 e TP3.


Aula Prática 9 (Seg e Ter): 2022-11-14/15

Desenvolvimento de aplicações com interfaces gráficas.

Guião para a aula prática.

Notebook do TP1.

Notebook dos TP2 e TP3.


Aula Prática 10 (Seg e Ter): 2022-11-21/22

Exercícios algorítmicos sobre strings/listas.

Guião para a aula prática.

Notebook do TP1.

Notebook dos TP2 e TP3.


Aula Prática 11 (Seg e Ter): 2022-11-28/29

Exercícios algorítmicos sobre strings/listas.

Guião para a aula prática.

Notebook do TP1.

Notebook dos TP2 e TP3.


Aula Prática 12 (Seg e Ter): 2022-12-05/06

Exercícios algorítmicos listas e dicionários.

Guião para a aula prática.

Notebook do TP1.

Notebook dos TP2 e TP3.


Aula Prática 13 (Seg e Ter): 2022-12-12/13

Exercícios algorítmicos com listas, dicionários e ficheiros.

Guião para a aula prática.

Guião de trabalho sobre ficheiros.

Dataset sobre Fernando Pessoa.