MC202ABC - Estruturas de Dados - 1s2018
-
Prof: Rafael C. S. Schouery
- rafael@ic.unicamp.br
- Sala 74 - Instituto de Computação
-
Aulas teóricas: terças-feiras (CB08) e sextas-feiras (CB07) às 10:00
-
Aulas práticas: sextas-feiras às 14:00 (IC305)
-
Monitorias:
- Quartas, Quintas e Sextas das 13h às 14h no IC305 e das 18h às 19h na SI03
Notas (Atualizadas em 10/07 às 22:06)
- Lab 1
- Lab 2
- Lab 3
- Lab 4
- Lab 5
- Lab 6
- Lab 7
- Lab 8
- Lab 9
- Lab 10
- Lab 11
- Lab 12
- Lista 1
- Lista 2
- Lista 3
- Lista 4
- Notas Finais (com exame)
Listas
- Lista 1 - Entrega em 18/04 via SuSy
- Lista 2 - Entrega em 06/05 via SuSy
- Lista 3 - Entrega em 10/06 via SuSy
- Lista 4 - Entrega em 01/07 via SuSy
Material de Aula
Unidade 24 - Escolhendo uma ED (29/06)
Unidade 23 - Backtracking (26/06)
- Slides
- Vídeo (do 2s2017)
-
Leituras recomendadas
- Capítulo 12 de “Algoritmos em linguagem C” - Paulo Feofiloff
Aula de Exercício (19/06)
Unidade 22 - Grafos (algoritmos) (15/06)
- Slides
- Video (do 2s2017)
-
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) (12/06)
- Slides
- Video (do 2s2017)
-
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) (08/06)
- Slides
- Vídeo (do 2s2017)
-
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
Unidade 19 - Hashing (05/06)
- Slides
- Vídeo (do 2s2017)
-
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
Aula de Exercício (25/05)
Unidade 18 - Árvores B (22/05)
- Slides
- Vídeo (do 2s2017)
-
Leituras recomendadas
- Capítulo 18 de “Introduction to Algorithms - Second Edition” - T. Cormen, C. Leiserson, R. Rivest e C. Stein
Unidade Extra - Árvores Digitais e Tries (18/05)
- Slides
- Vídeo (do 1s2017)
-
Leituras recomendadas
- Capítulo 15 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
Unidade 17 - Árvores Rubro-Negras (15/05)
- Slides
- Vídeo (do 2s2017)
-
Leituras recomendadas
- Capítulo 3 de “Algorithms - Fourth Edition” - R. Sedgewick
Unidade 16 - Árvores Binárias de Busca (11/05)
- Slides
- Vídeo (do 2s2017)
-
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 (03/05)
- Slides
- Vídeo (do 2s2017)
-
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 (27/04)
Unidade 14 - Radixsort (24/04)
- Slides
- Vídeo (do 2s2017)
- 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 (20/04)
- Slides
- Vídeo (do 2s2017)
- 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 (17/04)
- Slides
- Vídeo (do 2s2017)
- 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 (13/04)
- Slides
- Vídeo (do 2s2017)
- 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 (09/04)
- Slides
- Vídeo (do 2s2017)
- 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
Unidade 9 - Aplicações de Pilha (06/04)
- Slides
- Vídeo (do 2s2017)
-
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 (03/04)
- Slides
- Vídeo (do 2s2017)
-
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 (23/03 e 27/03)
- Slides
- Vídeo (do 2s2017)
-
Leituras recomendadas
- Seção 3.4 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
Unidade 6 - Listas Ligadas (20/03)
- Slides
- Vídeo (do 2s2017)
- 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 (16/03)
- Slides
- Vídeo (do 2s2017)
-
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 (13/03)
- Slides
- Vídeo (do 2s2017)
-
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
Laboratório - Aula 2 (09/03)
Unidade 3 - Tipos Abstratos de Dados (09/03)
- Slides
- Vídeo (do 2s2017)
-
Leituras recomendadas
- Capítulo 4 de “Algorithms in C - Parts 1-4 - Third Edition” - R. Sedgewick
- Wikipedia - Abstract Data Type
Unidade 2 - Ponteiros e Structs (06/03)
- Slides
- Vídeo (do 2s2017)
-
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
Laboratório - Aula 1 (02/03)
- Slides
- Máquina Virtual Linux
-
Lista de softwares úteis instalados na máquina virtual
-
Editor de texto Atom com os plugins
- linter
- linter-gcc
- linter-c-indentation
-
gcc e gdb
-
valgrind
-
Unidade 1 - Recursão (02/03)
- Slides
- Vídeo (do 2s2017)
-
Leituras recomendadas
- Slides das Aulas 27 e 28 de MC102
- Recursão e algoritmos recursivos
- Wikipedia - Recursion
- Wikipedia - Recursion (computer science)
Unidade 0 - Sobre a Disciplina (27/02)
- Slides
- Avaliação Diagnóstica
-
Leituras recomendadas
Informações
- Página da disciplina no SuSy
- Máquina Virtual Linux 64bits
- Máquina Virtual Linux 32bits
- Plano de Desenvolvimento da Disciplina
- Lista de discussão da disciplina (Inscreva-se o quanto antes)
- Materiais para revisão de MC102
- Envie dúvidas para os monitores via o email monitores-mc202@googlegroups.com
-
Monitores
- Pedro Ribeiro Mendes Júnior (PED - Turmas ABC)
- Mauro Roberto Costa da Silva (PED - Turmas ABC)
- Lucas Henrique de Sousa Cândido (PED - Turmas ABC)
- Felipe Lemes Galvão (PED - Turmas DE)
- Welverton Rodrigues da Silva (PED - Turmas DE)
- Stefano De Checchi (PAD - Turmas ABC)
- Esdras Rodrigues do Carmo (PAD - Turmas DE)
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
- An ongoing series of nonverbal algorithm assembly instructions
Calendário
- Início: 27/02 (terça-feira)
- Exame: 10/07
- Não teremos aula em 30/03 (feriado)
- Não teremos aula em 01/05 (feriado)
- Não teremos aula em 08/05 (avaliação de cursos)
- Não teremos aula em 01/06 (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.