1. Disciplina: Estrutura de Dados
Carga horária: 72 horas
Ementa:
Estruturas naturais, listas encadeadas, filas, listas, pilhas, árvores, árvores
balanceadas, algoritmos para manipulação de estruturas, Métodos de
ordenação e busca de dados.
Objetivos Gerais:
Ao final da disciplina, o aluno deverá ser capaz de:
Compreender os conceitos básicos de estruturas de dados e sua importância
na resolução de problemas computacionais.
Identificar as principais estruturas de dados e suas características.
Conhecer os principais algoritmos para manipulação de estruturas de dados.
Compreender a importância dos métodos de ordenação e busca de dados.
Aplicar os conhecimentos adquiridos na resolução de problemas práticos.
Compreender os conceitos básicos de estruturas de dados e sua importância
na resolução de problemas computacionais, identificando as principais
estruturas de dados e suas características, conhecendo os principais
algoritmos para manipulação de estruturas de dados, preceberdendo a
importância dos métodos de ordenação e busca de dados.
Objetivos Específicos:
Ao final da disciplina, o aluno deverá ser capaz de:
Identificar e aplicar as estruturas naturais e suas características.
Implementar e manipular listas encadeadas, filas e pilhas.
Implementar e manipular árvores e árvores balanceadas.
Aplicar algoritmos para manipulação de estruturas de dados.
Conhecer e aplicar métodos de ordenação e busca de dados.
Conteúdo Programático:
2. Introdução às estruturas de dados
1.1. Definição de estruturas de dados e sua importância na resolução de
problemas computacionais.
1.2. Histórico das estruturas de dados.
1.3. Representação de dados em computadores.
Estruturas de dados básicas
2.1. Estruturas naturais.
2.2. Listas encadeadas.
2.3. Filas.
2.4. Pilhas.
Árvores
3.1. Árvores binárias.
3.2. Árvores de busca binárias.
3.3. Árvores balanceadas.
Algoritmos para manipulação de estruturas
4.1. Inserção, busca e remoção em estruturas de dados.
4.2. Algoritmos de ordenação de dados.
Métodos de ordenação e busca de dados
5.1. Algoritmos de busca sequencial e binária.
5.2. Algoritmos de ordenação por seleção, inserção, fusão e rápida.
Trabalho prático
6.1. Aplicação dos conceitos aprendidos na resolução de problemas práticos.
Metodologia:
Aulas expositivas, resolução de exercícios, atividades práticas individuais e em
grupo.
3. Avaliação:
A avaliação será realizada por meio de provas, trabalhos individuais e em
grupo, apresentação do trabalho prático e participação em sala de aula.
Referências Bibliográficas:
GONNET, Gaston H.; BAEZA-YATES, Ricardo. Handbook of Algorithms and
Data Structures. 2ª ed. Addison-Wesley, 1991.
KNUTH, Donald E. The Art of Computer Programming, Volume 1: Fundamental
Algorithms. 3ª ed. Addison-Wesley, 1997.
SEDGEWICK, Robert. Algorithms. 4ª ed. Addison-Wesley, 2011.
4. Plano de aula detalhado para Estrutura de Dados seguindo BNCC, para 18
encontros.
Objetivos Gerais:
Compreender os conceitos fundamentais das estruturas de dados e a
sua importância no desenvolvimento de algoritmos eficientes;
Identificar as principais estruturas de dados e suas aplicações;
Conhecer os algoritmos clássicos de manipulação de estruturas de
dados;
Compreender as técnicas de análise de complexidade de algoritmos.
Objetivos Específicos:
1. Conceitos Fundamentais de Estruturas de Dados
Definir o conceito de estrutura de dados;
Compreender a importância do uso de estruturas de dados para a
otimização de algoritmos;
Identificar os tipos de dados básicos utilizados na programação.
2. Listas Encadeadas
Definir o conceito de lista encadeada;
Implementar uma lista encadeada em uma linguagem de
programação;
Realizar operações básicas em uma lista encadeada (inserção,
remoção e busca);
Identificar aplicações das listas encadeadas.
3. Filas e Pilhas
Definir o conceito de fila e pilha;
Implementar uma fila e uma pilha em uma linguagem de
programação;
Realizar operações básicas em uma fila e uma pilha (inserção,
remoção e busca);
Identificar aplicações das filas e pilhas.
4. Listas
5. Definir o conceito de lista;
Implementar uma lista em uma linguagem de programação;
Realizar operações básicas em uma lista (inserção, remoção e
busca);
Identificar aplicações das listas.
5. Árvores
Definir o conceito de árvore;
Implementar uma árvore em uma linguagem de programação;
Realizar operações básicas em uma árvore (inserção, remoção e
busca);
Identificar aplicações das árvores.
6. Árvores Balanceadas
Definir o conceito de árvore balanceada;
Implementar uma árvore balanceada em uma linguagem de
programação;
Realizar operações básicas em uma árvore balanceada (inserção,
remoção e busca);
Identificar aplicações das árvores balanceadas.
7. Algoritmos para Manipulação de Estruturas
Identificar os algoritmos de ordenação mais utilizados (Bubble Sort,
Quick Sort, Merge Sort, Heap Sort);
Identificar os algoritmos de busca mais utilizados (Busca linear,
Busca binária);
Implementar os algoritmos de ordenação e busca em uma linguagem
de programação.
8. Algoritmos para Manipulação de Estruturas (continuação)
• Implementar algoritmos de ordenação, tais como: Insertion Sort,
Selection Sort, Bubble Sort, Quick Sort e Merge Sort;
• Implementar algoritmos de busca, tais como: Busca Linear e Busca
Binária;
• Realizar análise de complexidade dos algoritmos implementados;
6. • Compreender como escolher o algoritmo de busca e ordenação
adequado para cada problema.
9. Métodos de Ordenação:
• Compreender os conceitos e as técnicas utilizadas nos principais
métodos de ordenação de dados;
• Implementar os principais métodos de ordenação, tais como:
Insertion Sort, Selection Sort, Bubble Sort, Quick Sort, Merge Sort e
Heap Sort;
• Realizar análise de complexidade dos algoritmos implementados;
• Compreender como escolher o método de ordenação adequado para
cada tipo de problema.
10.Métodos de Busca:
• Compreender os conceitos e as técnicas utilizadas nos principais
métodos de busca de dados;
• Implementar os principais métodos de busca, tais como: Busca
Linear, Busca Binária, Árvores de Busca Binária e Árvores AVL;
• Realizar análise de complexidade dos algoritmos implementados;
• Compreender como escolher o método de busca adequado para
cada tipo de problema.
11.Aplicações de Estruturas de Dados:
• Compreender como as estruturas de dados podem ser utilizadas em
algoritmos de busca e ordenação;
• Compreender como as estruturas de dados podem ser utilizadas em
algoritmos de processamento de texto;
• Compreender como as estruturas de dados podem ser utilizadas em
algoritmos de gráficos.
12.Projeto Prático:
• Desenvolver um projeto prático envolvendo a aplicação de estruturas
de dados para a solução de problemas computacionais.
13.Projeto Prático (continuação):
• Continuação do projeto prático.
7. 14.Avaliação Final:
• Apresentação dos projetos desenvolvidos pelos alunos;
• Avaliação do desempenho dos alunos durante o curso.
Aula Duração Tópicos
1 4 horas
Introdução: conceito e importância das estruturas de dados; tipos de dados
básicos; estruturas naturais
2 4 horas
Listas Encadeadas: conceito e estrutura; implementação; operações
básicas (inserção, remoção, busca); aplicações
3 4 horas
Filas e Pilhas: conceito e estrutura; implementação; operações básicas
(inserção, remoção, busca); aplicações
4 4 horas
Listas: conceito e estrutura; implementação; operações básicas (inserção,
remoção, busca); aplicações
5 4 horas
Árvores: conceito e estrutura; implementação; operações básicas (inserção,
remoção, busca); aplicações
6 4 horas
Árvores Balanceadas: conceito e estrutura; implementação; operações
básicas (inserção, remoção, busca); aplicações
7 4 horas Avaliação M1
8 4 horas
Algoritmos para Manipulação de Estruturas: algoritmos de ordenação
(Bubble Sort, Quick Sort, Merge Sort, Heap Sort); algoritmos de busca
(Busca linear, Busca binária)
9 4 horas
Algoritmos para Manipulação de Estruturas (continuação): algoritmos de
ordenação (Insertion Sort, Selection Sort, Bubble Sort, Quick Sort, Merge
Sort); algoritmos de busca (Busca Linear, Busca Binária); análise de
complexidade de algoritmos
10 4 horas
Métodos de Ordenação: Insertion Sort, Selection Sort, Bubble Sort, Quick
Sort, Merge Sort, Heap Sort
11 4 horas
Métodos de Busca: Busca Linear, Busca Binária, Árvores de Busca Binária,
Árvores AVL
12 4 horas Aplicações de Estruturas de Dados: uso em algoritmos de busca e
ordenação; uso em algoritmos de processamento de texto; uso em
8. Aula Duração Tópicos
algoritmos de gráficos
13 4 horas Avaliação M2
14 4 horas
Projeto Prático: desenvolvimento de um projeto prático envolvendo a
aplicação de estruturas de dados para a solução de problemas
computacionais
15 4 horas Projeto Prático (continuação):
16 4 horas Projeto Prático (continuação):
17 4 horas Projeto Prático (continuação):
18 4 horas
Avaliação Final: apresentação dos projetos desenvolvidos pelos alunos;
avaliação do desempenho dos alunos durante o curso.
Detalhamento das Aulas:
Aula 1 - Introdução às Estruturas de Dados
• Definição e importância das estruturas de dados;
• Tipos de dados básicos;
• Estruturas naturais.
Aula 2 - Listas Encadeadas
• Conceito e estrutura das listas encadeadas;
• Implementação;
• Operações básicas (inserção, remoção, busca);
• Aplicações.
Aula 3 - Filas e Pilhas
• Conceito e estrutura das filas e pilhas;
• Implementação;
• Operações básicas (inserção, remoção, busca);
• Aplicações.
9. Aula 4 - Listas
• Conceito e estrutura das listas;
• Implementação;
• Operações básicas (inserção, remoção, busca);
• Aplicações.
Aula 5 - Árvores
• Conceito e estrutura das árvores;
• Implementação;
• Operações básicas (inserção, remoção, busca);
• Aplicações.
Aula 6 - Árvores Balanceadas
• Conceito e estrutura das árvores balanceadas;
• Implementação;
• Operações básicas (inserção, remoção, busca);
• Aplicações.
Aula 7 – Avaliação M1
Aula 8 e 9 - Algoritmos para Manipulação de Estruturas
• Algoritmos de ordenação (Bubble Sort, Quick Sort, Merge Sort, Heap
Sort);
• Algoritmos de busca (Busca linear, Busca binária);
• Análise de complexidade de algoritmos.
Aula 10 - Métodos de Ordenação
• Insertion Sort, Selection Sort, Bubble Sort, Quick Sort, Merge Sort,
Heap Sort.
Aula 11 - Métodos de Busca
• Busca Linear, Busca Binária, Árvores de Busca Binária, Árvores AVL.
Aula 12 - Aplicações de Estruturas de Dados
• Uso em algoritmos de busca e ordenação;
10. • Uso em algoritmos de processamento de texto;
• Uso em algoritmos de gráficos.
Aula 13 - Avaliação M2
Aula 14, 15 16 e 17 - Projeto Prático
• Desenvolvimento de um projeto prático envolvendo a aplicação de
estruturas de dados para a solução de problemas computacionais.
Aula 18 – Apresentação do Trabalho Prático
• Apresentação dos projetos desenvolvidos pelos alunos;
Recursos Didáticos:
Quadro branco ou lousa;
Projetor multimídia;
Computador;
Internet;
Softwares de apoio ao ensino de Engenharia de Software;
Livros e apostilas sobre o tema.
Avaliação:
Provas escritas;
Exercícios práticos de aplicação dos conceitos;
Participação em aula.
Referências Bibliográficas
ALMEIDA, Maurício de. Estruturas de Dados e Algoritmos. 3 ed. São
Paulo: Editora Novatec, 2018. FORBELLONE, André Luiz Villar.
Estrutura de Dados. 2 ed. São Paulo: Editora Pearson, 2017.