Dias e Horários das Aulas e Atendimentos pelo Professor
As aulas serão às segundas-feiras 21h00 às 23h00 e quartas-feiras 19h00 às 21h00.
Os atendimentos serão marcados pelo docente e anunciados em classe.
Aulas de Exercícios e Atendimento pelo Monitor
Haverá algumas aulas de exercícios que serão dadas pelo Monitor (PED: Fábio P. Selmi-Dei).
As aulas de exercícios e os atendimentos dados pelo Monitor serão às terças e quintas-feiras de 17h00 às 19h00 na sala PB-07.
Tópicos a serem cobertos
Tópicos previstos (outros poderão ser acrescentados aqui ao longo do semestre):
Reduções entre problemas: conceito e suas aplicações para estabelecimento de quotas inferiores e superiores, com exemplos (Veja Notas de Aula - Reduções.)
Projeto de algoritmos por indução
Somatórios e relações de recorrência: veja capítulo 3 de [1] e capítulos 3 e 4 de [2].
Breve revisão de somatórios mais frequentemente usados
Definição da função lg* n
Relações de recorrência: conceito, técnicas de solução e teorema master
Exemplos
Union-find (e análise usando lg* n).
Revisão de estruturas de dados: veja capítulo 4 de [1], capítulos 11, 13, 22 de [2] e também [9].
Se você quiser uma fonte extensiva de animações de algoritmos (não só de ordenação) visite CCAA.
Algoritmos em Grafos: veja capítulo 7 de [1] e capítulos 23 a 27 de [2].
Representação de grafos
Busca em largura e em profundidade
Ordenação topológica
Caminhos mínimos
Árvores geradoras mínimas
Problemas de fluxos
Casamentos máximos
Exemplos
Paradigmas de projeto de algoritmos: veja capítulos 3, 4, e 5 de [3].
Paradigma de Divisão e Conquista
Exemplos
Paradigma de Programação Dinâmica
Exemplos
Paradigma Guloso
Exemplos
Slides de algumas aulas ou notas sobre tópicos específicos poderão ser disponibilizados aqui. (Verifique esta página regularmente.)
Referências Bibliográficas
[1]
[Livro-texto] Introduction to Algorithms: A Creative Approach U. Manber Addison-Wesley, 1989.
[2]
[Livro-texto] Algoritmos - Teoria e Prática T. Cormen, C. Leiserson, R. Rivest, C. Stein Editora Campus, 2002. Errata
[3]
Introduction to Algorithms T. Cormen, C. Leiserson, R. Rivest, C. Stein McGraw-Hill, 2001. Errata
Obs: As referências [2] e [3] são equivalentes: a primeira é a versão em Português da segunda (em Inglês).
Outras referências recomendadas:
[4]
Algorithmics: theory and practice G. Brassard e P. Bratley Prentice-Hall, 1995.
[5]
Data Structures with Abstract Data Types and Pascal D. F. Stubbs, N. W. Webre Brooks/Cole, 1989.
Listas de Exercícios
Listas de exercícios serão atribuídas ao longo do semestre.
Além de servir para maior fixação do material apresentado em classe, o conteúdo dos exercícios é considerado parte integrante do material visto e será assumido como parte da matéria coberta.
Como as listas não farão parte da avaliação, suas soluções não serão coletadas.
Os alunos são encorajados a resolver todos os exercícios individualmente e, só posteriormente, realizar discussão em grupo.
Quaisquer dificuldades devem ser prontamente discutidas com o professor nos horários de atendimentos. Dúvidas não sanadas geram mais dúvidas.
Haverá três provas (P1, P2, P3) nas datas indicadas ao final deste documento.
Cada prova será em classe e terá duração de 120 minutos.
A média final será a média ponderada de P1, P2 e P3 com pesos iguais a 1, 2, 3, respectivamente.
Não serão ministradas provas antecipadas nem substitutivas.
Aviso: Qualquer tentativa de cola ou fraude, detetada durante uma prova ou posteriormente, acarretará nota zero naquela prova para todos os implicados, além das sansões regimentais, a critério do docente.
Tópicos Selecionados para o Exame
As cinco questões do exame serão divididas da seguinte forma:
Prova 1 - Uma questão entre os dois tópicos abaixo:
Crescimento de Funções: C1 e M2
Indução Matemática: M3
Prova 2 - Duas questões entre os três tópicos:
Recorrência: C4
Estrutura de Dados: C11, C13 e C22 (22.1, 22.2, 22.3)