Projeto e Análise de Algoritmos (2025-2)
Plano de Ensino (pdf)
Objetivos
Compreender os fundamentos teóricos para a análise de algoritmos por meio de ferramentas matemáticas que permitam a construção de soluções eficientes para problemas usuais nas aplicações computacionais. Ao final do curso o aluno dever ser capaz de:
- Analisar a complexidade, quanto aos recursos de tempo e espaço, de algoritmos utilizando a análise assintótica;
- Provar a correção de algoritmos;
- Conhecer os paradigmas de divisão e conquista, algoritmos gulosos e programação dinâmica para projetos de algoritmos;
- Compreender os fundamentos da teoria de NP-completude.
Conteúdo programático
- Fundamentos matemáticos para a análise de algoritmos;
- Indução;
- Crescimento de funções;
- Notação assintótica;
- Relações de recorrência.
- Indução;
- Análise assintótica de algoritmos;
- Paradigmas de projeto de algoritmos;
- Projeto por indução;
- Divisão e conquista;
- Programação dinâmica;
- Algoritmos gulosos.
- Projeto por indução;
- Fundamentos de complexidade computacional.
- Redução entre problemas;
- As classes P e NP;
- Problemas NP-completos.
- Redução entre problemas;
Metodologia de ensino
O conteúdo será abordado por meio de aulas expositivas estruturadas da seguinte forma:
- Leituras dirigidas;
- Exercícios semanais (via Teams);
- Avaliações escritas.
- Na medida do possível as aulas serão gravadas e estarão disponíveis no Teams.
- Todo o material do curso estará disponível em https://flaviomoura.info/paa-2025-2.html.
Avaliação
A avaliação será composta das seguintes partes:
- Duas provas escritas individuais e sem consulta:
- Prova 1 (01/out/2025) - 40 pontos;
- Prova 2 (03/dez/2025) - 40 pontos;
- Prova 1 (01/out/2025) - 40 pontos;
- Exercícios semanais - 20 pontos;
- Projeto (opcional) - 20 pontos .
Para ser aprovado o aluno deve cumprir simultaneamente os seguintes itens:
- Frequência maior ou igual a 75%;
- Obter pelo menos 50 pontos no total.
A menção final é definida como a seguir:
Menção | Pontos |
---|---|
SS (Superior) | 90 – 100 |
MS (Médio Superior) | 70 – 89 |
MM (Médio) | 50 – 69 |
MI (Médio Inferior) | 30 – 49 |
II (Inferior) | 01 – 29 |
SR (Sem Rendimento) | 00 ou mais de 25% de faltas |
Bibliografia
- Referência principal: cite:&cormenIntroductionAlgorithms2022.
- Referências complementares: cite:&baaseComputerAlgorithmsIntroduction1999;&levitinIntroductionDesignAnalysis2012;&manberIntroductionAlgorithmsCreative1989;&roughgardenAlgorithmsIlluminatedPart2017;&roughgardenAlgorithmsIlluminatedPart2018;&roughgardenAlgorithmsIlluminatedPart2019;&toscani2012algoritmos;&sipserIntroductionTheoryComputation1996;&brassard.
bibliographystyle:plain
bibliography:zotLib.bib
Cronograma
Aula | Data | Assunto | Arquivos |
---|---|---|---|
1 | |||
2 | |||
3 | Invariantes de laço | ||
4 | |||
5 | |||
6 | |||
7 | |||
8 | |||
9 | |||
10 | |||
--- | Semana Universitária | ||
--- | Semana Universitária | ||
11 | Revisão para a Prova 1 | ||
12 | Prova 1 | ||
13 | |||
14 | |||
15 | |||
16 | |||
17 | |||
18 | |||
--- | Ponto facultativo | ||
19 | |||
20 | |||
21 | |||
22 | |||
23 | |||
24 | |||
25 | |||
26 | |||
27 | |||
28 | Revisão para a Prova 2 | ||
29 | Prova 2 |