Laboratórios de Algoritmia II é uma unidade curricular do 2º ano da Licenciatura em Ciências da Computação da Universidade do Minho. Esta unidade curricular laboratorial pretende complementar e solidificar os conhecimentos de programação e algoritmia aprendidos previamente, introduzindo diferentes estratégias genéricas de resolução de problemas, nomeadamente utilização de travessias em grafos, programação dinâmica e pesquisa exaustiva. Estas técnicas são ilustradas por uma série de problemas e puzzles clássicos. Pretende-se que após esta unidade curricular os alunos sejam capazes de rapidamente identificar e implementar a estratégia algorítmica mais adequada à resolução de um dado problema. A linguagem usada é o Python, mas as estratégias introduzidas podem facilmente ser codificadas noutras linguagens de programação.
Programa
Docentes
- Alcino Cunha
- José Bernardo Barros
Método de avaliação
- Avaliação com 5 torneios de avaliação
- Cada torneio tem 2 problemas e duração de 2h
- Realizados em grupos de 2 alunos
- Nota proporcional ao número de casos de teste passados
- Linguagem Python 3 na plataforma codeboard.io
- Username o grupo deve identificar os números dos 2 alunos
- Durante os torneios só é permitida a consulta de material dos acetatos e da documentação do Python (1 folha A4 de material por grupo)
- No final de cada torneio as submissões são auditadas para deteção de fraude
- Não há exame nem torneios de recuperação!
Planificação
Aula | Data | Sumário |
---|---|---|
1 | 4 Fev | Introdução ao Python |
2 | 11 Fev | Treino |
3 | 18 Fev | Torneio de avaliação 1 |
4 | 25 Fev | Algoritmos de grafos |
5 | 11 Mar | Treino |
6 | 18 Mar | Torneio de avaliação 2 |
7 | 25 Mar | Programação dinâmica |
8 | 1 Abr | Treino |
9 | 8 Abr | Torneio de avaliação 3 |
10 | 22 Abr | Pesquisa exaustiva |
11 | 29 Abr | Treino |
12 | 6 Mai | Torneio de avaliação 4 |
13 | 2 Jun | Torneio de avaliação 5 |
Problemas de treino
- Introdução ao Python
- Algoritmos de grafos
- Programação dinâmica
- Pesquisa exaustiva
Programação competitiva
- Campeonato universitário de programação
- International Collegiate Programming Contest (mundial)
- Southwestern Europe Regional Contest (regional)
- Maratona Inter-Universitária de Programação (nacional)
- CodeChef
- Advent of Code