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
- Divulgado resultado final (16/08/2011 - 02:20)
- Divulgado notas finais (16/08/2011 - 02:15)
- Divulgado notas da 2a. Lista de Exercícios (16/08/2011 - 02:10)
- Disponível Lista de Exercícios 2 (20/07/2011 - 13:00)
- Divulgado notas parciais faltando apenas 1,0 ponto da LE2 (17/07/2011 - 02:30)
- Divulgado notas do Trabalho Prático 1 (20/07/2011 - 11:30)
- Divulgado notas dos Seminários (17/07/2011 - 02:10)
- Divulgado controle de frequência da disciplna (17/07/2011 - 02:10)
- Divulgado notas do 2o. Teste (17/07/2011 - 02:10)
- Alterado o prazo para entrega de proposta de Seminários para as 23:55 de 08/06/2011 (02/06/2011 -
12:08)
- Corrigido link para lista de resumos de propostas (29/05/2011 - 12:30)
- Divulgado lista de resumos de propostas de temas de Seminários (26/05/2011 - 22:10)
- Reorganizado o cronograma tentativo e as atividades da disciplina (26/05/2011 - 15:30)
- Trabalho Prático 2 eliminado (25/05/2011 - 12:00)
- Divulgado notas do 1o. Teste (23/05/2011 - 16:00)
- Divulgado notas da 1a. Lista de Exercícios (16/05/2011 - 15:00)
- Disponível especificação dos Seminários - Seção 11 desta página (27/04/2011 - 18:30)
- Disponível Trabalho Prático 1 - Paradigmas de Projeto de Algoritmos (19/04/2011 - 17:00)
- Divulgado notas do Trabalho Prático 0 (08/04/2011 - 23:30)
- Correção na Lista de Exercícios 1 - último item da questão 28 (Misterio) pertence de fato a questão 29
(29/03/2011 - 15:41)
- Disponível Lista de Exercícios 1 (23/03/2011 - 23:52)
- Divulgado o cronograma tentativo para a disciplina (04/03/2011 - 21:30)
- Disponível Trabalho Prático 0 - Warm up (03/03/2011 - 20:30)
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
- Turma 21 - Sala 21 (Instituto de Ciências Exatas e Biológicas III - ICEB-III)
- Turma 22 - Sala 21 (Instituto de Ciências Exatas e Biológicas III - ICEB-III)
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
- Análise de complexidade de algoritmos.
- Paradigmas de projeto de algoritmos.
- Problemas NP-Completo.
- Tópicos: algoritmos em grafos.
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:
- (0,6 pontos) Elaboração da proposta de tema de Seminários - data de entrega: 08/06/2011
- (1,5 pontos) Elaboração de artigo sobre o tema desenvolvido - data de entrega: dois dias antes da
apresentação oral, as 23:55
- (0,9 pontos) Apresentação oral do trabalho realizado - data de realização: a partir de 05/07/2011
Abaixo cada uma dessas etapas são detalhadas.
11.1 Proposta de Tema para Seminários
- A proposta de tema para Seminários deverá ser elaborada mandatoriamente em LATEX
- Um modelo é fornecido e a sua formatação deve ser obedecida - fonte Times New Roman com 10 pontos
- A proposta deve conter exatamente duas páginas e deve ser submetida ao moodle até as 23:55 do dia
06/06/2011.
- Esta proposta deverá conter:
- Introdução: Nesta seção o aluno deverá localizar o leitor sobre o tema que deseja desenvolver,
esclarecer o assunto que será estudado, delimitar o foco da pesquisa, e situar o tema dentro do
contexto geral de sua área de trabalho.
- Justificativa e relevância: Consiste na apresentação, de forma clara, objetiva e detalhada, das razões
de ordem teórica ou prática que justificam a realização da pesquisa ou o tema proposto para
avaliação inicial. A justificativa deve indicar a relevância e as contribuições do trabalho.
- Objetivos gerais e específicos: Aqui o aluno deverá descrever o objetivo concreto da pesquisa que
irá desenvolver: o que se vai procurar atingir ou buscar com esse trabalho. Nos objetivos da pesquisa
cabe identificar claramente o problema e apresentar sua delimitação.
- Metodologia: detalhar como o trabalho será desenvolvido, explicar as etapas e procedimentos que
devem ser realizados para alcançar os objetivos do trabalho.
- Resultados esperados: descrever quais os resultados que são esperados com a realização dessa
pesquisa.
- Referências Bibliográficas: Como é um trabalho científico, as referências bibliográficas usadas
para fundamentar argumentos e referenciar o estado da arte do problema devem ser citadas e
apresentadas.
- O nome do arquivo em formato PDF da proposta de tema de Seminários a ser submetido ao moodle deve ser
formatado obrigatoriamente da seguinte forma: PCC104-111-pts-99.9-XXXXX.pdf, onde 99.9 e XXXXX
indicam o ano.semestre de ingresso e o nome completo do aluno, respetivamente. Por exemplo, o aluno com
nome Tibúrcio da Silva e com ingresso no curso no primeiro semestre de 2011 deve ter seu arquivo nomeado
como PCC104-111-pts-11.1-TiburcioDaSilva.pdf.
- Caso você ainda não tenha definido um tema para seu Seminário, uma lista de resumos de propostas foi
formulada pelos professores do programa. Então, procure contactá-los.
11.2 Artigo dos Seminários
- O artigo sobre o de tema trabalhado também deverá ser elaborado mandatoriamente em LATEX
- Um modelo é fornecido e a sua formatação deve ser obedecida - fonte Times New Roman com 10 pontos
- O artigo deve conter no mínimo quatro e no máximo oito páginas, e deve ser sub submetido via moodle
até as 23:55 dois dias antes da apresentação.
- No modelo, uma estrutura para o artigo é proposta. Todavia, essa estrutura pode ser alterada de acordo
com a sua necessidade.
- O nome do arquivo em formato PDF do artigo a ser submetido ao moodle deve ser formatado
obrigatoriamente da seguinte forma: PCC104-111-ars-99.9-XXXXX.pdf, onde 99.9 e XXXXX indicam
o ano.semestre de ingresso e o nome completo do aluno, respetivamente. Por exemplo, o aluno com nome
Tibúrcio da Silva e com ingresso no curso no primeiro semestre de 2011 deve ter seu arquivo nomeado
como PCC104-111-ars-11.1-TiburcioDaSilva.pdf.
11.3 Apresentação dos Seminários
- Deverá ser preparada uma apresentação sobre os Seminários de 15 minutos (± 2 minutos)
- Poderão ser utilizados para realizar a apresentação: transparências e slides, quadro branco/negro e
recursos multimídia.
- Um único arquivo compactado contendo a apresentação deverá ser entregue via moodle até as 23:55 do
dia anterior a apresentação.
- O professor responsável pela disciplina poderá arguir cada apresentação por até 5 minutos.
- A apresentação dos Seminários começará às 10:10 do dia agendado.
- A ordem de apresentação dos Seminários será definida pela nota (após a entrega das notas do trabalho
prático 1 e do primeiro teste) decrescente dos alunos. Ou seja, o aluno com maior nota será o primeiro a
apresentar os Seminários.
- O nome do arquivo compactado da apresentação a ser submetido ao moodle deve ser formatado
obrigatoriamente da seguinte forma: pCC104-111-aps-99.9-XXXXX.pdf, onde 99.9 e XXXXX indicam
o ano.semestre de ingresso no curso e o nome completo do aluno, respetivamente. Por exemplo, o
aluno com nome Tibúrcio da Silva e ano.semestre de ingresso 11.1 deve ter seu arquivo nomeado como
PCC104-111-aps-11.1-TiburcioDaSilva.zip.
11.4 Material Complementar
- Todo o código fonte gerado pelas implementações e base de dados utilizadas deverão ser submetidos ao
moodle como um único arquivo compactado.
- Caso a base de dados seja muito grande para ser submetida, uma amostra da base deverá submetida
respeitando-se o limite de tamanho de arquivo.
- O nome do arquivo compactado a ser submetido deve ser formatado obrigatoriamente da seguinte
forma: PCC104-111-mc-99.9-XXXXX.pdf, onde 99.9 e XXXXX indicam o ano.semestre de
ingresso no curso e o nome completo do aluno, respetivamente. Por exemplo, o aluno com
nome Tibúrcio da Silva e ano.semestre de ingresso 11.1 deve ter seu arquivo nomeado como
PCC104-111-mc-11.1-TiburcioDaSilva.zip.
11.5 Apresentações Agendadas
12 Listas de exercícios (BCC201 - Introdução à Programação)
13 Listas de exercícios (BCC202 - Estruturas de Dados I)
14 Recursos