CCM128 Computação II
[Edição do 1o. Semestre de 2016]
(Página eternamente minimal e em mutação)
Transparências de Sedgewick e Wayne (cópia local)
Documentação de Java
Sinopse das aulas
Fevereiro
- informações gerais. Paca. Pilhas Apresentação da disciplina: objetivos e importância. Núcleo: programação, algoritmos e estruturas de dados. Papel importante: abstração. Orientação a objetos; Java. Bibliografia. O sistema Java de S&W. Tópicos administrativos:
- Pilhas (continuação). Filas. Generics
- Iterators. Aplicações de pilhas e filas
- O algoritmo de Dijkstra para avaliação de expressões. Análise de algoritmos (recordação)
Março
- Union-find
- Union-find. Algoritmos de ordenação
- Algoritmos elementares. Algoritmos linearítmicos: merge-sort
- Merge-sort (cont.)
- Quicksort
- Filas de prioridade; heapsort
- Semana Santa (recesso escolar)
- Semana Santa (recesso escolar)
- Heapsort. Event-driven simulation
- Event-driven simulation. Simulação de um sistema de partículas em um recipiente
Abril
- Tabelas de símbolos. Implementações elementares
- Tabelas de símbolos. Implementações elementares (cont.). Implementação com árvores binárias de busca
- Implementação com árvores binárias de busca (cont.)
- (Web Exercise 2.4.4 (uma equação diofantina).) Tabelas de símbolos: implementação com árvores binárias de busca (cont.)
- Aula cancelada (professor fora do país)
- Aula cancelada (professor fora do país)
- Árvores balanceadas. Árvores 2-3 e árvores rubro-negras esquerdistas (ARNEs) (left-leaning red-black trees (LLRBs))
- LLRBs (cont.). Tabelas de hashing (introdução)
Maio
- Tabelas de hashing
- Aplicações de tabelas de símbolos. Grafos (introdução)
- Grafos (continuação). Busca em profundidade. Busca em largura e distância em grafos. Bacon numbers
- Componentes conexas. Alguns problemas computacionais envolvendo grafos. Grafos dirigidos. Buscas em grafos dirigidos: profundidade e largura
- Ordenação topológica. Componentes fortes. O algoritmo de Kosaraju e Sharir
- http://www.youtube.com/watch?v=vIFCV2spKtg e https://www.cs.princeton.edu/courses/archive/fall14/cos226/assignments/seamCarving.html) Algoritmo de Kosaraju e Sharir (cont.). Caminhos mais curtos em grafos com pesos e aplicações (seam carving: veja
- Algoritmo de Dijkstra
- Caminhos mais curtos em DAGs; caminhos mais longos em DAGs. Aplicações
- Tries. Tries R-árias. Ternary search tries (TSTs)
Junho
- (Aula postergada/cancelada; professor teve um compromisso na FAPESP)
- Ternary search tries (TSTs; cont.). Operações baseadas em caracteres
- http://epubs.siam.org/doi/abs/10.1137/0206024 Busca de padrões. O algoritmo de Knuth, Morris e Pratt. Para a versão completa de Knuth–Morris–Pratt, veja Seção 3 de
- O algoritmo de Boyer e Moore e o algoritmo de Rabin e Karp
- Expressões regulares e autômatos não-determinísticos (NFAs). Simulação de NFAs
- Simulação de NFAs (cont.). Construção de uma NFA equivalente dada uma expressão regular. Aplicações de expressões regulares
- https://docs.oracle.com/javase/tutorial/essential/regex. O pumping lemma. Compressão de dados (introdução) Aplicações de expressões regulares (cont.). Veja
- Aula cancelada
- grade do BCC (transparêcias que podem ser úteis) Compressão de dados. Algoritmo de Huffman. Disciplinas de interesse do BCC. A
Página principal de CCM128, 1o. semestre de 2016