Estruturas de Dados – 2018.2


MENU: [ Avisos | Informações Gerais | Regras | Trabalhos | Plano de Atividades ]


Avisos


Informações Gerais

Nesta disciplina aprende-se as técnicas clássicas para a eficiente manipulação de dados em programas de computador. Uma descrição mais detalhada é fornecida mais abaixo.

Informações importantes sobre a disciplina, como ementa e bibliografia, podem ser encontradas na atual regulamentação da disciplina. Parte dessas informações está também no PPC do curso de Matemática Industrial.

Todas as atividades da disciplina já têm data estimada no plano de atividades. Se você percebeu um choque de datas importantes com outra disciplina, ou se você já sabe que não poderá fazer uma das nossas provas na data prevista, por favor me comunique o quanto antes!

As aulas da disciplina não seguirão livro algum de forma exata, mas, àqueles que desejarem uma sugestão de livro para estudar, eu recomendo o muito bom Estruturas de Dados e Seus Algoritmos, de Jayme Szwarcfiter e Lilian Markenzon, que contém todo o conteúdo que veremos e o apresenta em nível adequado a esta disciplina. Um livro mais avançado, mais abrangente e que também contempla a disciplina posterior de Construção e Análise de Algoritmos, é o Algoritmos, de Cormen, Leiserson, Rivest e Stein.

  • Esteja atento, desde o início do semestre, às regras para solicitação de segunda chamada e para o cálculo da nota da disciplina.

    A minha sugestão para a obtenção de um bom desempenho na disciplina é (1) acompanhar as aulas com atenção, tirando dúvidas o quanto antes, e (2) fazer os exercícios com regularidade. Caso você possua uma dúvida no horário da aula, o ideal é tirá-la na própria ocasião, para que os demais alunos também se beneficiem das explicações. Esteja, porém, à vontade para me contactar fora das aulas.


    Regras

    • Segunda chamada: consulte as regras para a solicitação de prova de segunda chamada.

    • Nota da disciplina: os 10 pontos da nota serão assim divididos:
      • Provas (8 pontos): AP1 (2,5 pontos), AP2 (2,5 pontos) e AP3 (3 pontos).

      • Trabalhos (2 pontos): 4 trabalhos (0,5 ponto cada).

      A aprovação na disciplina seguirá a regra da universidade (Regimento Geral, artigo 114):

      Nota ≥ 7 7 > média ≥ 4 < 4
      Situação Aprovado AF Reprovado

    Trabalhos

    1. Deque Ilimitado (especificação no SIGAA).

    2. ... POR DEFINIR ...

    3. ... POR DEFINIR ...

    4. ... POR DEFINIR ...


    Plano de Atividades

    Dentro do Período Letivo 2018.2, esta disciplina possui 48 datas reservadas, já descontados os feriados (4) e recessos (1). Dessas datas, 6 estão reservadas para eventos acadêmicos (SAC, Encontros Universitários e Semana da Matemática Industrial), 39 para aulas e 3 para provas. Além disso, para o Período de Avaliações Finais, está prevista a AF da disciplina. Na tabela a seguir estão descritas todas essas atividades.

    O conteúdo da disciplina é o seguinte:

    1. INTRODUÇÃO E REVISÃO (3 aulas): introdução à disciplina, revisão sobre ponteiros, alocação dinâmica de memória.

    2. VETORES E TIPOS ABSTRATOS DE DADOS (9 aulas, mais AP1 e correção): pilhas, filas, deques (1º trabalho), conjuntos (e iteradores) e dicionários, todos implementados via vetor. Esses TADs mostram como programas de computador tipicamente precisam manipular dados, e as implementações via vetor mostram maneiras eficientes de manipulação dessa fundamental estrutura.

    3. LISTAS ENCADEADAS (6 aulas): listas simplesmente encadeadas, duplamente encadeadas, circulares e com sentinelas. Essas estruturas apresentam maneiras alternativas pelas quais os TADs estudados anteriormente podem ser implementados.

    4. COMPLEXIDADE DE ALGORITMOS (3 aulas, mais AP2 e correção): notações assintóticas O, Ω e Θ, complexidade de algoritmos em geral e complexidade dos algoritmos estudados até então.

    5. TABELAS DE DISPERSÃO (4 aulas): funções de dispersão, encadeamento externo, endereçamento aberto e redimensionamento de tabelas de dispersão.

    6. ÁRVORES E MEMÓRIA SECUNDÁRIA (9 aulas): busca binária, árvores binárias, percursos em árvores binárias, árvores balanceadas (AVL) e árvores B.

    7. FILAS DE PRIORIDADE (3 aulas, mais AP3): montes ("heaps") binários e ordenação por monte ("heapsort").

    Aula Data Descrição
    01 06/08 (seg) Introdução à Disciplina; Introdução a Ponteiros
    02 08/08 (qua) Aritmética de Ponteiros; Percurso de Vetor via Ponteiros
    03 10/08 (sex) Percurso de Vetor via Ponteiros x Indexado; Alocação Dinâmica
    * 13/08 (seg) SAC
    15/08 (qua) Feriado Municipal: Nossa Senhora da Assunção
    * 17/08 (sex) SAC
    04 20/08 (seg) Solução de um Problema de Avaliação de Expressões Aritméticas
    05 22/08 (qua) Programação da Avaliação de Expressões Aritméticas
    06 24/08 (sex) Introdução a Tipos Abstratos de Dados; Pilhas: Operações, Variações e Uso
    07 27/08 (seg) Implementação de Pilha via Vetor em C; Polimorfismo Paramétrico em C++
    08 29/08 (qua) Implementação de Pilhas Genéricas em C++; Introdução a Filas
    09 31/08 (sex) Implementação de Fila via Vetor
    10 03/09 (seg) Conjuntos Dinâmicos: Introdução e Início de Implementação via Vetor
    11 05/09 (qua) Continuação da Implementação de Conjunto via Vetor; Percurso via Iteradores
    07/09 (sex) Feriado Nacional: Independência do Brasil
    12 10/09 (seg) Dicionários e Implementação via Vetor
    13 12/09 (qua) Listas Encadeadas; Implementação de Pilha via Lista Encadeada
    14 14/09 (sex) Implementação de Fila via Lista Encadeada
    * 17/09 (seg) AP1 - Até Dicionários via Vetor
    15 19/09 (qua) Correção da AP1; Entrega das provas corrigidas (tentativa)
    16 21/09 (sex) Implementação de Deque via Lista Duplamente Encadeada
    17 24/09 (seg) Implementação de Conjunto via Lista Encadeada
    18 26/09 (qua) Iteradores em Lista Encadeada
    19 28/09 (sex) Busca e Remoção em Listas Circulares e Listas com Sentinelas
    20 01/10 (seg) Introdução às Notações Assintóticas O, Ω e Θ
    21 03/10 (qua) Complexidade Assintótica de Algoritmos
    22 05/10 (sex) Complexidade dos Algoritmos Estudados até aqui
    23 08/10 (seg) Introdução às Tabelas de Dispersão; Encadeamento Externo
    24 10/10 (qua) Funções de Dispersão
    12/10 (sex) Feriado Nacional: Dia de Nossa Senhora Aparecida
    15/10 (seg) Recesso Escolar: Dia do Professor
    * 17/10 (qua) AP2 - Até notação assintótica e a complexidade dos algoritmos
    25 19/10 (sex) Correção da AP2; Entrega das provas corrigidas (tentativa)
    26 22/10 (seg) Endereçamento Aberto
    * 24/10 (qua) Encontros Universitários 2018
    * 26/10 (sex) Encontros Universitários 2018
    * 29/10 (seg) Semana da Matemática Industrial - SEMI
    * 31/10 (qua) Semana da Matemática Industrial - SEMI
    02/11 (sex) Feriado Nacional – Dia de Finados
    27 05/11 (seg) Redimensionamento de Tabelas de Dispersão
    28 07/11 (qua) Busca Binária e Aplicações
    29 09/11 (sex) Introdução a Árvores Binárias
    30 12/11 (seg) Inserção e Percursos em Árvores Binárias
    31 14/11 (qua) Remoção em Árvores Binárias; Árvores n-árias
    32 16/11 (sex) Introdução a Árvores Balanceadas e AVL
    33 19/11 (seg) Inserção em Árvores AVL
    34 21/11 (qua) Remoção em Árvores AVL
    35 23/11 (sex) Filas de Prioridades e Montes ("heaps") Binários
    36 26/11 (seg) Algoritmos para Montes Binários
    37 28/11 (qua) Construção de Montes em Tempo Linear e Ordenação por Monte ("heapsort")
    38 30/11 (sex) Árvores B (1/2)
    39 03/12 (seg) Árvores B (2/2)
    * 05/12 (qua) AP3 - Até heapsort
    * 07/12 (sex) Entrega das provas corrigidas (tentativa)
    10/12 (seg)
    * 12/12 (qua) Avaliação Final
    * 13/12 (qui) Último dia para AFs: Provas são possíveis até esta data - não viajar antes!
    * 14/12 (sex) Notas Finais da Disciplina

    Para fins de registro, também é possível acessar a versão anterior do plano acima.