PCC104 - Projeto e Análise de Algoritmos

Universidade Federal de Ouro Preto
Instituto de Ciências Exatas e Biológicas
Departamento de Computação
Professor: David Menotti (menottid@gmail.br)

2011/1

1 Novidades

2 Dados gerais

Carga horária:

4 aulas teóricas (semanal) / 60 horas de aula (semestral) 72 horas-aula

3 Horário

Terça-feira e Quinta-feira das 10:20 as 12:00

4 Objetivos

Apresentar um conjunto de técnicas de projeto e de análise de algoritmos, com ênfase em estruturas de dados e nos algoritmos relacionados. A comparação de alternativas é sempre feita utilizando-se técnicas de análise de algoritmos. Ao final da disciplina o aluno deverá ser capaz de lidar com classes específicas de problemas e soluções eficientes para eles, dominando as principais técnicas utilizadas para projetar e analisar algoritmos e sabendo decidir o que pode e o que não pode ser resolvido eficientemente pelo computador

5 Ementa

6 Avaliação da aprendizagem

Dois testes teóricos 4 pontos
Um* trabalho prático 1 pontos
Duas listas de exercícios 2 pontos
Seminários 3 pontos
Exame especial não há!

7 Referências bibliográficas

Bibliografia básica

[1]   T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein. Introduction to Algorithms. The MIT Press, 3rd edition, 2009. ISBN-13: 978-0-262-53305-8.

[2]   M. J. Quin. Parallel Computing Theory and Practice. McGraw-Hill, 1994. ISBN-10: 0071138005.

[3]   E. Horowitz and S. Sahni. Fundamentals of Computer Algorithms. Computer Science Press, 1978. ISBN-10: 0716780453.

[4]   M. R. Garey and D. S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness W. H. Freeman and Co., 1979. ISBN-13: 978-0716710455

[5]   J. A. Bondy and U. S. R. Murty. Graph Theory With Applications Elsevier Science Ltd, 1976. ISBN-13: 978-0444194510

[6]   R. L. Graham and D. E. Knuth and O. Patashnik. Concrete Mathematics: A Foundation for Computer Science Addison-Wesley Professional, 2nd edition, 1994. ISBN-13: 978-0201558029

Bibliografia complementar

[1]   D. E. Knuth. The Art of Computer Programming. Addison-Wesley, 1998. ISBN-10: 0201485419.

[2]   R. Sedgewick. Algorithms. Addison-Wesley, 2 edition, 1988. ISBN-10: 0201066734.

[3]   N. Ziviani. Projeto de Algoritmos com Implementações em Java e C++. Cengage Learning, 2006. ISBN-10: 8522105251.

[4]   J. L. Gersting. Fundamentos Matemáticos para a Ciência da Computação. Editora LTC, 5 edition, 2004. ISBN-13: 978-85-21614227.

Bibliografia auxiliar

[1]   V. V. Mizrahi. Treinamento em Linguagem C: módulo 1. Makron Books, 2 edition, 2008. ISBN-13: 978-85-7605-191-6.

[2]   V. V. Mizrahi. Treinamento em Linguagem C: módulo 2. Makron Books, 2005. ISBN-13: 978-85-3461-423-7.

[3]   Paulo Feofiloff. Algoritmos em linguagem C. Editora Campus, 2009. ISBN-13: 978-85-352-3249-3.

[4]   H. Schildt. C Completo e Total. Pearson/Makron Books, 3 edition, 1997. ISBN-10: 8534605955.

8 Cronograma tentativo para 1o. semestre de 2011 (36 encontros)











Encontro

Turmas

Data

Dia da semana

Atividade











1

T21/T22

10/03/2010

Quinta-feira

Apresentação da Disciplina

2

T21/T22

15/03/2011

Terça-feira

Análise de Algoritmos [slides] (Introdução)

3

T21/T22

17/03/2011

Quinta-feira

Análise de Algoritmos [slides] - a partir do slide 38 (TAD’s)

4

T21/T22

22/03/2011

Terça-feira

Análise de Algoritmos [slides] - a partir do slide 55 (Medida de Custo)

5

T21/T22

24/03/2011

Quinta-feira

Análise de Algoritmos [slides] - a partir do slide 73 (Oráculo x Ordem de Complexidade)

6

T21/T22

29/03/2011

Terça-feira

Análise de Algoritmos [slides] - a partir do slide 108 (Técnicas de Análise de Algoritmos)

7

T21/T22

31/03/2011

Quinta-feira

Análise de Algoritmos [slides] - a partir do slide 135 (Algoritmos recursivos)

8

T21/T22

05/04/2011

Terça-feira

Análise de Algoritmos [slides] - a partir do slide 156 (Teorema Mestre)

9

T21/T22

07/04/2011

Quinta-feira

Análise de Algoritmos [slides] - a partir do slide 184 (Teorema Mestre)

Paradigmas de Projeto de Algoritmos [slides]

12/04/2011

Terça-feira

Ausência Professor

10

T21/T22

14/04/2011

Quinta-feira

Paradigmas de Projeto de Algoritmos [slides] - a partir do slide 19 (Indução Matemática e Algoritmos)

11

T21/T22

19/04/2011

Terça-feira

Paradigmas de Projeto de Algoritmos [slides] - a partir do slide 44 (Recursividade & BackTracking)

26/04/2011

Terça-feira

Ausência Professor

12

T21/T22

