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
ATENÇÃO! Professor no início do semestre colar aqui o conteúdo da aba PE-Wiki do Diário Eletrônico
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.