Skip to content
This repository has been archived by the owner on Dec 3, 2020. It is now read-only.

iagoac/mc202

Repository files navigation

Disciplina MC202 - Estruturas de Dados

Prof. Iago A. Carvalho

Horário da disciplina

  • Aula teórica: Terças-feiras, 21h às 23h, sala CB05
  • Aula teórica: Quintas-feiras, 19h às 21h, sala CB04
  • Aula prática: Sextas-feiras, 21h às 23h, salas SI03, SI05, SI08, IM10

Histórico e planejamento de aulas

  • 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 de laboratório

  1. Exercícios básicos de C (entrega para 26/04)
  2. Nó, apontador, variável apontadora, alocação dinâmica de memória (entrega para 03/05)
  3. Listas ligadas (apontadores) e listas por vetores (entrega para 13/05)
  4. Pilhas e filas (entrega para 20/05)
  5. Merge de listas e mergesort (entrega para 03/06)
  6. Listas circulares, duplamente ligadas, com cabeça, lista livre
  7. Algoritmos de ordenação (entrega para 08/06)
  8. Árvores binárias (entrega para 19/06)
  9. Árvores de busca
  10. Hash: conceitos e implementação com apontadores (entrega para 10/07)
  11. Grafos: conceito, representação por matrizes e listas ligadas
  12. 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.

Auxiliares didáticos e auxílio presencial/online online

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.

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.


Sobre o material

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 :)

Montando o ambiente

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!


Informações para citação

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/