MC202GH - Estruturas de Dados - 2s2017
- Prof: Rafael C. S. Schouery
- rafael@ic.unicamp.br
- Sala 74 - Instituto de Computação
- Aulas teóricas: terças-feiras e quintas-feiras às 16:00
- Aulas práticas: quartas-feiras às 16:00
- Monitorias:
- quartas-feiras das 18:00 às 18:50 na sala SI10 (apenas PAD)
- quintas-feiras das 13:00 às 13:50 na sala SI05
Notas
Material de Aula
Unidade 24 - Escolhendo uma ED (30/11)
Unidade 23 - Backtracking (28/11)
Unidade 22 - Grafos (algoritmos) (23/11)
- Slides
- Video
- Leituras recomendadas
- Seções 19.1 a 19.6, 21.1 e 21.2 de “Algorithms in C - Part 5 - Third Edition” - R. Sedgewick
- Capítulo 14 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Seções 22.4 e 24.3 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 21 - Grafos (percurso) (21/11)
- Slides
- Video
- Leituras recomendadas
- Capítulo 18 de “Algorithms in C - Part 5 - Third Edition” - R. Sedgewick
- Seção 5.8 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Seções 22.2 e 22.3 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 20 - Grafos (representação) (16/11)
- Slides
- Vídeo
- Leituras recomendadas
- Capítulo 17 de “Algorithms in C - Part 5 - Third Edition” - R. Sedgewick
- Seção 3.7 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Seção 22.1 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Aula de Exercício (14/11)
Unidade 19 - Hashing (09/11)
- Slides
- Vídeo
- Leituras recomendadas
- Capítulo 14 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 11 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 18 - Árvores B (07/11)
- Slides
- Vídeo
- Leituras recomendadas
- Capítulo 18 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 17 - Árvores Rubro-Negras (31/10)
Unidade 16 - Árvores Binárias de Busca (26/10)
- Slides
- Vídeo
- Leituras recomendadas
- Capítulo 12 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 12 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 15 - Árvores Binárias (24/10)
- Slides
- Vídeo
- Leituras recomendadas
- Capítulo 12 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 12 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Aula de Exercício (10/10)
Unidade 14 - Radixsort (05/10)
- Slides
- Vídeo
- Visualgo - Ordenação
- Visualgo - Manipulação de bits
- Leituras recomendadas
- Capítulo 10 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 8 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 13 - Filas de Prioridade e Heapsort (03/10)
- Slides
- Vídeo
- Visualgo - Heap binário
- Leituras recomendadas
- Capítulo 9 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 6 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 12 - Quicksort (28/09)
- Slides
- Vídeo
- Visualgo - Ordenação
- Leituras recomendadas
- Capítulo 7 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 7 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 11 - Mergesort (26/09)
- Slides
- Vídeo
- Visualgo - Ordenação
- Leituras recomendadas
- Capítulo 8 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Seção 2.3 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 10 - Ordenação (21/09)
- Slides
- Vídeo
- Visualgo - Ordenação
- Leituras recomendadas
- Capítulo 6 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 2 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Aula de Exercício (19/09)
Unidade 9 - Aplicações de Pilha (14/09)
- Slides
- Vídeo
- Leituras recomendadas
- Seções 4.1 a 4.4 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Seção 10.1 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 8 - Pilha e Fila (12/09)
- Slides
- Vídeo
- Leituras recomendadas
- Seções 4.1 a 4.6 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Seção 10.1 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 7 - Variações de Listas Ligadas - Parte 2 (04/09)
- Slides
- Vídeo
- Leituras recomendadas
- Seção 3.4 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
Unidade 7 - Variações de Listas Ligadas - Parte 1(29/08)
- Slides
- Vídeo
- Leituras recomendadas
- Seção 3.4 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
Unidade 6 - Listas Ligadas (29/08)
- Slides
- Vídeo
- Visualgo - Lista Ligada
- Leituras recomendadas
- Seção 3.3 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Seção 10.2 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 5 - Vetores (24/08)
- Slides
- Vídeo
- Leituras recomendadas
- Seção 3.2 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Avançado: Capítulo 17 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 4 - Noções de Eficiência de Algoritmos (22/08)
- Slides
- Vídeo
- Leituras recomendadas
- Capítulo 2 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulos 1 e 2 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
- Avançado: Capítulo 3 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 3 - Tipos Abstratos de Dados (17/08)
- Slides
- Vídeo
- Leituras recomendadas
- Capítulo 4 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Wikipedia - Abstract Data Type
Laboratório - aula 2
Unidade 2 - Ponteiros e Structs (15/08)
- Slides
- Vídeo
- Leituras recomendadas
- Slides das Aulas 18, 19 e 20 de MC102
- Endereços e ponteiros
- Slides da Aula 21 de MC102
- Registros e structs
- C Programming Pointers
- C Programming Pointers and Arrays
- C Call by Reference: Using pointers [With Examples]
- C Dynamic Memory Allocation
Unidade 1 - Recursão (10/08)
- Slides
- Vídeo
- Leituras recomendadas
- Slides das Aulas 27 e 28 de MC102
- Recursão e algoritmos recursivos
- Wikipedia - Recursion
- Wikipedia - Recursion (computer science)
Laboratório - aula 1
- Slides
- Vídeo
- Máquina Virtual Linux
- Lista de softwares úteis instalados na máquina virtual
- Editor de texto Atom com os plugins
- linter 2.2.0
- linter-gcc 0.7.1
- gcc e gdb
- valgrind
- Editor de texto Atom com os plugins
Unidade 0 - Sobre a Disciplina (08/08)
- Slides
- Vídeo
- Avaliação Diagnóstica
- Leituras recomendadas
Informações
- Página da disciplina no SuSy
- Máquina Virtual Linux
- Plano de Desenvolvimento da Disciplina
- Lista de discussão da disciplina
- Materiais para revisão de MC102
- Monitores
- Caio Fernandes (PAD)
- Yulle Glebbyo Felipe Borges (PED)
Links Úteis
- Tutorial de Valgrind
- Passando o teste do Susy no seu computador
- Visualgo - Animações de algoritmos e estruturas de dados
- Curso Algorithms do KhanAcademy
Calendário
- Início: 08/08 (terça-feira)
- Não haverá aula nos dias 01 e 03/08 por causa do SECOMP
- Exame: 12/12/2017 (terça-feira)
- Não haverá aula no dia 07/09 - feriado
- Não haverá aula no dia 12/10 - feriado
- Não haverá aula no dia 17/10 - avaliação de curso
- Não haverá aula no dia 19/10 - congresso de iniciação científica
- Não haverá aula no dia 02/11 - feriado
- Não haverá aula no dia 15/11 - feriado
Bibliografia
A bibliografia principal para o curso é o livro “Algorithms in C - Third Edition” de R. Sedgewick. Outro livro interessante é “Introduction to Algorithms - Third Edition” de Cormen, Leiserson, Rivest e Stein. Outros livros podem ser encontrados no Plano de Desenvolvimento da Disciplina.