2023 Q2

CCM-001 - Análise de Algoritmos e Estruturas de Dados (Pós)

Professora: Carla Negri Lintzmayer, carla.negri@ufabc.edu.br

piadinha


🚨 Avisos importantes (fique atento sempre!)

[5/out] 🔥🔥🔥🔥🔥 As notas finais, pós-rec, estão disponíveis na planilha. Cheque seu e-mail para mais informações!

[20/set] ATENÇÃO!! A prova de recuperação acontecerá na sala S-212-0.
[25/ago] Avisos (semi-)finais:

[18/ago] Haverá atendimento extra, do monitor da disciplina, na segunda-feira, dia 21/08, na sala de aula (302-2), das 17h às 19h.
[4/ago] Há um exemplo extra de programação dinâmica disponível no cronograma!!
[4/ago] Haverá um atendimento extra das 18h às 19h no dia 16 de agosto, na sala da professora.
[1/ago] Como não haverá aula nem atendimento no dia 9/ago, haverá um atendimento extra no dia 11/ago, antes da aula: a partir das 14h30, na sala da professora.
[21/jul] O atendimento feito antes da aula da próxima quarta, dia 26/jul, será, excepcionalmente, cancelado. Para compensar, farei atendimento após a aula, das 18h às 20h no mesmo dia.
[19/jul] Aos alunos que requisitaram sub da P1 (por e-mail): verifiquem seus e-mails.
[19/jul] As notas da terceira entrega de exercícios está disponível na seção de notas.
[10/jul] As notas da prova 1 estão disponíveis na seção de notas. A vista das provas poderá ser feita em qualquer horário de atendimento.
[5/jul] As notas das listas de exercícios foram atualizadas com as notas da segunda entrega.
[23/jun] As notas das listas de exercícios estão disponíveis na seção de notas. As listas serão/foram entregues na aula de hoje. Não se esqueça de pedir ajuda sobre o que errou!
[21/jun] A segunda entrega de exercícios, prevista para o dia 23/jun, pode também ser entregue no dia 28/jun, entre as 16h e as 16h30, na sala 518-2, para o professor Maycon Sambinelli.
[21/jun] No dia 1/jul, dia da reposição, haverá atendimento entre 9h e 10h e entre 12h e 13h, na própria sala da aula (S-212-0).
[21/jun] Nos dias 28/jun e 30/jun não haverá atendimento da professora.
[21/jun] As listas corrigidas serão devolvidas aos alunos, para que possam aprender com os problemas. Até o final do quadrimestre, devem ser devolvidas à professora, pois são itens de avaliação.
[21/jun] Atenção! Modifiquei algumas coisas na parte de entregas das listas de exercícios. Confira!
[13/jun] Atenção! As entregas das listas que valem nota devem ser feitas durante os horários das aulas!
[7/jun] As datas de entrega das listas foram modificadas (adiadas).
[2/jun] Os horários de atendimento foram definidos.
[2/jun] Um exercício novo (4(c)) foi inserido na lista de entrega dos exercícios da lista 1.
[24/mai] Verifique a seção Recomendação!!!
[24/mai] Responda a esse formulário antes das aulas começarem para podermos definir os melhores horários de atendimento extra-classe.
[24/mai] Site no ar. Estude-o como se o seu conteúdo fosse ser cobrado em avaliação.


📝 Dias, horários e locais das aulas

Quartas-feiras, das 16h às 18h, na sala S-302-2.

Sextas-feiras, das 16h às 18h, na sala S-302-2.



🙋 Dias, horários e locais dos atendimentos

Quartas-feiras, das 14h30 às 15h45, na sala 508-2.

Sextas-feiras, das 18h15 às 19h30, na sala 508-2.

Nestes dias/horários, basta aparecer na minha sala!



🧐 Ementa da disciplina

CCM-001 - Análise de Algoritmos e Estruturas de Dados

Objetivos:



🖖 Recomendação

Para facilitar o acompanhamento do curso, é recomendado que você possua:

Dê uma olhada na lista 0 de exercícios e veja se está confortável com aquele conteúdo (ao menos já viu antes).

Preparei também esse material de 🔥revisão🔥 que contém tudo que precisamos na disciplina. Também tenho vídeos com definição e exemplos de indução.


⚠ Revise, no mínimo, indução e recursão antes das aulas começarem!!!⚠
Veja a lista 0 de exercícios!


Outros materiais de apoio:



📚 Bibliografia e outros materiais

  1. [LM] Lintzmayer, C. N.; Mota, G. O.. Notas de aulas - Análise de algoritmos e estruturas de dados (o conteúdo dessa disciplina está completo no livro, mas sempre existem pequenas atualizações - verifique sempre sua versão).
  2. [CLRS2] Cormen, T. H.; Leiserson, C. E.; Rivest, R. L.; Stein, C.. Introduction to Algorithms. 2nd ed. MIT Press. 2002.
  3. [CLRS3] Cormen, T. H.; Leiserson, C. E.; Rivest, R. L.; Stein, C.. Introduction to Algorithms. 3rd ed. MIT Press. 2009.
  4. [R] Vídeo aulas do prof. Tim Roughgarden, de Stanford, em inglês (com legendas): parte 1 e parte 2.


📆 Cronograma



