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 dos acetatos e da documentação do Python
- Não é permitida a utilização de sistemas de IA para geração de código
- 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 | 6 Fev | Introdução ao Python |
2 | 20 Fev | Treino |
3 | 27 Fev | Torneio de avaliação 1 |
4 | 5 Mar | Algoritmos de grafos |
5 | 12 Mar | Treino |
6 | 19 Mar | Torneio de avaliação 2 |
7 | 2 Abr | Programação dinâmica |
8 | 9 Abr | Treino |
9 | 16 Abr | Torneio de avaliação 3 |
10 | 23 Abr | Pesquisa exaustiva |
11 | 30 Abr | Treino |
12 | 7 Mai | Treino |
13 | 14 Mai | Torneio de avaliação 4 |
14 | 21 Mai | 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