Plano de Ensino CURSO: ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA: ESTRUTURAS DE DADOS Matriz Curricular Criação: 2009-1 Atualização: 2015-2 Carga Horária 80 H/A EMENTA Funções. Passagem de parâmetros. Recursividade. Estruturas. Algoritmos de ordenação e busca. Ponteiros. Tipos abstratos de dados (TADs), Pilhas, Filas, Listas lineares, Listas encadeadas. Hashing, Árvores de pesquisa, Árvores binárias, Árvores AVL (balanceadas) e Árvores vermelho-preto. OBJETIVOS Conhecimentos Genéricos: Habilitar o aluno a resolver problemas computacionais estruturados, elaborando programas com a utilização de estruturas de dados genéricas fundamentais, tais como filas, pilhas, listas encadeadas. Iniciar os conceitos primordiais em Java. Aprofundar a técnica de programação, enfatizando conceitos de estrutura de dados Conhecimentos Específicos: Compreender os conceitos básicos de algoritmos como laços de repetição, estrutura de decisão, classes, conceitos de fila, pilha, array, recursividade, busca binária, sequencial e recursiva. Compreender os principais algoritmos de pesquisa e ordenação. Manipular estruturas de dados com emprego de algoritmos e métodos de pesquisa e ordenação. Compreender os conceitos básicos de orientação a objetos. Habilidades (Saber fazer): Compreender a lógica de programação e a linguagem java. Saber selecionar e construir estruturas de dados adequadas para aplicações específicas, bem como modelar estas aplicações utilizando recursos de recursão e técnicas com emprego de alocação de memória. Plano de Ensino Saber comparar estruturas de dados através da adequação ao problema. Bases Tecnológicas: Algoritmos Fila, pilha, array Recursividade Busca binária, sequencial e recursiva CONTEÚDO PROGRAMÁTICO 1. Revisão de Algoritmos e Implementações 1.1 Esqueleto de um código java 1.2 Declarando variáveis 1.3 Operadores de Atribuição 1.4 Operadores Aritméticos 1.5 Incrementar 1.6 Operadores Lógicos e Relacionais 1.7 Condicionais (if, else, if-else) 1.8 Switch 1.9 Laço de Repetição 2. Estrutura de Dados 2.1 Armazenamento sequencial 2.2 Array: instanciar, popular, percorrer e exibir 2.3 Conceitos de Pilha 2.4 Conceitos de Fila 3. Introdução a Orientação a Objetos (Classes estáticas e Métodos) 4. Algoritmos de Ordenação Plano de Ensino 4.1 Conceitos do BubbleSort e ShellSort 4.2 Conceitos do SelectSort e InsertSort 4.3 Conceitos do MergeSort, HeapSort, QuickSort 5. Algoritmos de Pesquisa 5.1 Busca Sequencial 5.2 Busca Binária 5.3 Recursividade 5.4 Busca Binária e Sequencial com Recursividade METODOLOGIA DE AULA E AVALIAÇÃO Metodologia de Aula: As aulas serão expositivas e dialogadas, explorando a interação entre docente e discente através de atividades em laboratório. As primeiras aulas serão introdutórias ao Java. As aulas seguintes serão a respeito de estrutura de dados. Em cada aula será desenvolvido uma parte do projeto proposto. O mesmo será apresentado na última aula. Metodologia de Avaliação: Será composta por: (1) Avaliações Continuadas [0 a 3,0 pontos] e, (2) Avaliação Regimental. [0 a 7,0 pontos]. A Avaliação Continuada será composta por: Prova P1 (individual) .......................................................... 1,0 ponto Prova P2 (individual) .......................................................... 1,0 ponto Projeto (individual ou em dupla) ...................................... 1,0 ponto Semana Conteúdo Previsto Habilidades Trabalhadas Recursos Bibliografia Plano de Ensino 1 2 3 4 Utilizados 3,4,5 1 Lógica de Programação 3,4,5 1 Lógica de Programação 3,4,5 1 Lógica de Programação 3,4,5 1 Lógica de Programação 3,4,5 1 Conhecer as principais estrutura de dados e sua aplicação Conhecer as principais estrutura de dados e sua aplicação 3,4,5 1,2,3 3,4,5 1,2,3 Apresentação do Plano de Ensino da disciplina: Ementa, Integração Objetivos, Conteúdo Programático, Critério de Avaliação e Bibliografias. Lógica de Programação Integração dos Alunos: - Apresentação da disciplina (Ementa, Objetivos, Metodologia, Bibliografia, Plano de Ensino) e do professor - Apresentação da Metodologia de avaliação e de verificação de presenças 1. Revisão de Algoritmos e Implementações 1.1 Esqueleto de um código java 1.2 Declarando variáveis 1.3 Operadores de Atribuição 1.4 Operadores Aritméticos 1.5 Incrementar 1.6 Operadores Lógicos e Relacionais 1.7 Condicionais (if, else, if-else) 1.8 Switch 1.9 Laços de Repetição (for, while, do-while) 5 6 7 8 Apresentação do Trabalho a ser desenvolvido 2. Estrutura de Dados 2.1 Armazenamento sequencial 2.2 Array: instanciar, popular, percorrer e exibir 2.3 Conceitos de Pilha 2.4 Conceitos de Fila 1ª Avaliação Continuada Plano de Ensino 9 3. Introdução a Orientação a Objetos (Classes estáticas e Métodos) 10 4. Algoritmos de Ordenação 4.1 Conceitos do BubbleSort e ShellSort 4.2 Conceitos do SelectSort e InsertSort 11 4.3 Conceitos do MergeSort, HeapSort, QuickSort 12 13 14 15 16 17 18 19 20 5. Algoritmos de Pesquisa 5.1 Busca Sequencial 5.2 Busca Binária 5.3 Recursividade 5.4 Busca Binária e Sequencial com Recursividade Compreender os conceitos básicos de orientação a objetos Conhecer os principais algoritmos de ordenação e sua aplicação Conhecer os principais algoritmos de ordenação e sua aplicação Conhecer os principais algoritmos de ordenação e sua aplicação Conhecer os principais algoritmos de pesquisa e sua aplicação Conhecer os principais algoritmos de pesquisa e sua aplicação 3,4,5 1,2,3 3,4,5 1,2,3 3,4,5 1,2,3 3,4,5 1,2,3 3,4,5 1,2,3 3,4,5 1,2,3 2ª Avaliação Continuada Apresentação dos trabalhos 3,4,5 Revisão de todo conteúdo para Regimental 3,4,5 Avaliação Regimental Vista da Avaliação Regimental e Segunda Chamada Reavaliação Plano de Ensino BIBLIOGRAFIA BÁSICA 1 2 3 DEITEL, PAUL J. Java: como programar. Tradução Edson Furmankiewicz. 8. ed. São Paulo: Pearson, 2012. PEREIRA, Silvio do Lago. Estruturas de Dados Fundamentais – Conceitos e Aplicações. 7.ed. São Paulo: Érica, 2008. MORAES, Celso Roberto. Estruturas de Dados e Algoritmos. Uma abordagem didática. Edição revista e Ampliada. São Paulo: Editora Futura, 2003. BIBLIOGRAFIA COMPLEMENTAR 1 2 3 4 5 SZWARCFITER, Jayme Luiz; MARKENZON, Lilian. Estruturas de dados e seus algoritmos. Rio de Janeiro: L.T.C., 1994 DASGUPTA, Sanjoy; UMESH, Vazirani, PAPADIMITRIOU Christos, Algoritmos. 1ª Edição. São Paulo: McGraw-Hill, 2009. WIRTH, Niklaus. Algoritmos e estruturas de dados. Rio de Janeiro: LTC, 2009. KOFFMANN, E.B. Objetos, Abstração, Estrutura de Dados e Projetos. 1ª Ed. Rio de Janeiro: LTC, 2008. LAUREANO, M. Estrutura de Dados com Algoritmos e C. 1ª Ed. São Paulo: Brasport, 2008. RECURSOS DIDÁTICOS 1 TV/VÍDEO/DVD 4 LABORATÓRIO 2 QUADRO 5 AULA EXPOSITIVA Plano de Ensino 3 DATASHOW Professor Responsável: ARIEL DA SILVA DIAS Outros professores: Data e Assinatura Observações 6