Horário: terças e quintas de 7:00 às 9:00
Local: sala 213
Sala de aula virtual da disciplina: usaremos o Google Classroom para as discussões e entrega de tarefas e trabalhos da disciplina. É necessário ter uma conta no ID UFF. O código para inscrição na sala de aula do Google Classroom está na lista de chamada. A sala de aula no Google Classroom será usada também para divulgar avisos gerais e para dúvidas.
Importante: todos os alunos devem se inscrever no Google Classroom (os alunos para os quais eu possuo o endereço de email do ID UFF receberam convite – nesse caso basta aceitar o convite). Para se inscrever, clique no símbolo de “+” no canto superior direito da página, e selecione a opção “Participar da Turma”. O código de inscrição na turma está na lista de presença.
Leonardo Machado da Silva - TER 07-09h; QUA 07-09h; QUI 07-09h; SEX 07-09h.
A avaliação da disciplina é composta de duas provas (P1 e P2) e de um trabalho de implementação (T). A média será calculada da seguinte forma:
P1 = Prova sem consulta
P2 = Prova sem consulta
T = Trabalho
Média = ((P1 * 2) + (P2 * 2) + T ) / 5
APROVADO:
(Presença >= 75%) E (Média >= 6)
VERIFICAÇÃO SUPLEMENTAR:
(Presença >= 75%) E (4 <= Média < 6)
Será aprovado na VS o aluno que tirar nota maior ou igual a 6.
REPROVADO: caso contrário
Diversos exercícios serão disponibilizadas durante o curso. Todos terão data de entrega marcada no Google Classroom. Durante a resolução dos exercícios, os alunos podem usar comentários de uma tarefa específica para tirar dúvidas no Google Classroom. Espera-se que os alunos façam uso do compilador C para verificar a corretude das suas respostas. Alunos que entregarem os exercícios no prazo e corretos podem ser aprovados direto caso tenham ficado com média entre 5,5 e 5,9. Da mesma forma, terão direto à VS caso tenham ficado com média entre 3,5 e 3,9.
O Trabalho e os exercícios da disciplina serão feitos em trios. Os trios são flexíveis e podem mudar a cada exercício. Observar apenas o limite máximo de 3 participantes.
IMPORTANTE: os exercícios devem ser entregues por todos os membros do trio, SEMPRE. O nome do arquivo zip deve ser a concatenação do nome do trio, separados por um traço (-). Exemplo: suponha o seguinte trio Fábio Santos, João Felipe da Silva, e Maria Silva. O nome do arquivo zip a ser entregue em cada tarefa é FabioSantos-JoaoFelipedaSilva-MariaSilva.zip. Note que os nomes são ordenados alfabeticamente.
O trabalho consistirá gerenciamento de um catálogo de filmes de um aplicativo de straming de vídeo, como o Netflix, usando uma Árvore B. Seu programa deve receber como entrada os seguintes parâmetros:
O catálogo inicial deve ser salvo num arquivo usando a estrutura de uma Árvore B.
Seu programa deve ser capaz de distinguir entre as informações principais consideradas chaves primárias (nesse caso, o título do filme, acrescido do ano de lançamento da obra) e as informações subordinadas (nome do diretor, gênero do filme (ficção, terror, romance, etc), tempo total de duração do filme, em minutos). A Árvore B deve ser armazenada em disco.
TAMANHOS e TIPOS DE DADOS:
As seguintes operações devem ser implementadas nesse trabalho:
Informações importantes:
As listas de exercícios abaixo são sugeridas para auxiliar no estudo e fixação da matéria.
De acordo com o Regulamento dos Cursos de Graduação, a presença mínima necessária para aprovação é de 75% das aulas (Art. 96) e não há abono de faltas sem documentação (Art. 103).
Ferraz, I. N. Programação com Arquivos. Editora Manole Ltda. Barueri, 2003.
Szwarcfiter, J., Markenzon, L. Estruturas de Dados e Seus Algoritmos. Editora LTC, 3a. edição, 2010.
Cormen, T.H., Leiserson, C.E., Rivest, R.L., Introduction to algorithms, McGraw-Hill, 2009.
Celes, W., Cerqueira, R., Rangel, J.L. Introdução a Estruturas de Dados, Campus, 1a Edição, 2004.
Kernighan, B.W.,Ritchie, D.M. C: a linguagem de programação (Padrão ANSI), Campus, Segunda Edição, 1990.
Tenenbaum, A.M., Langsam, Y., Augenstein, M.J. Estruturas de Dados Usando C, Pearson, Primeira Edição, 1995.
Ramakrishnan, R. Database Management Systems, McGraw Hill, Third Edition, 2003.
Para programação em C, recomendo o CLion. É possível solicitar uma licença grátis para estudante no site da Jetbrains.
Para ajudar na identificação de memory leak, vocês podem usar as seguintes ferramentas:
Dr. Memory (funciona em todas as plataformas)
Valgrind (específico para Linux)
Data | Atividade |
---|---|
14/08/2018 | Apresentação da Disciplina |
16/08/2018 | Revisão de C Esqueleto do código de manipulação de listas encadeadas |
21/08/2018 | Árvores e Árvores Binárias Implementação de Árvore Binária |
23/08/2018 | Árvores Binárias de Busca |
28/08/2018 | SEM AULA - VLDB |
30/08/2018 | SEM AULA - VLDB |
04/09/2018 | Árvores AVL |
06/09/2018 | Continuação de Árvore AVL e Exercícios no Laboratório |
11/09/2018 | Grafos |
13/09/2018 | Exercícios no Laboratório |
18/09/2018 | Arquivos Tutorial de Acesso a Arquivos em C |
20/09/2018 | Ordenação de Arquivos Insertion Sort em Memória e em Disco para Ordenar Arquivos |
25/09/2018 | Ordenação Externa de Arquivos: Geração de Partições Classificadas Implementação de Classificação Interna |
27/09/2018 | Exercícios no Laboratório |
02/10/2018 | SEM AULA - Concurso para Professor UFF |
04/10/2018 | SEM AULA - Concurso para Professor UFF |
09/10/2018 | PROVA 1 |
11/10/2018 | Ordenação Externa de Arquivos: Intercalação de Partições Classificadas Implementação de Intercalação |
16/10/2018 | SEM AULA - Agenda Acadêmica |
18/10/2018 | SEM AULA - Agenda Acadêmica |
23/10/2018 | VISTA DE PROVA |
25/10/2018 | Árvore B Implementação de Busca e Inserção em Árvore B em memória |
30/10/2018 | Exercícios no Laboratório |
01/11/2018 | Árvore B+ |
06/11/2018 | Exercícios no Laboratório |
08/11/2018 | Tabelas Hash. Tratamento de colisão por encadeamento exterior. Implementação Básica de Tabela Hash em memória (Essa implementação não trata colisões) Implementação de Tabela Hash em memória com tratamento de colisões por Encadeamento Exterior |
13/11/2018 | Exercícios no Laboratório |
15/11/2018 | FERIADO |
20/11/2018 | FERIADO |
22/11/2018 | Continuação de Tabelas Hash. Tratamento de colisão por encadeamento interior e Endereçamento Aberto. Implementação de Tabela Hash em memória com tratamento de colisões por Encadeamento Interior Implementação de Tabela Hash em memória com tratamento de colisões por Endereçamento Aberto |
27/11/2018 | Exercícios no Laboratório |
29/11/2018 | Aula no Laboratório, dedicada ao trabalho final |
04/12/2018 | Heap Implementação em memória Implementação em disco ENTREGA TRABALHO dia 03/12 às 23:59h (Via Google Classroom) |
06/12/2018 | PROVA 2 |
11/12/2018 | SEGUNDA CHAMADA |
13/12/2018 | VISTA DE PROVA |
18/12/2018 | VS |
20/12/2018 | VISTA DE PROVA |