MC202 - Estruturas de Dados - 2s2018
- Prof: Rafael C. S. Schouery
- rafael@ic.unicamp.br
- Sala 74 - Instituto de Computação
- Aulas teóricas: Terças às 21h e Quintas às 19h na CB12
- Aulas práticas: Sábados às 10h, salas 303 e 304 do IC3
- Monitorias: Quartas, Quintas e Sextas, às 13h e às 18h na SI04
Material de Aula
Unidade 30 - Escolhendo uma ED (29/11)
Unidade 29 - Árvores B (27/11)
- Slides
- 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) (22/11)
- Slides
- 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) (13/11)
- Slides
- 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) (08/11)
- Slides
- 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 (06/11)
Unidade 24 - Hashing (01/11)
- Slides
- 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 (30/10)
- Slides
- 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]
- 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 (23/10)
- Slides
- 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
- 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 (16/10)
- Slides
- 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 (11/10)
Unidade 19 - Árvores Rubro-Negras (09/10)
- Slides
- 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 (04/10)
- Slides
- 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 (02/10 e 04/10)
- Slides
- 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 (27/09)
Unidade 15 - Aplicações de Pilha (25/09)
- Slides
- 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 (20/09)
- Slides
- 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 (18/09)
- Slides
- 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 (13/09)
- Slides
- 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 (11/09)
Unidade 10 - Noções de Eficiência de Algoritmos (06/09)
- Slides
- 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 (04/09)
Unidade 8 - Recursão (28/08)
- Slides
- Vídeo
- Material relacionado:
- 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)
Laboratório 3 - Debugging (18/08)
- Slides
- Material relacionado:
Unidade 5 - Curso de C - Parte 4 (16/08)
- Slides
- 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 (14/08)
Laboratório 2 - Máquina Virtual (11/08)
Unidade 3 - Curso de C - Parte 2 (09/08)
Unidade 2 - Curso de C - Parte 1 (07/08)
Unidade 1 - Sobre a Disciplina (02/08)
Informações
- Planilha de Notas e Frequência
- 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
- Leandro Augusto Fernandes de Magalhães (PAD - Turmas GH)
- Lucas Borges Rondon (PED - Turmas EF)
- Miguel Antonio Rodríguez Santander (PED - Turmas GH)
- Pedro Terra Delboni (PED - Turmas GH)
- Rafael Sartori Martins Dos Santos (PAD - Turmas EF)
- Welverton Rodrigues da Silva (PED - Turmas EF)
Links Úteis/Interessantes
- Indo de Python para C
- Material desenvolvido pelo Prof. Lehilton pensando em alunos de MC202
- Avaliação Diagnóstica
- Máquina Virtual Linux
- Tutorial de Valgrind
- Passando o teste do Susy no seu computador
- Visualgo - Animações de algoritmos e estruturas de dados
- Curso Algorithms do KhanAcademy
- An ongoing series of nonverbal algorithm assembly instructions
Calendário
- Início: 02/08
- Exame: 11/12
- Não teremos aula em 30/08 (estarei em evento)
- Não teremos aula em 08/09 (feriado)
- Não teremos aula em 13/10 (feriado)
- Não teremos aula em 18/10 (Congresso de Iniciação Científica)
- Não teremos aula em 25/10 (estarei em evento) novo
- Não teremos aula em 15/11 (feriado)
- Não teremos aula em 17/11 (feriado)
- Não teremos aula em 20/11 (feriado)
Participantes do SECOMP terão falta abonada
- Desde que apresentem comprovação
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.