1. CÓDIGO E NOME DA DISCIPLINA BC1424 - ALGORÍTMOS E...

4

Click here to load reader

Transcript of 1. CÓDIGO E NOME DA DISCIPLINA BC1424 - ALGORÍTMOS E...

Page 1: 1. CÓDIGO E NOME DA DISCIPLINA BC1424 - ALGORÍTMOS E ...bcc.ufabc.edu.br/popup/ementas/BC1424.pdf · - Ponteiros - Passagem de parâmetros - Alocação dinâmica de memória ...

Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil

CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166

1. CÓDIGO E NOME DA DISCIPLINA BC1424 - ALGORÍTMOS E ESTRUTURA DE DADOS I

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) Processamento da Informação

3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória

4. CURSO BACHARELADO EM CIÊNCIA E TECNOLOGIA

5. CRÉDITOS TPI: 2-2-4

6. TRIMESTRE IDEAL

6 7. NÍVEL

Graduação

8. Nº. MÁXIMO DE ALUNOS POR TURMA

TEORIA: 60 LABORATÓRIO: 30

9. OBJETIVOS

Apresentar as diversas estruturas de dados fundamentais, como estruturas lineares (listas encadeadas, pilhas, filas, etc.), estruturas não-lineares (árvores), os algoritmos básicos para a sua manipulação, assim como as suas aplicações.

Introduzir noções básicas de complexidade de algoritmos e técnicas básicas para comparação dos tempos de execução dos algoritmos estudados.

Apresentar a importância da escolha da estrutura de dados e algoritmos adequados para a resolução de problemas de maneira eficiente.

10. COMPETÊNCIAS A disciplina deve permitir que o aluno seja capaz de:

Compreender as diversas estruturas de dados bem conhecidas, sua manipulação e suas aplicações.

Implementar as estruturas de dados e os algoritmos para a sua manipulação na linguagem de programação C.

Selecionar e aplicar as estruturas de dados e algoritmos para resolver problemas computacionais.

11. PROGRAMA RESUMIDO Introdução à linguagem C. Noções básicas sobre análise da complexidade de tempo de algoritmos. Estruturas lineares: listas encadeadas, pilhas, filas, listas circulares, listas duplamente encadeadas. Fila de Prioridades. Busca e ordenação. Árvores. Árvores binárias de busca. Árvores balanceadas.

12. PROGRAMA 1. Introdução à linguagem C

- Conceitos básicos (variáveis, tipos de dados, constantes, I/O, etc.) - Estruturas de controle - Funções - Ponteiros - Passagem de parâmetros - Alocação dinâmica de memória - Arquivos - Tipo Abstrato de Dados (TAD)

2. Noções básicas de Complexidade de Algoritmos

Page 2: 1. CÓDIGO E NOME DA DISCIPLINA BC1424 - ALGORÍTMOS E ...bcc.ufabc.edu.br/popup/ementas/BC1424.pdf · - Ponteiros - Passagem de parâmetros - Alocação dinâmica de memória ...

3. Recursividade 4. Estruturas lineares

- Listas ligadas simples - Operações com listas (inserção, remoção, percurso, etc.) - Implementação de listas com alocação estática e dinâmica - Listas Circulares - Lista Duplamente ligadas - Pilhas - Filas

5. Fila de Prioridades 6. Algoritmos de ordenação/classificação em estruturas lineares

- Ordenação por inserção - Ordenação por seleção - O algoritmo heapsort - Ordenação por intercalação (Mergesort) - O algoritmo Quicksort - Comparação dos métodos e análise da complexidade

7. Algoritmos de busca/pesquisa em estruturas lineares - Pesquisa sequencial - Pesquisa binária - Tabelas de dispersão (hashing)

8. Árvores - Conceitos e terminologia - Árvores binárias

- Conceitos e implementação de árvores binárias - Operações sobre árvores: busca, inserção e remoção - Percurso (atravessamento) em árvores binárias: percurso em extensão e percurso em profundidade - Árvores balanceadas - Árvores genéricas

- Árvores genéricas - Família de árvores B: B, B*, B+, R, tries - Implementação de árvore B

- Árvores digitais - Árvores digitais - Árvores PATRICIA

13. MÉTODOS UTILIZADOS Aulas teóricas expositivas, com a utilização de recursos audiovisuais (slides) e lousa. Aulas práticas em laboratório através da implementação em computador de exercícios relacionados aos tópicos vistos em sala de aula.

14. ATIVIDADES DISCENTES Estudo individual a partir das notas de aula e referências bibliográficas, resolução de listas de exercícios para fixação de conteúdo, resolução de exercícios em aulas práticas de laboratório, trabalhos extra-classe (implementação de exercícios-programa) individuais ou em grupos e provas escritas.

