Disciplina: SIN5013 - Análise de Algoritmos e Estruturas de Dados
1º Semestre de 2022

Prof. Dr. Luciano Antonio Digiampietri

Programação Preliminar da Disciplina - aulas online e provas presenciais

As aulas online ocorrerão no seguinte link: meet.google.com/wpj-xzdw-rrs

[04/04/2022] Apresentação da Disciplina: [pdf]
[04/04/2022] Teste de conhecimento - exemplo de prova: [pdf], gabarito: [pdf]

[11/04/2022] Não haverá aula (Semana Santa)

[18/04/2022] Análise de Algoritmos [pdf] e Complexidade Assintótica [pdf]
        Exemplos de demonstrações de complexidades [pdf]
        Discussão sobre o exercício do final da aula [pdf]
        Complexidade Assíntótica - exercícios de demonstração [pdf]

[25/04/2022] Indução - Parte I [pdf] e Indução - Parte II [pdf].
        Programa Gráfico Torres de Hanoi [exe]
        Guia passo a passo para resolução de equações de recorrência [pdf]
        Equações e operações matemáticas básicas, necessárias para a resolução de equações de recorrência.
        Exercícios sobre resolução de equações de recorrência.
        Exemplos de códigos e algumas figuras sobre recursão.
        Exercícios resolvidos
        Resolução do exercício 06
        Resolução do exercício 09

[02/05/2022] Divisão e Conquista [pdf] e Algoritmos Ordenação (parte 1) [pdf]
        Implementações Iterativas e Recursivas (Divisão e Conquista) [pdf]
        Teorema Mestre - exercícios (com resposta final) [pdf]
        Implementações Iterativas e Recursivas (Ordenadores) [pdf]
        Teorema Mestre [pdf]

[09/05/2022] Algoritmos de Ordenação (parte 2):
        Mergesort [pdf]
        Quicksort [pdf]
        Heapsort [pdf] Códigos Ordenção [pdf]
        Implementações e Discussão (Ordenadores II) [pdf]
                vídeo comparando o desempenho de vários algoritmos de ordenação [clique aqui]

[16/05/2022]
Cota Inferior [pdf], exemplos e discussão [pdf]
Ordenação em Tempo Linear - Counting Sort [pdf]
Ordenação em Tempo Linear - Radix Sort [pdf]
        Ordenação em Tempo Linear (material alternativo)[pdf]
        Código fonte de alguns algoritmos de ordenação em Java [zip]


[23/05/2022] Prova 1 (sala 236 do I1 [Titanic]) - observação: no dia da prova e nos três dias anteriores não serão esclarecidas dúvidas sobre o conteúdo da prova
        Divulgação das notas da prova até o dia 29/05/2022 (no site da disciplina)
        Apresentação do gabarito da prova 30/05/2022 (durante a aula)
        Esclarecimento presencial de dúvidas sobre a correção da prova 02/06/2022 (das 18:00h às 19:00h na sala do professor [110P do A1])

[30/05/2022] Tentativa e Erro. Algoritmos gulosos.
        Tentativa e Erro [pdf] - exemplos [pdf] - pseudo código [pdf]
        Tentativa e Erro - exercícios [pdf]
        Algoritmos gulosos [pdf] - contra exemplos [pdf]
        Algoritmos gulosos (material alternativo) [pdf]


[06/06/2022] Lista, Fila, Pilha [pdf] [slides] [códigos]
        Estruturas Lineares (videoaulas) [ v04 v06 v07 v09 v11 v12 ]
        Estruturas Lineares (slides usados em aula) [pdf]

[13/06/2022] Árvores Binárias e Árvores Binárias de Busca (mesmo material base da aula anterior)
        Árvores (videoaulas) [ v15 v16 v17 v18 e07a e07b e08a e08b ]
        Árvores (slides usados em aula) [pdf]

[20/06/2022] Árvores AVL [códigos]
        Árvores AVL (videoaulas) [v21 e09 e10 e11 e12 e13 e14]
        Árvores AVL (slides usados em aula) [pdf]
        Discussão geral sobre as estruturas apresentadas [e15] [pdf]


[27/06/2022] Grafos aula I - Conceitos Básicos (parte teórica - material extra) [pdf]
        Grafos (videoaulas) [ v24 v25 v26 v27 v28 ]
        Conceitos Básicos [pdf]
        Busca em Profunidade e em Largura [pdf]


[04/07/2022] Grafos aula II - alguns códigos/pseudocódigos [pdf]
        Algumas implementações (slides usados em aula) [pdf]
        Algoritmo de Dijkstra e algumas variações (slides usados em aula) [pdf]

[11/07/2022] Prova 2 (sala 236 do I1 [Titanic], das 15:00h às 17:00h) - observação: no dia da prova e nos três dias anteriores não serão esclarecidas dúvidas sobre o conteúdo da prova

[18/07/2022] Prova substitutiva (apenas para quem não fez uma das provas [e não reprovou por faltas]). (sala 236 do I1 [Titanic], das 15:00h às 17:00h) - observação: no dia da prova e nos três dias anteriores não serão esclarecidas dúvidas sobre o conteúdo da prova
        Divulgação das notas da prova 2: até o dia 19/07/2022 (no site da disciplina)
        Divulgação das notas da prova substitutiva: até o dia 24/07/2022 (no site da disciplina)
        Esclarecimento de dúvidas presencial sobre a correção da prova 2 e da substitutiva: 25/07/2022 das 14:00h às 16:00h na sala do professor [110P do A1]

[25/07/2022] Esclarecimento presencial de dúvidas sobre as notas/correção (das 14:00h às 16:00h - sala 110P do A1).

Todo o conteúdo do semestre poderá cair nas provas 2 e substitutiva. É necessário ter ao menos 75% de frequência para ser aprovado (além de obter conceito A, B ou C). Qualquer tentativa de cola implicará em reprovação na disciplina.



Exemplo de Prova - Estruturas Lineares e uso de memória
Exemplo de Prova - Árvores
Exemplo de Prova Substitutiva - SIN5013



Links Úteis

Disciplinas de Graduação:

Disciplina Introdução à Análise de Algoritmos ACH2002
Disciplina Algoritmos e Estruturas de Dados I ACH2023 - (playlist)

Videoaulas sobre Projeto e Análise de Algoritmos - UNIVESP
Videoaulas sobre Estruturas de Dados - UNIVESP

Videoaulas sobre Programação de Computadores (usando Java) - UNIVESP (disciplina bem introdutória, focada em alunos que ainda não dominam programação)
Videoaulas sobre Introdução à Programação (usando C) - USP (disciplina bem introdutória, focada em alunos que ainda não dominam programação)
Videoaulas sobre Matemática - UNIVESP (disciplina que apresenta alguns dos conceitos matemáticos utilizados na disciplina)

Videoaulas sobre Estruturas de Dados - UNICAMP