MC202E - Estruturas de Dados - 2s2019
- Prof: Rafael C. S. Schouery
- rafael@ic.unicamp.br
- Sala 74 - Instituto de Computação
- Aulas teóricas: Quartas e Quintas às 19h na IC353 (no IC3.5)
- Aulas práticas: Terças às 21h na IC300 (no IC3)
- Monitorias: Quintas e Sextas, às 18h na IC305 (no IC3)
- A partir de 24/10, as monitorias serão na sala IC300 (no IC3) alteração!
Informações e Links
- Planilha de Notas
- Máquina Virtual Linux
- Página da disciplina no SuSy
- Plano de Desenvolvimento da Disciplina
- Lista de discussão da disciplina (Inscreva-se o quanto antes)
- Envie dúvidas para os monitores apenas pelo email monitores-mc202@googlegroups.com
- Monitores:
- Guilherme Mendeleh Perrotta (PAD)
- Welverton Rodrigues da Silva (PED)
Material de Aula
Unidade 30 - Escolhendo uma ED (28/11)
Unidade 29 - Árvores B (27/11)
- Slides (handout)
- Vídeo
- Busying Oneself With B-Trees
- Material relacionado
- Capítulo 18 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 28 - Grafos (algoritmos) (21/11)
- Slides (handout)
- Vídeo
- Spinning Around In Cycles With Directed Acyclic Graphs
- Finding The Shortest Path, With A Little Help From Dijkstra
- Material relacionado
- 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 27 - Grafos (percurso) (14/11)
- Slides (handout)
- Vídeo
- Deep Dive Through A Graph: DFS Traversal
- Going Broad In A Graph: BFS Traversal
- Material relacionado
- 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 26 - Grafos (representação) (13/11)
- Slides (handout)
- Vídeo
- From Theory To Practice: Representing Graphs
- Material relacionado
- 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
Unidade 25 - Exercícios (07/11)
Unidade 24 - Hashing (06/11)
- Slides (handout)
- Vídeo
- Taking Hash Tables Off The Shelf
- Hashing Out Hash Functions
- Material relacionado
- 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 23 - Mergesort e Quicksort (31/10)
- Slides (handout)
- Vídeo
- Visualgo - Ordenação
- Making Sense of Merge Sort [Part 1]
- Making Sense of Merge Sort [Part 2]
- Pivoting To Understand Quicksort [Part 1]
- Pivoting To Understand Quicksort [Part 2]
- Algoritmos de Ordenação e Dança: atendendo a pedidos!
- Material relacionado
- 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
- 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 22 - Ordenação e Heapsort (30/10)
- Slides (handout)
- Visualgo - Ordenação
- Visualgo - Heap binário
- Learning to Love Heaps
- Sorting Out The Basics Behind Sorting Algorithms
- Exponentially Easy Selection Sort
- Bubbling Up With Bubble Sorts
- Inching Towards Insertion Sort
- Heapify All The Things With Heap Sort
- Algoritmos de Ordenação e Dança: atendendo a pedidos!
- Material relacionado
- Capítulo 6 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Capítulo 9 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
- Capítulo 6 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade 21 - Filas de Prioridade e Heap (24/10)
- Slides (handout)
- Vídeo
- Visualgo - Heap binário
- Learning to Love Heaps
- Material relacionado
- 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 20 - Exercícios (23/10)
Unidade 19 - Árvores Rubro-Negras (17/10)
- Slides (handout)
- Vídeo
- Painting Nodes Black With Red-Black Trees
- Material relacionado
- Capítulo 3 de “Algorithms - Fourth Edition” - R. Sedgewick
Unidade 18 - Árvores Binárias de Busca (16/10)
- Slides (handout)
- Leaf It Up To Binary Trees
- Vídeo
- Material relacionado
- 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 17 - Árvores Binárias (10/10)
- Slides (handout)
- Vídeo - Parte 1
- Vídeo - Parte 2
- How To Not Be Stumped By Trees
- Material relacionado
- 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 16 - Exercícios (09/10)
Unidade 15 - Aplicações de Pilha (03/10)
- Slides (handout)
- Vídeo
- Material relacionado
- 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 14 - Pilha e Fila (02/10)
- Slides (handout)
- Vídeo
- Stacks and Overflows
- To Queue Or Not To Queue
- Material relacionado
- 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 13 - Variações de Listas Ligadas (26/09)
- Slides (handout)
- Vídeo
- Visualgo - Lista Ligada
- What’s a Linked List, Anyway? [Part 1]
- What’s a Linked List, Anyway? [Part 2]
- Material relacionado
- Seção 3.4 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
Unidade 12 - Listas Ligadas (25/09)
- Slides (handout)
- Vídeo
- Visualgo - Lista Ligada
- Material relacionado
- 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 11 - Exercícios (19/09)
Unidade 10 - Noções de Eficiência de Algoritmos (18/09)
- Slides (handout)
- Vídeo
- Material relacionado
- 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 9 - Backtracking (12/09)
- Slides (handout)
- Vídeo
- Material relacionado:
- Capítulo 12 de “Algoritmos em linguagem C” - Paulo Feofiloff
Unidade 8 - Recursão (11/09)
- Slides (handout)
- Vídeo
- Material relacionado:
- Visualgo: Recursion
- Slides das Aulas 27 e 28 de MC102 (em C)
- Recursão e algoritmos recursivos
- Wikipedia - Recursion
- Wikipedia - Recursion (computer science)
Unidade 7 - Curso de C - Parte 6 (23/08)
Unidade 6 - Curso de C - Parte 5 (21/08)
Unidade 5 - Curso de C - Parte 4 (22/08)
- Slides (handout)
- Vídeo
- Material relacionado:
- Indo de Python para C
- Capítulo 4 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Wikipedia - Abstract Data Type
Unidade 4 - Curso de C - Parte 3 (21/08)
Unidade 3 - Curso de C - Parte 2 (15/08)
Unidade 2 - Curso de C - Parte 1 (14/08)
Unidade 1 - Sobre a Disciplina (01/08)
Tutoriais
- Indo de Python para C
- Material desenvolvido pelo Prof. Lehilton pensando em alunos de MC202
- Tutorial de Valgrind
- Tutorial de GDB
- Passando o teste do Susy no seu computador
Links Interessantes
- Visualgo - Animações de algoritmos e estruturas de dados
- Curso Algorithms do KhanAcademy
- An ongoing series of nonverbal algorithm assembly instructions
- Avaliação Diagnóstica
Calendário
- Início: 01/08
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.