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