Programa

Propaganda
PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL
FACULDADE DE INFORMÁTICA
DEPARTAMENTO: Fundamentos da Computação
CURSO: Bacharelado em Ciência da Computação
DISCIPLINA: Tópicos Especiais em Teoria da Computação I
CÓDIGO: 46192
CRÉDITOS: 04
CARGA HORÁRIA: 60 horas-aula
VALIDADE: a partir de 2005/I
OBJETIVOS: O cumprimento da disciplina busca dar ao aluno, ao final do semestre,
condições de:
1.
Reconhecer situações típicas em que métodos de ordenação em tempo linear podem ser
usados e como implementá-los;
2.
Descrever, projetar, implementar e analisar estruturas de dados para conjuntos ordenados e
saber quando utilizá-las;
3.
Descrever, projetar, implementar e analisar estruturas de dados para filas com prioridades
(priority queues) e saber quando utilizá-las;
4.
Reconhecer situações em que o método de programação dinâmica pode ser usado para
eficiente implementação de um algoritmo para um dado problema, e ser capaz de empregálo corretamente.
EMENTA:
Tópicos atuais sobre a matéria da disciplina eletiva.
Nº DA UNIDADE: 01
CONTEÚDO: Revisão de conceitos de Análise de Complexidade de Algoritmos
1.1 Notações ,  e  para análise assintótica da complexidade de tempo
1.2 Análise do pior caso, melhor caso e análise do caso médio de um algoritmo
1.3 Análise de algoritmos versus análise de problemas
1.4 Técnicas básicas de análise de algoritmos iterativos
Emitido em: 27/06/17 - 17:59
Página 1 de 3
Carimbo e Assinatura da Unidade:
Nº DA UNIDADE: 02
CONTEÚDO: Revisão de conceitos de programação recursiva
2.1 Recursão linear e recursão divide-and-conquer
2.2 Análise de complexidade de algoritmos recursivos divide-and-conquer
Nº DA UNIDADE: 03
CONTEÚDO: Algoritmos de ordenação em tempo linear
3.1 Métodos de ordenação tradicionais por comparação
3.1.1 Caso: Mergesort
3.1.2 Limite inferior para complexidade de algoritmos de ordenação por comparação
3.2 Por que podem existir algoritmos mais eficientes do que os algoritmos por comparação
3.2.1 Explorando características peculiares ao universo do conjunto de dados
3.3 Algoritmos de ordenação em tempo linear:
3.3.1 Counting sort
3.3.2 Radix sort
3.3.3 Bucket sort
Nº DA UNIDADE: 04
CONTEÚDO: Priority queues e Heaps
4.1. Caracterização do tipo abstrato de dado para priority queue
4.2. Implementação de priority queues usando heaps
4.2.1 Heaps e Heapsort
4.2.2 Implementação da priority queue sobre uma heap
4.2.3 Análise da complexidade das operações
Nº DA UNIDADE: 05
CONTEÚDO: Representação de conjuntos ordenados
5.1 Caracterização do tipo abstrato de dado para conjunto ordenado
5.2 Formas triviais de representação de conjuntos e análise da complexidade das operações
5.3 Árvores binárias de pesquisa (BST)
5.3.1 Árvores Binárias e BST
5.3.2 Implementação de BST
5.3.3 Análise da complexidade no melhor e pior caso
5.3.4 O problema do balanceamento
5.4 Árvores Red-Black
5.4.1 Propriedades
5.4.2 Rotações
5.4.3 Inserção e remoção
Emitido em: 27/06/17 - 17:59
Página 2 de 3
Carimbo e Assinatura da Unidade:
5.4.4 Análise da complexidade das operações
5.5 Adequação da representação de conjuntos para propósitos específicos
5.6 Outros métodos para representação de árvores balanceadas: árvores AVL, splay trees
Nº DA UNIDADE: 06
CONTEÚDO: Programação Dinâmica
6.1 Introdução:
6.1.1 Algoritmos recursivos de tempo exponencial;
6.1.2 Contagem do número de sub-problemas envolvidos;
6.1.3 Algoritmos exponeciais que computam número polinomial de sub-problemas
múltiplas vezes
6.2 Exemplo de uso de programação dinâmica
6.3 Elementos e características da programação dinâmica
6.4 Estudo de casos
6.5 Memoization
BIBLIOGRAFIA:

BÁSICA:
1. CORMEN, T. H.; LEISERSON, E. C.; RIVEST, R. L.; “Introduction to Algorithms”:. McGraw Hill Book co., The MIT Electrical Engineering and Computer Science Series,
Cambridge,1990.

COMPLEMENTAR:
1. BAASE, S.: “Computer algorithms: introduction to desing and analysis.” Addison-Wesley,
Reading, 1993.
2. BRASSARD, G.; BRATLEY, P.
Englewood Cliffs, 1996.
3. MANBER, U.:
Reading, 1989.
“Fundamentals of algorithms.”
Prentice-Hall,
“Introduction to algorithms – a creative approach.” Addison-Wesley,
4. MAURER, S.; RALSTON, A.; “Discrete algorithmic mathematics.” Addison-Wesley,
Reading, 1991.
Emitido em: 27/06/17 - 17:59
Página 3 de 3
Carimbo e Assinatura da Unidade:
Download