15. CARGA HORÁRIA AULAS TEÓRICAS: 24h AULAS PRÁTICAS: 24h

TOTAL: 48h

RECOMENDADO PARA DEDICAÇÃO INDIVIDUAL 4 horas/semana

16. CRITÉRIOS DE AVALIAÇÃO DE APRENDIZAGEM O conceito será atribuído da seguinte forma: 70% do aproveitamento correspondendo às provas escritas e 30% correspondendo às demais atividades (exercícios em laboratório e exercícios-

Page 3: 1. CÓDIGO E NOME DA DISCIPLINA BC1424 - ALGORÍTMOS E ...bcc.ufabc.edu.br/popup/ementas/BC1424.pdf · - Ponteiros - Passagem de parâmetros - Alocação dinâmica de memória ...

programa).

17. NORMAS DE RECUPERAÇÃO (CRITÉRIOS DE APROVAÇÃO E ÉPOCAS DE REALIZAÇÃO DAS PROVAS OU TRABALHOS) As notas serão dadas por conceito, conforme estabelecido pelas normas internas da UFABC. O critério de avaliação será determinado pelo docente.

18. BIBLIOGRAFIA RECOMENDADA BIBLIOGRAFIA BÁSICA: 1. Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L., “Algoritmos: Teoria e Prática”, 2ª

edição, Editora Campus, 2002. 2. Szwarcfiter, Jayme Luiz; Markezon, Lilian. Estruturas de dados e seus algoritmos. 3ª edição,

Editora LTC, 2010. 3. Ziviani, Nivio. “Projeto de Algoritmos com implementação em Java e C++”, 1ª edição , Editora

Thomson Pioneira, 2006. BIBLIOGRAFIA COMPLEMENTAR: 1. Tenenbaum, Aaron; Langsam, Yedidyah; Augenstein, Moshe J.. “Estruturas de Dados Usando

C”. 1ª edição, Editora Makron, 1995. 2. Sedgewick, Robert. “Algorithms in C++” (Parts 1-4), Editora Addison-Wesley, 3ª edição, 1999. 3. Knuth, Donald E. “The Art of Computer Programming”. vols. 1 e 3, Editora Addison-Wesley,

2005. 4. Drozdek, Adam. “Estrutura de dados e Algoritmos em C++”, 1ª edição, Editora Thomson

Pioneira, 2002. 5. Silva, Osmar Quirino da. “Estrutura de dados e algoritmos usando C: fundamentos e aplicações”.

1ª edição, Editora Ciência Moderna, 2007.

19. PLANO SUGERIDO PARA AS AULAS (em semanas letivas) Aula 1: Apresentação da disciplina. Aula 2: Introdução à linguagem C. Aula 3: Recursividade. Aula 4 (laboratório): Exercícios práticos envolvendo ponteiros, vetores, estruturas, recursividade. Aula 5: Introdução a Complexidade de Algoritmos. Listas Lineares Estáticas (seqüenciais). Aula 6 (laboratório): Exercícios práticos envolvendo listas lineares estáticas. Aula 7: Listas Lineares Dinâmicas (encadeadas simples). Alocação estática x Alocação dinâmica. Aula 8 (laboratório): Exercícios práticos envolvendo listas lineares dinâmicas. Aula 9: Outros tipos de listas lineares dinâmicas: com descritor, duplamente encadeadas, circulares, heterogêneas. Aula 10 (laboratório): Exercícios práticos envolvendo outros tipos de listas. Aula 11 (laboratório): Fila de Prioridades. Exercícios práticos. Aula 12: Prova 1. Aula 13: Ordenação I: métodos simples de ordenação (Bubble, Insertion, Selection). Aula 14: Ordenação II: métodos eficientes de ordenação (Mergesort, Quicksort, Heapsort). Aula 15 (laboratório): Exercícios práticos envolvendo métodos de ordenação. Aula 16: Métodos de busca (linear, binária). Aula 17: Árvores Binárias de Busca. Aula 18 (laboratório): Exercícios práticos envolvendo árvores. Aula 19: Árvores balanceadas: AVL. Aula 20 (laboratório): Exercícios práticos envolvendo árvores AVL Aula 21: Hashing. Aula 22 (laboratório): Exercícios práticos envolvendo Hashing. Aula 23: Prova 2.

Page 4: 1. CÓDIGO E NOME DA DISCIPLINA BC1424 - ALGORÍTMOS E ...bcc.ufabc.edu.br/popup/ementas/BC1424.pdf · - Ponteiros - Passagem de parâmetros - Alocação dinâmica de memória ...

Aula 24: Prova substitutiva.

20. PROFESSOR(A) RESPONSÁVEL Vera Nagamuta Luiz Carlos da Silva Rozante André Guilherme Ribeiro Balan Marcelo Zanchetta do Nascimento Maria Camila Nardini Barioni