28/04/2011

Quinta-feira

Paradigmas de Projeto de Algoritmos [slides] - a partir do slide 71 (Divisão e Conquista)

13

T21/T22

03/05/2011

Terça-feira

Semana de Pós-Graduação (presença obrigatória)

14

T21/T22

05/05/2011

Quinta-feira

Semana de Pós-Graduação (presença obrigatória)

15

T21/T22

10/05/2011

Terça-feira

Paradigmas de Projeto de Algoritmos [slides] - a partir do slide 98 (Balanceamento x Programação Dinâmica)

16

T21/T22

12/05/2011

Quinta-feira

Paradigmas de Projeto de Algoritmos [slides] - a partir do slide 118 (Algoritmos Gulosos)

17

T21/T22

17/05/2011

Terça-feira

1o. Teste (2,0 pontos) - Análise de Complexidade de Algoritmos

18

T21/T22

19/05/2011

Quinta-feira

Paradigmas de Projeto de Algoritmos [slides / slides] (Algoritmos Aproximados - a partir dos slides 142/53)

19

T21/T22

24/05/2011

Terça-feira

Teoria dos Grafos [slides] (Definições I)

20

T21/T22

26/05/2011

Quinta-feira

Teoria dos Grafos [slides] - a partir do slide 44 (Definições II)

21

T21/T22

31/05/2011

Terça-feira

Teoria dos Grafos [slides] - a partir do slide 88 (Ciclo Euleriano)

22

T21/T22

02/06/2011

Quinta-feira

Teoria dos Grafos [slides] - a partir do slide 109 (Ciclo Hamiltoniano)

23

T21/T22

07/06/2011

Terça-feira

Teoria dos Grafos [slides] - a partir do slide 138 (Contando caminhos, Isomorfismo)

24

T21/T22

09/06/2011

Quinta-feira

Teoria dos Grafos [slides] - a partir do slide 169 (Busca em Largura)

25

T21/T22

14/06/2011

Terça-feira

Teoria dos Grafos [slides] - a partir do slide 185 (Busca em Profundidade)

26

T21/T22

16/06/2011

Quinta-feira

Teoria dos Grafos [slides] - a partir do slide 211 (Ordenação Topológica x Comp. Fortemente Conect.)

27

T21/T22

21/06/2011

Terça-feira

2o. Teste (2,0 pontos) - Paradigmas de Projeto de Algoritmos

28

T21/T22

28/06/2011

Terça-feira

Teoria da Complexidade - NP-Completo [slides]

29

T21/T22

30/06/2010

Quinta-feira

Teoria da Complexidade - NP-Completo [slides]

30

T21/T22

05/07/2011

Terça-feira

Seminários

31

T21/T22

07/07/2011

Quinta-feira

Seminários

32

T21/T22

12/07/2011

Terça-feira

Seminários

33

T21/T22

14/07/2011

Quinta-feira

Seminários






9 Trabalhos práticos

10 Listas de exercícios

11 Seminários

Os seminários da disciplina estão divididos em três etapas:

Abaixo cada uma dessas etapas são detalhadas.

11.1 Proposta de Tema para Seminários

11.2 Artigo dos Seminários

11.3 Apresentação dos Seminários

11.4 Material Complementar

11.5 Apresentações Agendadas

















Ano.Semestre NOME Data Horário
Arquivos








11.1 Marcelo 05/07/2011 10:10 proposta artigo apresentação material complementar
11.1 Pedro 05/07/2011 10:30 proposta artigo apresentação material complementar
11.1 Eduardo 05/07/2011 10:50 proposta artigo apresentação material complementar
11.1 Edward 05/07/2011 11:10 proposta artigo apresentação material complementar
11.1 Vantuil 05/07/2011 11:30 proposta artigo apresentação material complementar








11.1 Célio 07/07/2011 10:10 proposta artigo apresentação material complementar
11.1 Fabrício 07/07/2011 10:30 proposta artigo apresentação material complementar
11.1 Israel 07/07/2011 10:50 proposta artigo apresentação material complementar
11.1 Fabiano 07/07/2011 11:10 proposta artigo apresentação material complementar
11.1 Suelaine 07/07/2011 11:30 proposta artigo apresentação material complementar








11.1 Lucas 12/07/2011 10:10 proposta artigo apresentação material complementar
11.1 Maurício 12/07/2011 10:30 proposta artigo apresentação material complementar
11.1 Nelson 12/07/2011 10:50 proposta artigo apresentação material complementar
11.1 Theo 12/07/2011 11:10 proposta artigo apresentação material complementar
11.1 Antônio 12/07/2011 11:30 proposta artigo apresentação material complementar
11.1 Fernando 12/07/2011 11:50 proposta artigo apresentação material complementar








11.1 Leandro 14/07/2011 10:10 proposta artigo apresentação material complementar
11.1 Juliana 14/07/2011 10:30 proposta artigo apresentação material complementar
11.1 Thalisson 14/07/2011 10:50 proposta artigo apresentação material complementar
11.1 Ronan 14/07/2011 11:10 proposta artigo apresentação material complementar
11.1 Tiago 14/07/2011 11:30 proposta artigo apresentação material complementar
11.1 Rafael 14/07/2011 11:50 proposta artigo apresentação material complementar








12 Listas de exercícios (BCC201 - Introdução à Programação)

13 Listas de exercícios (BCC202 - Estruturas de Dados I)

14 Recursos