ATENÇÃO! O conteúdo exato e materiais de apoio de cada aula são atualizados durante o quadrimestre.
As aulas que já foram ministradas estão coloridas.


Aula 1 - 31/mai
Aula 2 - 2/jun
  • Conteúdo: Introdução à análise de algoritmos. Corretude de algoritmos (iterativos).
  • Referências: Cap. 2 e 3 [LM], Cap. 1 e 2 [CLRS2].
Aula 3 - 7/jun
  • Conteúdo: Finalização da corretude da busca binária. Tempo de execução. Notação assintótica.
  • Referências: Cap. 4 e 5 [LM], Cap. 3 [CLRS2].
9/jun (Feriado Corpus Christi)
  • Reposição em 22/ago (terça-feira).
Aula 4 - 14/jun
Aula 5 - 16/jun
  • Conteúdo: Recursão. Corretude e tempo de execução em algoritmos recursivos. Recorrências.
  • Referências: Cap. 7 e 8 (intro) [LM], Cap. 2.3, 4 (intro) [CLRS2],
Aula 6 - 21/jun
Aula 7 - 23/jun
Aula 8 - 28/jun - Sem aula presencial e sem atendimento!
  • Conteúdo: Solução de recorrências: substituição e iteração.
  • Referências: Cap. 8.1 e 8.2 [LM], Cap. 4 [CLRS2].
  • Vídeos para apoio a esse conteúdo (tempo total = 63min):
Aula 9 - 30/jun - Sem aula presencial e sem atendimento!
  • Conteúdo: Solução de recorrências: árvore de recursão e método Mestre.
  • Referências: Cap. 8.3 e 8.4 [LM], Cap. 4 [CLRS2].
  • Vídeos para apoio a esse conteúdo (tempo total = 51min):
  • Extra!! Demonstração do Teorema Mestre:
Reposição - 1/jul (sábado) - 10h às 12h
  • Conteúdo: Aulas 8 e 9.
  • Sala: S-212-0.
  • Haverá atendimento entre 9h e 10h e entre 12h e 13h, na mesma sala.
Aula 10 - 5/jul
  • Conteúdo: Término de heap e Heapsort. Fim de ordenação. Revisão e dúvidas para prova.
Aula 11 - 7/jul
  • Prova 1
  • Atenção! Não haverá monitoria neste dia!
Aula 12 - 12/jul
  • Conteúdo: Introdução a grafos (grafos, digrafos, Teorema do Aperto de Mãos, subgrafos, passeios/caminhos, conexidade e distância). Introdução à análise de algoritmos em grafos (representação em listas e matriz de adjacências e cálculo do grau).
  • Referências: Cap. 23 (até seção 23.8) [LM], Cap. 22 [CLRS2].
  • Material complementar: texto completo da aula, implementações.
Aula 13 - 14/jul
Aula 14 - 19/jul
  • Conteúdo: Busca em profundidade. Aplicações das buscas. Busca em digrafos.
  • Referências: Seções 24.2, 24.3, 24.4 e 24.5 [LM], Seção 22.3 [CLRS2].
  • Extra: execução DFS.
Aula 15 - 21/jul
  • Conteúdo: Introdução a algoritmos gulosos. Escalonamento de tarefas compatíveis.
  • Referências: intro 21, 21.1 [LM].
Aula 16 - 26/jul
  • Conteúdo: Mochila fracionária. Árvore geradora mínima.
  • Referências: Seção 21.2 e intro 25 [LM], Cap. 23 [CLRS2].
Aula 17 - 28/jul
Aula 18 - 2/ago
  • Conteúdo: Kruskal com Union-Find. Introdução à Programação Dinâmica. Mochila inteira.
  • Referências: Seção 25.1, intro Cap. 22, Seção 22.3 [LM], Cap. 15 [CLRS3].
  • Extra: execução Mochila com código.
Aula 19 - 4/ago
9/ago - SEM AULA
  • Conforme já previsto desde o início do quadrimestre.
  • Também não haverá atendimento nesse dia, e haverá atendimento a partir das 14h30 do dia 11/ago na sala da professora.
  • Exemplo extra de programação dinâmica: problema do Corte de Barra de Ferro.
Aula 20 - 11/ago
Aula 21 - 16/ago
Aula 22 - 18/ago
  • Revisão e dúvidas para prova.
Aula 23 - 22/ago (⚠ Em uma terça-feira, às 16h, por ser reposição - na mesma sala!)
  • Prova 2
  • Atenção! Não haverá monitoria neste dia!
Aula 24 - RECUPERAÇÃO - 23/set (quadrimestre seguinte)
  • Prova de recuperação para os alunos que ficaram com conceito F ** E QUE ** enviarem e-mail indicando interesse em realizá-la.
  • Das 10h às 12h na sala S-2012-0.


👎 Plágio



🏋 Listas de exercícios



🎓 Critérios de avaliação



💯 Notas

Confira aqui as notas das listas de exercícios!

Confira aqui as notas de todas as atividades.

Lembre-se sempre que a intenção das listas de exercício é reforçar seu aprendizado.
Não deixe de procurar atendimento para entender o motivo de ter errado algum exercício!



💪 Mecanismo de recuperação



🤒 Mecanismos de avaliação substitutivos




Carla Negri Lintzmayer - carla.negri@ufabc.edu.br