Semana #1: 20.10.2023 e 21.10.2023

Apresentação
Considerações gerais sobre o programa, bibliografia, funcionamento das aulas e método de avaliação.

Introdução à Linguagem de Programação Python
Introdução aos conceitos básicos sobre programação em computadores. Introdução ao conceito de linguagens de programação. Compiladores vs interpretadores. Apresentação da linguagem Python: tipos básicos, variáveis, expressões e funções. Introdução à biblioteca matemática math.

Resolução de Exercícios Práticos
Apresentação da shell do Python e dos ambientes de programação Pyzo e IDLE. Explicação do conceito de variáveis e dos seus respetivos tipos. Resolução de exercícios básicos em Python.

Semana #2: 27.10.2023

Ciclos e Execução Condicional
Introdução a conceitos básicos sobre programação gráfica usando o módulo Turtle. Ciclos e execução condicional. Uso da função range em progressões aritméticas.

Resolução de Exercícios Práticos
Introdução ao conceito pensamento algorítmico e à forma de como estruturar a resolução de um problema. Resolução de exercícios sobre funções matemáticas básicas, usando ciclos e instruções de execução condicional.

Semana #3: 03.11.2023 e 04.11.2023

Ciclos e Execução Condicional (Continuação)
Controlo do fluxo de execução dentro de ciclos while e for. Execução condicional usando os conceitos fundamentais sobre a lógica booleana e sobre as primeiras leis de De Morgan.

Geração de Números Pseudo-aleatórios
Apresentação do conceito de pseudo-aleatoridade. Descrição da forma como os números são gerados em computadores, em particular, sobre o uso de sementes e de funções matemáticas. Uso da data/hora do sistema operativo nas sementes de geração de números pseudo-aleatórios.

Resolução de Exercícios Práticos
Continuação da resolução de exercícios sobre funções matemáticas básicas, usando ciclos e instruções de execução condicional.

Semana #4: 10.11.2023 e 11.11.2023

Geração de números Pseudo-aleatórios (Continuação)
Apresentação dos jogos Hi-Lo e Random Walk como casos de uso da biblioteca random do Python. Apresentação do conceito de pesquisa binária, usando como caso de uso o jogo Hi-Lo.

Cadeias de Caracteres
Introdução ao conceito de sequências de caracteres (strings). Manipulação de sub-strings. Imutabilidade e comparação de strings.

Tuplos e Listas
Definição e manipulação de tuplos. Imutabilidade dos tuplos. Operações básicas sobre tuplos. Acesso aos elementos dos tuplos e atribuição de tuplos a variáveis. Definição de listas. Mutabilidade das listas. Acesso aos elementos. Como fatiar listas em Python.

Resolução de Exercícios Práticos
Continuação da resolução de exercícios sobre funções matemáticas básicas, usando ciclos e instruções de execução condicional. Manipulação de listas com valores inteiros. Resolução de exercícios sobre strings.

Semana #5: 13.11.2023, 17.11.2023 e 18.11.2023

Tuplos e Listas (Continuação)
Operações básicas sobre listas. Inserção e remoção de elementos. Tuplos vs Listas. Combinação de listas com tuplos.

Processamento de Listas
Agregações. Eliminação de elementos repetidos. Crivo de Eratóstenes. Listas em compreensão.

Formatação de Texto
Introdução aos operadores de formatação. Exemplos de impressão de números e de cadeias de caracteres usando operadores de formatação.

Deteção e Correção de Erros
Erros sintáticos vs erros de execução vs erros semânticos. Correção de erros de diferentes tipos. Uso da primitiva assert para deteção de erros. Exemplos de correção de erros. Testes unitários.

Manipulação de ficheiros e Gestão de Exceções
Acesso a ficheiros usando objetos do tipo file. Operações de leitura e escrita sobre ficheiros. Exemplos de manipulação de dados contidos em ficheiros.

Resolução de Exercícios Práticos
Resolução de exercícios sobre o processamento de listas e tuplos.

Semana #6: 24.11.2023 e 25.11.2023

Manipulação de ficheiros e Gestão de Exceções (Continuação)
Gestão de exceções usando os operadores try e except.

Introdução aos Dicionários
Apresentação do conceito de dicionário. Manipulação básica de Dicionários usando primitivas simples.

Resolução de Exercícios Práticos
Resolução de exercícios sobre matrizes e dicionários.

Semana #7: 27.11.2023 e 02.11.2023

Revisões
Revisões sobre toda a matéria dada.

Resolução de Exercícios Práticos
Resolução de exercícios práticos sobre as fichas práticas e sobre os exercícios do Codex acessível remotamente.

Exame Final da Formação
Resolução de exercícios práticos de forma presencial usando o Codex.