Cronograma de atividades (PRG2-EngTel)

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Semestre 2017-2 - Prof. Marcelo Maia Sobral
Aula Data Horas Conteúdo Recursos
1 27/7 2 Apresentação e introdução à linguagem de programação C++. Lab. Programação
2 28/7 2 Introdução à linguagem de programação C++. Lab. Programação
3 3/8 2 Introdução à linguagem de programação C++. Lab. Programação
4 4/8 2 Projeto 1: um enumerador de arquivos. Modelagem do sistema e apresentação dos algoritmos para enumeração de arquivos em diretórios. Lab. Programação
5 10/8 2 Projeto 1: algoritmo com busca em largura: apresentação de filas para controlar a visitação de subdiretórios; definição de filas, comportamento e operações. Uso de uma fila fornecida em uma biblioteca de programação. Lab. Programação
6 11/8 2 Projeto 1: algoritmo com busca em profundidade: apresentação de pilhas para controlar a visitação de subdiretórios; definição de pilhas, comportamento e operações. Uso de uma pilha fornecida em uma biblioteca de programação. Lab. Programação
7 17/8 2 Projeto 1: conclusão Lab. Programação
8 18/8 2 Projeto 2: Um programa para apresentar informações de IDH (Índice de Desenvolvimento Humano). Modelagem do sistema e dos dados obtidos do site da ONU. Lab. Programação
9 24/8 2 Projeto 2: Uso de listas para manter dados em memória. Definição de listas: comportamento e operações. Uso de uma lista fornecida em uma biblioteca de programação. Exercícios sobre listas. Lab. Programação
10 25/8 2 Projeto 2: Implementação do projeto. Lab. Programação
11 31/8 2 Projeto 2: conclusão Lab. Programação
12 1/9 2 Avaliação 1 Lab. Programação
13 14/9 2 Projeto 3: um programa para limpar dados redundantes. Modelagem do sistema. Uso de tabela hash para criar o limpador. Definição de tabelas hash: comportamento e operações. Uso de uma tabela hash fornecida em uma biblioteca de programação. Lab. Programação
14 15/9 2 Projeto 3: Exercícios com a tabela hash Lab. Programação
15 21/9 2 Projeto 3: implementação do limpador Lab. Programação
16 22/9 2 Projeto 3: conclusão Lab. Programação
17 28/9 2 Projeto 4: um dicionário para auto-completar palavras. Uso de árvores de pesquisa binária para criar o dicionário. Definição de árvore de pesquisa binária: comportamento e operações. Uso de uma árvore de pesquisa binária fornecida em uma biblioteca de programação. Lab. Programação
18 29/9 2 Projeto 4: Exercícios para uso da árvore de pesquisa binária Lab. Programação
19 5/10 2 Projeto 4: implementação do dicionário, com gravação do índice em um arquivo. Lab. Programação
20 6/10 2 Projeto 4: conclusão Lab. Programação
21 19/10 2 Avaliação 2 Lab. Programação
22 20/10 2 Implementação da fila e da pilha Lab. Programação
23 26/10 2 Implementação da fila e da pilha Lab. Programação
24 27/10 2 Implementação da lista encadeada: operações de inserção e busca Lab. Programação
25 9/11 2 Implementação da lista encadeada: operações de inserção e busca Lab. Programação
26 10/11 2 Implementação da lista encadeada: iteração Lab. Programação
27 16/11 2 Implementação da lista encadeada: ordenamento Lab. Programação
28 17/11 2 Implementação da lista encadeada: ordenamento Lab. Programação
29 23/11 2 Implementação da árvore de pesquisa binária: operações de inserção e busca Lab. Programação
30 24/11 2 Implementação da árvore de pesquisa binária: operações de inserção e busca Lab. Programação
31 30/11 2 Implementação da árvore de pesquisa binária: iteração e enumeração Lab. Programação
32 1/12 2 Implementação da árvore de pesquisa binária: balanceamento Lab. Programação
33 7/12 2 Implementação da árvore de pesquisa binária: balanceamento Lab. Programação
34 8/12 2 Implementação da árvore de pesquisa binária: busca parcial Lab. Programação
35 14/12 2 Avaliação 3 Lab. Programação
36 15/12 2 Conclusão Lab. Programação
TOTAL 78
Semestre 2017-1 - Prof. Marcelo Maia Sobral
Aula Data Horas Conteúdo Recursos
1 14/2 2 Apresentação e introdução à linguagem de programação C++. Lab. Programação
2 15/2 2 Introdução à linguagem de programação C++. Lab. Programação
3 21/2 2 Introdução à linguagem de programação C++. Lab. Programação
4 22/2 2 Projeto 1: uma calculadora booleana. Modelagem do sistema e apresentação do algoritmo de cálculo de expressão. Lab. Programação
5 7/3 2 Projeto 1: Apresentação de filas para armazenamento de tokens da expressão: definição de filas, comportamento e operações. Uso de uma fila fornecida em uma biblioteca de programação. Lab. Programação
6 8/3 2 Projeto 1: Apresentação de pilhas para algoritmo de cálculo da expressão: definição de pilhas, comportamento e operações. Uso de uma pilha fornecida em uma biblioteca de programação. Lab. Programação
7 14/3 2 Projeto 1: conclusão Lab. Programação
8 15/3 2 Projeto 2: Um programa para extrair informações do ENEM. Modelagem do sistema e dos dados obtidos do site do Inep. Lab. Programação
9 21/3 2 Projeto 2: Uso de listas para manter dados em memória. Definição de listas: comportamento e operações. Uso de uma lista fornecida em uma biblioteca de programação. Exercícios sobre listas. Lab. Programação
10 22/3 2 Projeto 2: Implementação do projeto. Lab. Programação
11 28/3 2 Projeto 2: conclusão Lab. Programação
12 29/3 2 Avaliação 1 Lab. Programação
13 4/4 2 Projeto 3: um simulador de tabela MAC de um switch ethernet. Modelagem do sistema. Uso de tabela hash para criar o simulador. Definição de tabelas hash: comportamento e operações. Uso de uma tabela hash fornecida em uma biblioteca de programação. Lab. Programação
14 5/4 2 Projeto 3: Exercícios com a tabela hash Lab. Programação
15 11/4 2 Projeto 3: implementação do simulador Lab. Programação
16 12/4 2 Projeto 3: conclusão Lab. Programação
17 18/4 2 Projeto 4: uma nova versão do analisador de ENEM. Uso de árvores de pesquisa binária para criar o analisador. Definição de árvore de pesquisa binária: comportamento e operações. Uso de uma árvore de pesquisa binária fornecida em uma biblioteca de programação. Lab. Programação
18 19/4 2 Projeto 4: Exercícios para uso da árvore de pesquisa binária Lab. Programação
19 25/4 2 Projeto 4: implementação do analisador, com gravação do índice em um arquivo. Lab. Programação
20 26/4 2 Projeto 4: conclusão Lab. Programação
21 2/5 2 Avaliação 2 Lab. Programação
22 3/5 2 Implementação da fila e da pilha Lab. Programação
23 9/5 2 Implementação da fila e da pilha Lab. Programação
24 10/5 2 Implementação da lista encadeada: operações de inserção e busca Lab. Programação
25 16/5 2 Implementação da lista encadeada: operações de inserção e busca Lab. Programação
26 17/5 2 Implementação da lista encadeada: iteração Lab. Programação
27 23/5 2 Implementação da lista encadeada: ordenamento Lab. Programação
28 24/5 2 Implementação da lista encadeada: ordenamento Lab. Programação
29 30/5 2 Implementação da tabela hash: operações de inserção e busca Lab. Programação
30 31/5 2 Implementação da tabela hash: operações de inserção e busca Lab. Programação
31 6/6 2 Implementação da tabela hash: operações de inserção e busca Lab. Programação
32 7/6 2 Implementação da tabela hash: operações de inserção e busca Lab. Programação
33 13/6 2 Implementação da árvore de pesquisa binária: operações de inserção e busca Lab. Programação
34 14/6 2 Implementação da árvore de pesquisa binária: operações de inserção e busca Lab. Programação
35 20/6 2 Implementação da árvore de pesquisa binária: iteração Lab. Programação
36 21/6 2 Implementação da árvore de pesquisa binária: balanceamento Lab. Programação
37 27/6 2 Implementação da árvore de pesquisa binária: balanceamento
38 28/6 2 Avaliação 3
39 4/7 2 Conclusão
TOTAL 78
Semestre 2016-2 - Prof. Marcelo Maia Sobral
Aula Data Horas Conteúdo Recursos
1 11/8 2 Apresentação e introdução à linguagem de programação C++. Lab. Programação
2 15/8 2 Introdução à linguagem de programação C++. Lab. Programação
3 18/8 2 Introdução à linguagem de programação C++. Lab. Programação
4 22/8 2 Projeto 1: um localizador de arquivos e diretórios. Modelagem do sistema e apresentação de um módulo para acesso e listagem de diretórios. Lab. Programação
5 25/8 2 Projeto 1: algoritmos para localização de arquivos: busca em largura. Uso de filas para busca em largura: definição de filas, comportamento e operações. Uso de uma fila fornecida em uma biblioteca de programação. Lab. Programação
6 29/8 2 Projeto 1: algoritmos para localização de arquivos: busca em profunidade. Uso de pilhas para busca em profundidade: definição de pilhas, comportamento e operações. Uso de uma pilha fornecida em uma biblioteca de programação. Lab. Programação
7 1/9 2 Projeto 1: conclusão Lab. Programação
8 5/9 2 Projeto 2: Um analisador do padrão de tráfego em uma rede. Modelagem do sistema. Extração dos dados de arquivos de log de tráfego. Lab. Programação
9 8/9 2 Projeto 2: Uso de listas para manter dados em memória. Definição de listas: comportamento e operações. Uso de uma lista fornecida em uma biblioteca de programação. Exercícios sobre listas. Lab. Programação
10 12/9 2 Projeto 2: Implementação do analisador Lab. Programação
11 15/9 2 Projeto 2: conclusão Lab. Programação
12 19/9 2 Avaliação 1 Lab. Programação
13 22/9 2 Projeto 3: um indexador de arquivos em disco. Modelagem do sistema. Uso de tabela hash para criar o indexador de arquivos. Definição de tabelas hash: comportamento e operações. Uso de uma tabela hash fornecida em uma biblioteca de programação. Lab. Programação
14 26/9 2 Projeto 3: Exercícios com a tabela hash Lab. Programação
15 29/9 2 Projeto 3: implementação do indexador Lab. Programação
16 3/10 2 Projeto 3: conclusão Lab. Programação
17 6/10 2 Projeto 4: uma nova versão do indexador de arquivos em disco. Uso de árvores de pesquisa binária para criar o indexador. Definição de árvore de pesquisa binária: comportamento e operações. Uso de uma árvore de pesquisa binária fornecida em uma biblioteca de programação. Lab. Programação
18 10/10 2 Projeto 4: Exercícios para uso da árvore de pesquisa binária Lab. Programação
19 13/10 2 Projeto 4: implementação do indexador, com gravação do índice em um arquivo. Lab. Programação
20 17/10 2 Projeto 4: conclusão Lab. Programação
21 20/10 2 Avaliação 2 Lab. Programação
22 24/10 2 Implementação da fila e da pilha Lab. Programação
23 27/10 2 Implementação da fila e da pilha Lab. Programação
24 31/10 2 Implementação da lista encadeada: operações de inserção e busca Lab. Programação
25 3/11 2 Implementação da lista encadeada: operações de inserção e busca Lab. Programação
26 7/11 2 Implementação da lista encadeada: iteração Lab. Programação
27 10/11 2 Implementação da lista encadeada: ordenamento Lab. Programação
28 17/11 2 Implementação da lista encadeada: ordenamento Lab. Programação
29 21/11 2 Implementação da tabela hash: operações de inserção e busca Lab. Programação
30 24/11 2 Implementação da tabela hash: operações de inserção e busca Lab. Programação
31 28/11 2 Implementação da tabela hash: operações de inserção e busca Lab. Programação
32 1/12 2 Implementação da árvore de pesquisa binária: operações de inserção e busca Lab. Programação
33 5/12 2 Implementação da árvore de pesquisa binária: operações de inserção e busca Lab. Programação
34 8/12 2 Implementação da árvore de pesquisa binária: iteração Lab. Programação
35 12/12 2 Implementação da árvore de pesquisa binária: balanceamento Lab. Programação
36 15/12 2 Implementação da árvore de pesquisa binária: balanceamento Lab. Programação
37 19/12 2 Avaliação 3 Lab. Programação
TOTAL 74
Semestre 2016-1 - Prof. Marcelo Maia Sobral
Aula Data Horas Conteúdo Recursos
1 22/3 2 Apresentação e introdução à linguagem de programação C++. Lab. Programação
2 29/3 2 Introdução à linguagem de programação C++. Lab. Programação
3 1/4 2 Projeto 1: uma interface de linha de comando (CLI). Modelagem do sistema. Apresentação de um módulo de execução de comandos. Lab. Programação
4 5/4 2 Projeto 1: Uso de filas para sequencializar comandos de uma macro. Definição de filas: comportamento e operações. Implementação de filas circulares usando vetores. Implementação de filas circulares. Lab. Programação
5 8/4 2 Projeto 1: Implementação de filas circulares. Lab. Programação
6 12/4 2 Projeto 1: Uso de uma pilha para o histórico de comandos. Pilhas: comportamento e operações. Implementação de pilhas usando vetores. Lab. Programação
7 15/4 2 Projeto 1: implementação da pilha Lab. Programação
8 19/4 2 Projeto 1: implementação da CLI Lab. Programação
9 22/4 2 Projeto 1: conclusão Lab. Programação
10 26/4 2 Avaliação 1 Lab. Programação
11 29/4 2 Projeto 2: definição de uma lista encadeada simples: operações da lista, modelagem dos dados; revisão sobre alocação dinâmica de memória e uso de ponteiros Lab. Programação
12 3/5 2 Projeto 2: definição de uma lista encadeada simples: operações da lista, modelagem dos dados; revisão sobre alocação dinâmica de memória e uso de ponteiros Lab. Programação
13 6/5 2 Projeto 2: Listas encadeadas: comportamento e operações. Modelos de lista encadeada (duplamente encadeadas, uso de guardas). Implementação das operações da lista encadeada: criação da lista, adição, remoção e busca de itens. Lab. Programação
14 10/5 2 Projeto 2: Listas encadeadas: comportamento e operações. Modelos de lista encadeada (duplamente encadeadas, uso de guardas). Implementação das operações da lista encadeada: criação da lista, adição, remoção e busca de itens. Lab. Programação
15 13/5 2 Projeto 2: implementação da lista Lab. Programação
16 17/5 2 Projeto 2: ordenando resultados: algoritmos de ordenamento bubble sort e insertion sort. Lab. Programação
17 20/5 2 Projeto 2: ordenando resultados: algoritmos de ordenamento bubble sort e insertion sort. Lab. Programação
18 21/5 2 Projeto 2: implementação do … usando a lista. Lab. Programação
19 24/5 2 Projeto 2: implementação do … usando a lista. Lab. Programação
20 27/5 2 Projeto 2: conclusão Lab. Programação
21 31/5 2 Projeto 3: criando um ...: uso de árvores de pesquisa binárias. Lab. Programação
22 3/6 2 Projeto 3: Implementação de árvore binária. Lab. Programação
23 7/6 2 Projeto 3: fazendo buscas na árvore: busca em profundidade; percorrendo a árvore em in-order Lab. Programação
24 10/6 2 Projeto 3: balanceamento da árvore Lab. Programação
25 14/6 2 Projeto 3: gravando e lendo a árvore de um arquivo; percorrendo a árvore em pre-order. Lab. Programação
26 17/6 2 Projeto 3: destruindo a árvore; precorrendo-a em post-order Lab. Programação
27 21/6 2 Projeto 3: remoção de nodos da árvore Lab. Programação
28 24/6 2 Projeto 3: Conclusão do projeto 5. Lab. Programação
29 28/6 2 Projeto 4: criando um...; Tabelas hash. Definição de tabelas hash: estrutura da tabela, função hash. Lab. Programação
30 1/7 2 Projeto 4: implementação das operações da tabela hash e tratamento de colisões Lab. Programação
31 5/7 2 Projeto 4: implementação das operações da tabela hash e tratamento de colisões Lab. Programação
32 8/7 2 Projeto 4: uso da tabela hash no … Lab. Programação
33 12/7 2 Projeto 4: uso da tabela hash no … Lab. Programação
34 15/7 2 Projeto 4: conclusão Lab. Programação
35 19/7 2 Avaliação 3 Lab. Programação
36 22/7 2 Lab. Programação
TOTAL 74
Semestre 2015-2 - Prof. Marcelo Maia Sobral
Aula Data Horas Conteúdo Recursos
1 / 2 Apresentação e introdução à linguagem de programação C++. Lab. Programação
2 / 2 Introdução à linguagem de programação C++. Lab. Programação
3 / 2 Projeto 1: um espelhador de arquivos e diretórios via HTTP. Modelagem do sistema. Apresentação de um cliente HTTP. Lab. Programação
4 / 2 Projeto 1: Uso de filas para sequencializar os arquivos a serem copiados. Definição de filas: comportamento e operações. Implementação de filas circulares usando vetores. Implementação de filas circulares. Lab. Programação
5 / 2 Projeto 1: Implementação de filas circulares. Lab. Programação
6 / 2 Projeto 1: Conclusão do projeto: criação do algoritmo que obtém arquivos e diretórios recursivamente usando a fila circular para sequencializar as transferências. Lab. Programação
7 / 2 Projeto 1: conclusão Lab. Programação
8 / 2 Projeto 2: uma calculadora aritmética em notação polonesa. Uso de uma pilha para o algoritmo de resolução de uma expressão. Pilhas: comportamento e operações. Implementação de pilhas usando vetores. Lab. Programação
9 / 2 Projeto 2: implementação da pilha Lab. Programação
10 / 2 Projeto 2: implementação da calculadora usando a pilha desenvolvida. Lab. Programação
11 / 2 Projeto 2: definição de uma lista encadeada simples: operações da lista, modelagem dos dados; revisão sobre alocação dinâmica de memória e uso de ponteiros Lab. Programação
12 / 2 Projeto 2: conclusão Lab. Programação
13 / 2 Avaliação 1 Lab. Programação
14 / 2 Projeto 3: um sumarizador de arquivos de log. Listas encadeadas: comportamento e operações. Modelos de lista encadeada (duplamente encadeadas, uso de guardas). Implementação das operações da lista encadeada: criação da lista, adição, remoção e busca de itens. Lab. Programação
15 / 2 Projeto 3: implementação da lista Lab. Programação
16 / 2 Projeto 3: implementação da lista Lab. Programação
17 / 2 Projeto 3: ordenando resultados: algoritmos de ordenamento bubble sort e insertion sort. Lab. Programação
18 / 2 Projeto 3: implementação do sumarizador de logs usando a lista. Lab. Programação
19 / 2 Projeto 3: implementação do sumarizador de logs usando a lista. Lab. Programação
20 / 2 Projeto 3: conclusão Lab. Programação
21 / 2 Projeto 4: sumarizador de logs: tornando rápidas as operações de busca e atualização do sumarizador com o uso de tabelas hash. Definição de tabelas hash: estrutura da tabela, função hash. Lab. Programação
22 / 2 Projeto 4: implementação das operações da tabela hash e tratamento de colisões Lab. Programação
23 / 2 Projeto 4: implementação das operações da tabela hash e tratamento de colisões Lab. Programação
24 / 2 Projeto 4: uso da tabela hash no sumarizador de logs: indexação por URL, IP, e outras informações. Lab. Programação
25 / 2 Projeto 4: uso da tabela hash no sumarizador de logs: indexação por URL, IP, e outras informações. Lab. Programação
26 / 2 Projeto 4: conclusão Lab. Programação
27 / 2 Avaliação 2 Lab. Programação
28 / 2 Projeto 5: criando um serviço de geo-localização IP: uso de árvores de pesquisa binárias. Lab. Programação
29 / 2 Projeto 5: Implementação de árvore binária. Lab. Programação
30 / 2 Projeto 5: Implementação de árvore binária. Lab. Programação
31 / 2 Projeto 5: fazendo buscas na árvore: busca em profundidade; percorrendo a árvore em in-order. Lab. Programação
32 / 2 Projeto 5: concluindo a primeira versão do geolocalizador. Lab. Programação
33 / 2 Projeto 5: gravando e lendo a árvore de um arquivo; percorrendo a árvore em pre-order. Lab. Programação
34 / 2 Projeto 5: aperfeiçoando o geolocalizador com árvores balanceadas. Lab. Programação
35 / 2 Projeto 5: Conclusão do projeto 5. Lab. Programação
36 / 2 Avaliação 3 Lab. Programação
TOTAL 72
Semestre 2015-1 - Prof. Marcelo Maia Sobral
Aula Data Horas Conteúdo Recursos
1 9/2 2 Apresentação e introdução ao projeto 1: jogo de clássico de memória (Simon); linguagem de programação C++. Lab. Programação
2 10/2 2 Projeto 1: Modelagem do jogo. Uso de filas para representar sequências de cores. Definição de filas: comportamento e operações. Implementação de filas circulares usando vetores. Lab. Programação
3 23/2 2 Projeto 1: Implementação de filas circulares. Lab. Programação
4 24/2 2 Projeto 1: Uso de filas para gerar e manter sequências de cores no jogo. Lab. Programação
5 2/3 2 Projeto 1: implementação do jogo Lab. Programação
6 3/3 2 Projeto 1: Implementação do modo avançado do jogo, com repetição de cores em ordem reversa. Uso de pilhas para verificação da ordem reversa. Definição de pilhas: comportamento e operações. Implementação de pilhas usando vetores. Lab. Programação
7 9/3 2 Projeto 1: conclusão Lab. Programação
8 10/3 2 Projeto 2: criando um programa para detecção de plágio em textos. Transformação de textos em sequências de palavras, para obter duas métricas: 1) palavras comuns em dois textos, e 2) sequências de palavras comuns em dois textos. Armazenamento das palavras em listas encadeadas. Introdução a listas simplesmente encadeadas. Lab. Programação
9 16/3 2 Projeto 2: definição de uma lista encadeada simples: operações da lista, modelagem dos dados; revisão sobre alocação dinâmica de memória e uso de ponteiros Lab. Programação
10 17/3 2 Projeto 2: Implementação das operações da lista encadeada: criação da lista, adição, remoção e busca de itens. Lab. Programação
11 23/3 2 Projeto 2: criação do sistema anti-plágio usando a lista encadeada. Lab. Programação
12 24/3 2 Projeto 2: ordenando resultados: algoritmos de ordenamento bubble sort e insertion sort. Lab. Programação
13 30/3 2 Projeto 2: ordenando resultados: algoritmos de ordenamento bubble sort e insertion sort. Lab. Programação
14 31/3 2 Projeto 2: conclusão; considerações finais sobre listas encadeadas: remoção de itens de uma lista, listas duplamente encadeadas, uso de guardas, implementação de pilhas e filas usando listas. Lab. Programação
15 6/4 2 Projeto 2: conclusão; considerações finais sobre listas encadeadas: remoção de itens de uma lista, listas duplamente encadeadas, uso de guardas, implementação de pilhas e filas usando listas. Lab. Programação
16 7/4 2 Avaliação 1 Lab. Programação
17 13/4 2 Projeto 3: um catálogo de filmes: tornando rápidas as operações de busca e atualização do catálogo com o uso de tabelas hash. Definição de tabelas hash: estrutura da tabela, função hash. Lab. Programação
18 14/4 2 Projeto 3: implementação das operações básicas de uma tabela hash. Lab. Programação
19 27/4 2 Projeto 3: implementação da tabela hash e tratamento de colisões. Lab. Programação
20 28/4 2 Projeto 3: implementação da tabela hash e tratamento de colisões. Lab. Programação
21 4/5 2 Projeto 3: uso da tabela hash no catálogo de filmes: indexação por título, gênero, diretor. Lab. Programação
22 5/5 2 Projeto 3: uso da tabela hash no catálogo de filmes: indexação por título, gênero, diretor. Lab. Programação
23 11/5 2 Projeto 3: conclusão Lab. Programação
24 12/5 2 Avaliação 2 Lab. Programação
25 18/5 2 Projeto 4: criando um serviço de geo-localização IP: uso de árvores de pesquisa binárias. Lab. Programação
26 19/5 2 Projeto 4: Implementação de árvore binária. Lab. Programação
27 25/5 2 Projeto 4: Implementação de árvore binária. Lab. Programação
28 26/5 2 Projeto 4: fazendo buscas na árvore: busca em profundidade; percorrendo a árvore em in-order. Lab. Programação
29 1/6 2 Projeto 4: concluindo a primeira versão do geolocalizador. Lab. Programação
30 2/6 2 Projeto 4: gravando e lendo a árvore de um arquivo; percorrendo a árvore em pre-order. Lab. Programação
31 8/6 2 Projeto 4: aperfeiçoando o geolocalizador com árvores balanceadas. Lab. Programação
32 9/6 2 Projeto 4: Conclusão do projeto 4. Lab. Programação
33 15/6 2 Projeto 5: fazendo um jogo de adivinhação que aprende com o jogador. Modelando o jogo. Lab. Programação
34 16/6 2 Projeto 5: modelo e implementação da árvore de decisão. Lab. Programação
35 22/6 2 Projeto 5: conclusão. Lab. Programação
36 23/6 2 Avaliação 3 Lab. Programação
37 29/6 2 Recuperação Lab. Programação
TOTAL 74
Semestre 2014-2 - Prof. Marcelo Maia Sobral
Aula Data Horas Conteúdo Recursos
1 30/7 2 Apresentação e introdução ao projeto 1: jogo de paciência com cartas. Modelagem do jogo. Uso de filas para representar o baralho. Definição de filas: comportamento e operações. Implementação de filas circulares usando vetores. Lab. Programação
2 4/8 2 Projeto 1: implementando filas Lab. Programação
3 6/8 2 Projeto 1: embaralhando as cartas da fila. Implementação dos montes de cartas com pilhas. Definição de pilhas: comportamento e operações. Implementação de pilhas usando vetores. Lab. Programação
4 13/8 2 Projeto 1: continuação da implementação de pilhas. Início da implementação de fato do jogo, usando as filas e pilhas previamente implementadas. Lab. Programação
5 18/8 2 Projeto 1: implementação do jogo Lab. Programação
6 20/8 2 Projeto 1: conclusão. Lab. Programação
7 25/8 2 Projeto 2: criando um programa para consulta de CEP. Armazenamento dos dados de CEP em listas encadeadas. Introdução a listas simplesmente encadeadas. Lab. Programação
8 27/8 2 Projeto 2: definição de uma lista encadeada simples: operações da lista, modelagem dos dados; revisão sobre alocação dinâmica de memória e uso de ponteiros Lab. Programação
9 1/9 2 Projeto 2: Implementação das operações da lista encadeada: criação da lista, adição e remoção de de itens, procura de itens. Lab. Programação
10 3/9 2 Projeto 2: Implementação das operações da lista encadeada: criação da lista, adição e remoção de de itens, procura de itens. Lab. Programação
11 8/9 2 Projeto 2: criação do catálogo de CEP usando a lista encadeada. Lab. Programação
12 10/9 2 Projeto 2: ordenando o catálogo de CEP: algoritmos de ordenamento bubble sort e insertion sort. Lab. Programação
13 15/9 2 Projeto 2: ordenando o catálogo de CEP: algoritmos de ordenamento bubble sort e insertion sort. Lab. Programação
14 17/9 2 Projeto 2: removendo registros do catálogo de CEP: remoção de valores da lista. Lab. Programação
15 22/9 2 Projeto 2: conclusão; considerações finais sobre listas encadeadas: listas duplamente encadeadas, uso de guardas, implementação de pilhas e filas usando listas. Lab. Programação
16 24/9 2 Avaliação 1 Lab. Programação
17 29/9 2 Projeto 3: aperfeiçoamento do catálogo de CEP: tornando mais rápidas as operações de busca e atualização do catálogo com o uso de tabelas hash. Definição de tabelas hash: estrutura da tabela, função hash. Lab. Programação
18 1/10 2 Projeto 3: implementação das operações básicas de uma tabela hash. Lab. Programação
19 6/10 2 Projeto 3: implementação da tabela hash e tratamento de colisões. Lab. Programação
20 8/10 2 Projeto 3: implementação da tabela hash e tratamento de colisões. Lab. Programação
21 13/10 2 Projeto 3: uso da tabela hash no catálogo de CEP: indexação por CEP, cidade ou estado. Lab. Programação
22 15/10 2 Projeto 3: uso da tabela hash no catálogo de CEP: indexação por CEP, cidade ou estado. Lab. Programação
23 20/10 2 Projeto 3: conclusão Lab. Programação
24 22/10 2 Avaliação 2 Lab. Programação
25 27/10 2 Projeto 4: criando um serviço de geo-localização IP: uso de árvores de pesquisa binárias. Lab. Programação
26 29/10 2 Projeto 4: Implementação de árvore binária. Lab. Programação
27 3/11 2 Projeto 4: Implementação de árvore binária. Lab. Programação
28 5/11 2 Projeto 4: fazendo buscas na árvore: busca em profundidade; percorrendo a árvore em in-order. Lab. Programação
29 10/11 2 Projeto 4: concluindo a primeira versão do geolocalizador. Lab. Programação
30 12/11 2 Projeto 4: gravando e lendo a árvore de um arquivo; percorrendo a árvore em pre-order. Lab. Programação
31 17/11 2 Projeto 4: aperfeiçoando o geolocalizador com árvores balanceadas. Lab. Programação
32 19/11 2 Projeto 4: Conclusão do projeto 4. Lab. Programação
33 24/11 2 Projeto 5: fazendo um jogo de adivinhação que aprende com o jogador. Modelando o jogo. Lab. Programação
34 26/11 2 Projeto 5: modelo e implementação da árvore de decisão. Lab. Programação
35 1/12 2 Projeto 5: conclusão. Lab. Programação
36 3/12 2 Avaliação 3 Lab. Programação
TOTAL 80
Semestre 2014-1 - Prof. Marcelo Maia Sobral
Aula Data Horas Conteúdo Recursos
1 10/2 2 Apresentação e introdução ao projeto 1: contador de palavras de um arquivo; introdução a listas encadeadas Lab. Programação
2 11/2 2 Projeto 1: definição de uma lista encadeada simples: operações da lista, modelagem dos dados; revisão sobre alocação dinâmica de memória e uso de ponteiros Lab. Programação
3 17/2 2 Projeto 1: Implementação das operações da lista encadeada: criação da lista e adição de itens. Lab. Programação
4 18/2 2 Projeto 1: Implementação das operações da lista encadeada: criação da lista e adição de itens. Lab. Programação
5 24/2 2 Projeto 1: concluindo o contador de palavras Lab. Programação
6 25/2 2 Projeto 1: estendendo o contador de palavras: ordenando as palavras de acordo com a quantidade de ocorrências. Uso de algoritmos de ordenamento bubble sort ou insertion sort. Lab. Programação
7 10/3 2 Projeto 1: estendendo o contador de palavras: ordenando as palavras de acordo com a quantidade de ocorrências. Uso de algoritmos de ordenamento bubble sort ou insertion sort. Lab. Programação
8 11/3 2 Projeto 1: concluindo o contador de palavras com ordenamento Lab. Programação
9 17/3 2 Projeto 2: um simulador de sistemas de atendimento. Uso de estruturas de dados lista e fila. Implementação de operações de remoção de itens da lista. Lab. Programação
10 18/3 2 Projeto 2: definição de uma fila: comportamento e operações; implementação de uma fila usando uma lista encadeada ou um vetor (fila circular). Lab. Programação
11 24/3 2 Projeto 2: implementando o simulador Lab. Programação
12 25/3 2 Projeto 2: conclusão do projeto. Lab. Programação
13 31/3 2 Avaliação 1 Lab. Programação
14 1/4 2 Projeto 3: criando um jogo de cartas. Uso de pilhas. Definição de pilhas: comportamento e operações. Implementação de pilhas usando listas encadeadas e vetores. Lab. Programação
15 7/4 2 Projeto 3: implementando o jogo de cartas Lab. Programação
16 8/4 2 Projeto 3: implementando o jogo de cartas Lab. Programação
17 14/4 2 Projeto 3: conclusão do projeto. Lab. Programação
18 15/4 2 Projeto 4: criando um serviço de geo-localização IP: Uso de tabelas hash. Lab. Programação
19 22/4 2 Projeto 4: Implementação da tabela hash. Funções hash e o indexador de endereços IP da base de geo-localização. Lab. Programação
20 28/4 2 Projeto 4: implementação da tabela hash e tratamento de colisões. Lab. Programação
21 29/4 2 Projeto 4: implementação da tabela hash e tratamento de colisões. Lab. Programação
22 5/5 2 Projeto 4: implementação da tabela hash e sua aplicação à base de geo-localização. Conclusão do projeto. Lab. Programação
23 6/5 2 Avaliação 2 Lab. Programação
24 12/5 2 Projeto 5: criando um corretor ortográfico; árvores binárias: definição e operações. Implementação de árvore binária. Lab. Programação
25 13/5 2 Projeto 5: Árvores binárias: definição e operações. Implementação de árvore binária. Lab. Programação
26 19/5 2 Projeto 5: Implementação de árvore binária. Lab. Programação
27 20/5 2 Projeto 5: Implementação de árvore binária. Lab. Programação
28 26/5 2 Projeto 5: fazendo buscas na árvore: busca em profundidade ou em largura Lab. Programação
29 27/5 2 Projeto 5: concluindo a primeira versão do corretor, e usando-o para corrigir textos de arquivos em disco. Lab. Programação
30 2/6 2 Projeto 5: gravando e lendo a árvore de um arquivo. Lab. Programação
31 3/6 2 Projeto 5: aperfeiçoando o corretor com árvores balanceadas. Lab. Programação
32 9/6 2 Projeto 5: aperfeiçoando o corretor com árvores balanceadas. Lab. Programação
33 10/6 2 Projeto 5: aperfeiçoando o corretor com árvores balanceadas. Conclusão do projeto 5. Lab. Programação
34 16/6 2 Projeto 6: fazendo um jogo de adivinhação que aprende com o jogador. Modelando o jogo. Lab. Programação
35 17/6 2 Projeto 6: modelo e implementação da árvore de decisão. Lab. Programação
36 23/6 2 Projeto 6: implementação da árvore de decisão. Lab. Programação
37 24/6 2 Projeto 6: conclusão Lab. Programação
38 30/6 2 Avaliação 3 Lab. Programação
39 1/7 2 Reservado para ajustes Lab. Programação
40 7/7 2 Reservado para ajustes Lab. Programação
TOTAL 80
Semestre 2013-2 - Prof. Marcelo Maia Sobral
Aula Data Horas Conteúdo Recursos
1 16/8 2 Apresentação e introdução ao projeto 1: extrator de palavras duplicadas de um arquivo; introdução a listas encadeadas Lab. Programação
2 20/8 2 Projeto 1: definição de uma lista encadeada simples: operações da lista, modelagem dos dados; revisão sobre alocação dinâmica de memória e uso de ponteiros Lab. Programação
3 23/8 2 Projeto 1: Implementação das operações da lista encadeada: criação da lista e adição de itens. Lab. Programação
4 27/8 2 Projeto 1: Implementação das operações da lista encadeada: criação da lista e adição de itens. Conclusão do projeto 1. Lab. Programação
5 30/8 2 Projeto 2: um ordenador de registros de pagamentos contidos em um arquivo. Algoritmo de ordenamento bubble sort. Listas duplamente encadeadas. Lab. Programação
6 3/9 2 Projeto 2: um ordenador registros de pagamentos contidos em um arquivo. Algoritmo de ordenamento bubble sort ou insertion sort. Lab. Programação
7 6/9 2 Projeto 3: um simulador de sistemas de atendimento. Uso de estruturas de dados lista e fila. Implementação de operações de remoção de itens da lista. Lab. Programação
8 10/9 2 Projeto 3: definição de uma fila: comportamento e operações; implementação de uma fila usando uma lista encadeada ou um vetor (fila circular). Lab. Programação
9 13/9 2 Projeto 3: conclusão do projeto. Lab. Programação
10 17/9 2 Avaliação 1 Lab. Programação
11 20/9 2 Projeto 4: resolvendo expressões numéricas. Uso de pilhas. Definição de pilhas: comportamento e operações. Implementação de pilhas usando listas encadeadas e vetores. Lab. Programação
12 24/9 2 Projeto 4: implementação da pilha. Lab. Programação
13 27/9 2 Projeto 4: conclusão do projeto. Lab. Programação
14 1/10 2 Projeto 5: criando uma cache em um proxy HTTP. Uso de listas e tabelas hash. Lab. Programação
15 4/10 2 Projeto 5: Implementação da tabela hash. Funções hash e o indexador de objetos armazenados na cache do proxy HTTP. Lab. Programação
16 8/10 2 Projeto 5: implementação da tabela hash e tratamento de colisões. Lab. Programação
17 11/10 2 Projeto 5: implementação da tabela hash e sua integração ao proxy HTTP. Lab. Programação
18 15/10 2 Projeto 5: implementação da tabela hash e sua integração ao proxy HTTP. Lab. Programação
19 18/10 2 Projeto 5: implementação da tabela hash e sua integração ao proxy HTTP. Lab. Programação
20 22/10 2 Projeto 5: implementação da tabela hash e sua integração ao proxy HTTP. Conclusão do projeto. Lab. Programação
21 25/10 2 Avaliação 2 Lab. Programação
22 29/10 2 Projeto 6: um indexador de arquivos existentes em um computador. Uso de árvores binárias. Lab. Programação
23 1/11 2 Projeto 6: Árvores binárias: definição e operações. Implementação de árvore binária. Lab. Programação
24 5/11 2 Projeto 6: Implementação de árvore binária. Lab. Programação
25 8/11 2 Projeto 6: Implementação de árvore binária. Lab. Programação
26 12/11 2 Projeto 6: fazendo buscas na árvore: busca em profundidade Lab. Programação
27 19/11 2 Projeto 6: fazendo buscas na árvore: busca em profundidade ou em largura Lab. Programação
28 22/11 2 Projeto 6: fazendo buscas na árvore: busca em em largura Lab. Programação
29 23/11 2 Projeto 6: concluindo a primeira versão do indexador, e usando-o para pesquisar arquivos em disco. Lab. Programação
30 26/11 2 Projeto 6: aperfeiçoando o indexador com árvores balanceadas. Lab. Programação
31 29/11 2 Projeto 6: aperfeiçoando o indexador com árvores balanceadas. Lab. Programação
32 3/12 2 Projeto 6: aperfeiçoando o indexador com árvores balanceadas. Lab. Programação
33 6/12 2 Projeto 6: usando o indexador para listar os arquivos de forma ordenada. Lab. Programação
34 10/12 2 Projeto 6: usando o indexador para listar os arquivos de forma ordenada. Lab. Programação
35 13/12 2 Projeto 6: conclusão Lab. Programação
36 17/12 2 Avaliação 3 Lab. Programação
TOTAL 72
Semestre 2013-1 - Prof. Marcelo Maia Sobral
Aula Data Horas Conteúdo Recursos
1 1/4 2 Apresentação e introdução ao projeto 1: extrator de palavras de um arquivo; introdução a listas encadeadas
2 5/4 2 Projeto 1: definição de uma lista encadeada simples: operações da lista, modelagem dos dados; revisão sobre alocação dinâmica de memória e uso de ponteiros
3 8/4 2 Projeto 1: Implementação das operações da lista encadeada: criação da lista e adição de itens.
4 12/4 2 Projeto 1: Implementação das operações da lista encadeada: criação da lista e adição de itens. Conclusão do projeto 1.
5 15/4 2 Projeto 2: um ordenador alfabético de palavras contidas em um arquivo. Algoritmo de ordenamento bubble sort. Listas duplamente encadeadas.
6 19/4 2 Projeto 2: um ordenador alfabético de palavras contidas em um arquivo. Algoritmo de ordenamento bubble sort ou list sort.
7 22/4 2 Projeto 3: um simulador de sistemas de atendimento. Uso de estruturas de dados lista e fila. Implementação de operações de remoção de itens da lista.
8 26/4 2 Projeto 3: definição de uma fila: comportamento e operações; implementação de uma fila usando uma lista encadeada ou um vetor (fila circular).
9 29/4 2 Projeto 3: conclusão do projeto.
10 3/5 2 Avaliação 1
11 4/5 2 Projeto 4: saindo de um labirinto. Uso de pilhas e listas. Definição de pilhas: comportamento e operações. Implementação de pilhas usando listas encadeadas e vetores.
12 6/5 2 Projeto 4: implementação da pilha.
13 10/5 2 Projeto 4: conclusão do projeto.
14 11/5 2 Considerações finais: estudos de caso: filas em roteadores, listas de processos em sistemas operacionais.
15 13/5 2 Projeto 5: criando uma cache em um proxy HTTP. Uso de listas e tabelas hash.
16 17/5 2 Projeto 5: Implementação da tabela hash. Funções hash e o indexador de objetos armazenados na cache do proxy HTTP.
17 20/5 2 Projeto 5: implementação da tabela hash e tratamento de colisões.
18 24/5 2 Projeto 5: implementação da tabela hash e sua integração ao proxy HTTP.
19 27/5 2 Projeto 5: implementação da tabela hash e sua integração ao proxy HTTP.
20 3/6 2 Projeto 5: implementação da tabela hash e sua integração ao proxy HTTP. Conclusão do projeto.
21 7/6 2 Avaliação 2
22 8/6 2 Projeto 6: um indexador de arquivos existentes em um computador. Uso de árvores binárias.
23 10/6 2 Projeto 6: Árvores binárias: definição e operações. Implementação de árvore binária.
24 14/6 2 Projeto 6: Implementação de árvore binária.
25 17/6 2 Projeto 6: Implementação de árvore binária.
26 21/6 2 Projeto 6: fazendo buscas na árvore: busca em profundidade
27 24/6 2 Projeto 6: fazendo buscas na árvore: busca em profundidade ou em largura
28 28/6 2 Projeto 6: fazendo buscas na árvore: busca em em largura
29 1/7 2 Projeto 6: concluindo a primeira versão do indexador, e usando-o para pesquisar arquivos em disco.
30 5/7 2 Projeto 6: aperfeiçoando o indexador com árvores balanceadas.
31 6/7 2 Projeto 6: aperfeiçoando o indexador com árvores balanceadas.
32 8/7 2 Projeto 6: aperfeiçoando o indexador com árvores balanceadas.
33 12/7 2 Projeto 6: usando o indexador para listar os arquivos de forma ordenada.
34 15/7 2 Projeto 6: usando o indexador para listar os arquivos de forma ordenada.
35 19/7 2 Projeto 6: conclusão
36 22/7 2 Avaliação 3
37 26/7 2 Recuperação
TOTAL 74