BC1424 - Algoritmos e Estruturas de Dados I - Bac. Ciência da Computação (1º quad./2013)

Horários: 3a-feira das 19h às 21h (turma 1 prática) ou das 21h às 23h (turma 2 prática) e 5a-feira, das 21h às 23h (teoria)

Local: S. 311-2 (teórica); Lab. 409-2 (prática)


Critério de avaliação

  1. 1 prova P1 valendo 35% da nota da disciplina;
  2. 1 prova P2 valendo 35% da nota da disciplina;
  3. exercícios em laboratório valendo 30% da nota da disciplina.

Classificação de conceitos

A ≥ 8,5; B ≥ 7,0; C ≥ 5,5; D ≥ 4,5.


Recomendação

Processamento da Informação


Programa resumido

Introdução à linguagem C. Noções básicas sobre análise da complexidade de tempo de algoritmos. Estruturas de dados básicas: listas encadeadas, pilhas, filas e árvores. Busca e ordenação. Árvores de busca.


Bibliografia

Cormen T. H et al., "Algoritmos: Teoria e Prática". Rio de Janeiro: Editora Campus, 2ª edição, 2002.

Knuth D.E. "The Art of Computer Programming". vols. 1 e 3, Addison-Wesley, 1973.

Szwarcfiter, L. Markezon, "Estruturas de Dados e seus Algoritmos". Livros Técnicos e Científicos, 1994.

Ziviani N. "Projeto de Algoritmos com implementação em Pascal e C". São Paulo: Editora Thomson, 2ª edição, 2009.

Feofiloff P. "Algoritmos em Linguagem C". Editora Campus/Elsevier, 2009.


Bibliografia Complementar

Rodrigues P., Pereira P., Sousa M., "Programação em C++: Algoritmos e Estruturas de Dados" , FCA Editora de Informática, 2000.

Sedgewick, R. "Algorithms in C++" (Parts 1-4), Addison-Wesley, 3ª edição, 1998.

Tenenbaum, A. M., Langsam Y., Augenstein M. J. "Estruturas de Dados Usando C". Editora Pearson Makron Books

Drozdek Adam. "Estrutura de dados e Algoritmos em C++". Thomson Learning, 2002.

Jaime Evaristo. "Aprendendo a Programar Programando na Linguagem C - Para Iniciantes". Disponível em: http://professor.ic.ufal.br/jaime/


Datas Importantes

06/06: prova P1

04/07: prova P2

11/07: prova substitutiva (apenas para quem perdeu a P1 ou P2 com falta justificada)

16/07: vista de prova e pedido de revisão mediante agendamento por email


Planejamento e Materiais

Calendário Acadêmico

TIDIA: AED1-2013.1-Leticia

Monitoria: às terças-feiras, das 18h às 19h, no L. 409-2

Data Assunto
23/04: Aula prática. Apresentação da disciplina e introdução à linguagem C++
25/04: Aula teórica. Recursividade
Exemplos de Recursividade: Fatorial       Fibonacci
Introdução a Complexidade de Algoritmos
Listas Lineares Estáticas (seqüenciais)
Métodos de busca (sequencial e binária)
30/04: Aula prática. Exercícios práticos sobre recursividade, listas lineares estáticas e métodos de busca. Roteiro de aula       Exemplo do uso de malloc       Exemplo de função com e sem retorno
02/05: Aula teórica. Listas Lineares Dinâmicas (encadeadas). Códigos: Passagem de parâmetros por referência
Lista em alocação estática       Lista encadeada       Busca binária recursiva
07/05: Aula prática. Exercícios práticos sobre ponteiros, recursividade, listas lineares dinâmicas        Atividade       Resolução do exercício (e exemplo de lista duplamente encadeada)
09/05: Aula teórica. Listas Lineares Dinâmicas (encadeadas)       Lista de exercícios de ponteiros
14/05: Aula prática. Exercícios práticos sobre ponteiros, recursividade, listas lineares dinâmicas       Atividade
16/05: Aula teórica. Listas Lineares Dinâmicas (encadeadas)
21/05: Aula prática. Exercícios práticos sobre ponteiros, recursividade, listas lineares dinâmicas
23/05: Aula teórica. Métodos simples de ordenação (Bubble, Insertion, Selection)
28/05: Aula prática. Exercícios práticos sobre listas estáticas
30/05: Aula teórica. FERIADO CORPUS CHRISTI
04/06: Aula prática. Exercícios práticos sobre ordenação quadrática
06/06: Aula teórica. Prova P1       Gabarito       Notas
11/06: Aula prática. Exercícios práticos sobre ordenação quadrática
13/06: Aula teórica. Métodos eficientes de ordenação (Mergesort, Heapsort)
18/06: Aula prática. Exercícios práticos sobre ordenação eficiente
20/06: Aula teórica. Métodos eficientes de ordenação: Quicksort
25/06: Aula prática. Exercícios práticos sobre ordenação eficiente: projeto
27/06: Aula teórica. Árvores Binárias de Busca
02/07: Aula prática. Exercícios práticos sobre árvores
04/07: Aula teórica. Prova P2       Lista de Exercícios       Notas
09/07: Aula prática. FERIADO REVOLUÇÃO CONSTITUCIONALISTA
11/07: Aula teórica. Prova substitutiva (para quem perdeu a P1 ou P2 com falta justificada)
16/07: Aula prática. Lançamento de Notas       Notas
Vista de Prova e Pedido de Revisão (mediante agendamento por email)