Aula teórica: Terças-feiras, 21h às 23h, sala CB05Aula teórica: Quintas-feiras, 19h às 21h, sala CB04Aula prática: Sextas-feiras, 21h às 23h, salas SI03, SI05, SI08, IM10
- 02/07 - Síntese (aula 25)
- 30/06 - Árvores B (aula 24)
- 25/06 - Grafos (aula 23)
- 23/06 - Grafos (aula 22)
- 18/06 - Grafos (aula 21)
- 11/06 - Hash (aula 21)
- 04/06 - Mergesort e Quicksort (aula 19)
- 02/06 - Heapsort (aula 18)
- 28/05 - Fila de prioridades (aula 17)
- 26/05 - Árvores balanceadas (aula 16)
- 21/05 - Árvores de busca (aula 15)
- 19/05 - Árvores binárias (aula 14)
- 12/05 - Pilhas (aplicações) (aula 13)
- 07/05 - Pilhas e filas (aula 12)
- 05/05 - Variações de listas (aula 11)
- 30/04 - Listas (aula 10)
- 28/04 - Análise de complexidade e eficiência de algoritmos (aula 9)
- 23/04 - Backtraking (aula 8)
- 21/04 - Recursão (aula 7)
- 14/04 - Introdução a linguagem C (aula 6)
- 09/04 - Introdução a linguagem C (aula 5)
- 07/04 - Introdução a linguagem C (aula 4)
- 02/04 - Introdução a linguagem C (aula 3)
- 31/03 - Introdução a linguagem C (aula 2)
- 12/03 - Introdução a linguagem C (aula 1)
- 10/03 - Introdução a disciplina MC202 (aula 0)
Devido ao recente surto do novo Coronavirus (COVID-19), excepcionalmente, esta disciplina será lecionada no formato EaD. Desta forma, os slides de TODAS as aulas já se encontram disponíveis aqui.
Além disto, um conjunto de video-aulas (sobre cada um dos slides) está disponível aqui. Notem que existem algumas aulas faltando: elas serão gravadas e liberadas o mais cedo o possível.
- Exercícios básicos de C (entrega para 26/04)
- Nó, apontador, variável apontadora, alocação dinâmica de memória (entrega para 03/05)
- Listas ligadas (apontadores) e listas por vetores (entrega para 13/05)
- Pilhas e filas (entrega para 20/05)
- Merge de listas e mergesort (entrega para 03/06)
Listas circulares, duplamente ligadas, com cabeça, lista livre- Algoritmos de ordenação (entrega para 08/06)
- Árvores binárias (entrega para 19/06)
Árvores de busca- Hash: conceitos e implementação com apontadores (entrega para 10/07)
Grafos: conceito, representação por matrizes e listas ligadas- Algoritmos de busca em grafos: busca em largura e busca em profundidade (entrega para 17/07)
Todos os exercícios de laboratório deverão ser realizados na linguagem C. Eles deverão ser submetidos através do SuSy, em um link a ser divulgado posteriormente.
O Susy compila os códigos utilizando o gcc 4.8.5. Mais especificamente, ele utiliza o seguinte comando para compilação:
gcc -std=c99 -pedantic -Wall -lm -o labX *.c
Para os alunos com dificuldades na linguagem de programação utilizada, recomenda-se o tutorial Indo de Python para C, desenvolvido pelo professor Lehilton L. C. Pedrosa, do Instituto de Computação - UNICAMP.
Outros links úteis para o desenvolvimento dos exercícios de laboratório são listados abaixo.
- Passando o teste do Susy no seu computador
- Tutorial de GDB (debugger de C)
- Tutorial de Valgrind (software para verificar leaks de memória e segmentation fault)
Seis auxiliares didáticos auxiliarão os alunos durante o curso desta disciplina. São quatro PEDs e dois PADs. Segue uma lista dos nomes de cada auxiliar didático junto de seu horário de atendimento. Todos os atendimentos serão realizados no Google Meet a partir do dia 30/03/2020.
- Arthur Costa Lopes (PAD) - Segunda feira, 18h às 20h - https://meet.google.com/kht-rtwb-vaq
- Brenner Humberto Ojeda Rios (PED) - Terça feira, 17h às 19h - https://meet.google.com/dsb-mrjr-rde
- Deyvison Nogueira Rodrigues (PED) - Quinta Feira, 17h às 19h - https://meet.google.com/cxp-mwvi-qkr
- Enoque Alves de Castro Neto (PED) - Não terá horário de atendimento (principal responsável pelos laboratórios)
- Matteus Vargas Simão da Silva (PED) - Sexta Feira, 17h às 19h - https://meet.google.com/fun-xoky-nuw
- Thiago Henrique de Camargo Julio (PAD) - Quarta Feira, 16h às 18h - https://meet.google.com/ykf-ugfq-zdn
Este repositório no GitHub também servirá como fórum de dúvidas da disciplina. Cada dúvida deverá ser postada como um Issue nesta página. Desta forma, todos os envolvidos na disciplina (o professor, auxiliares didáticos e os outros alunos) poderão ver suas dúvidas e respondelas assim que possível.
Neste repositrio se encontram os slides, laboratórios e materiais utilizados durante a disciplina MC202 - Estruturas de Dados, originalmente desenvolvida para diversos cursos de graduação da UNICAMP.
Os slides da disciplina foram gentilmente cedidos pelo professor Rafael C. S. Schouery, do Instituto de Computação - UNICAMP. Grande parte dos slides serão utilizados as is, mas algumas pequenas correções poderão ser feitas durante o semestre.
Todos os materiais aqui são disponíveis sob a licença GNU General Public License v3.0. Desta forma, sintam-se livres para utilizar, distribuir e/ou modificar este material da forma que quiserem. Entretanto, lembrem-se de citar a fonte original :)
De forma a tornar menos turbulenta essa transição entre python e C, dentro da pasta Ambiente foram criados passo a passo de como ter acesso ao Linux e como compilar seus programas testando com os arquivos do Susy de forma simples e rápida. Leiam todos os README.md, lá está tudo bem explicado de como essa configuração funciona. Em caso de dúvida bastar acionar o contato no final dos README.md(s).
Os passos estão numerados, a ordem de execução importa no caso!
Se você utilizar o material desta disciplina de qualquer maneira, por favor, cite o material fonte:
Iago A. Carvalho (2020), MC202. Online: https://github.com/iagoac/mc202 Version 1.00; GNU General Public License v3.0.
@Misc{Carvalho2020MC202,
title={MC202},
author={Iago A. Carvalho},
howPublished={\url{https://github.com/iagoac/mc202}},
year={2020},
note={Version 1.00; GNU General Public License v3.0}
}
Iago A. Carvalho
iagoac@ic.unicamp.br
http://iagoac.github.io/