SlideShare uma empresa Scribd logo
1 de 11
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:
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.
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.
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
 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;
• 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.
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
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.
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;
• 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.
Estrutura de dados.docx

Mais conteúdo relacionado

Semelhante a Estrutura de dados.docx

Logica programação
Logica programaçãoLogica programação
Logica programação
FIPA
 
Analise e projetos orientados a objetos
Analise e projetos orientados a objetosAnalise e projetos orientados a objetos
Analise e projetos orientados a objetos
Sliedesharessbarbosa
 
Sistemas Tutoriais
Sistemas TutoriaisSistemas Tutoriais
Sistemas Tutoriais
guest326723
 
Do Diagrama de Fluxo de Dados ao Use Case
Do Diagrama de Fluxo de Dados ao Use CaseDo Diagrama de Fluxo de Dados ao Use Case
Do Diagrama de Fluxo de Dados ao Use Case
Robson Silva Espig
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
ejdn1
 
Sistema da informacao
Sistema da informacaoSistema da informacao
Sistema da informacao
paulocsm
 
analise de projeto de sistema - curso técnico em informatica
analise de projeto de sistema - curso técnico em informaticaanalise de projeto de sistema - curso técnico em informatica
analise de projeto de sistema - curso técnico em informatica
RicaelSpirandeliRoch
 
Livro banco de_dados_volume_02
Livro banco de_dados_volume_02Livro banco de_dados_volume_02
Livro banco de_dados_volume_02
CLEAN LOURENÇO
 
Quali aula-analisede conteudo
Quali aula-analisede conteudoQuali aula-analisede conteudo
Quali aula-analisede conteudo
akinodiver
 

Semelhante a Estrutura de dados.docx (20)

Aula_01_-_Apresenta_o_e_Programa_da_Disciplina_2012-1.ppt
Aula_01_-_Apresenta_o_e_Programa_da_Disciplina_2012-1.pptAula_01_-_Apresenta_o_e_Programa_da_Disciplina_2012-1.ppt
Aula_01_-_Apresenta_o_e_Programa_da_Disciplina_2012-1.ppt
 
Logica programação
Logica programaçãoLogica programação
Logica programação
 
Apostila apsoo
Apostila apsooApostila apsoo
Apostila apsoo
 
Analise e projetos orientados a objetos
Analise e projetos orientados a objetosAnalise e projetos orientados a objetos
Analise e projetos orientados a objetos
 
57931578-TI-Analise-de-sistemas-Concursos.pdf
57931578-TI-Analise-de-sistemas-Concursos.pdf57931578-TI-Analise-de-sistemas-Concursos.pdf
57931578-TI-Analise-de-sistemas-Concursos.pdf
 
Sistemas Tutoriais
Sistemas TutoriaisSistemas Tutoriais
Sistemas Tutoriais
 
Sistemas Tutoriais
Sistemas TutoriaisSistemas Tutoriais
Sistemas Tutoriais
 
Do Diagrama de Fluxo de Dados ao Use Case
Do Diagrama de Fluxo de Dados ao Use CaseDo Diagrama de Fluxo de Dados ao Use Case
Do Diagrama de Fluxo de Dados ao Use Case
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
 
Sistema da informacao
Sistema da informacaoSistema da informacao
Sistema da informacao
 
Artc 1249307788 43
Artc 1249307788 43Artc 1249307788 43
Artc 1249307788 43
 
analise de projeto de sistema - curso técnico em informatica
analise de projeto de sistema - curso técnico em informaticaanalise de projeto de sistema - curso técnico em informatica
analise de projeto de sistema - curso técnico em informatica
 
Alterao ementa tii
Alterao ementa tiiAlterao ementa tii
Alterao ementa tii
 
Livro banco de_dados_volume_02
Livro banco de_dados_volume_02Livro banco de_dados_volume_02
Livro banco de_dados_volume_02
 
Teste
TesteTeste
Teste
 
01 banco de dados-basico
01 banco de dados-basico01 banco de dados-basico
01 banco de dados-basico
 
Quali aula-analisede conteudo
Quali aula-analisede conteudoQuali aula-analisede conteudo
Quali aula-analisede conteudo
 
Slide pim 3 redess
Slide pim 3 redessSlide pim 3 redess
Slide pim 3 redess
 
Cardsorting - Palestra (atualizada)
Cardsorting - Palestra (atualizada) Cardsorting - Palestra (atualizada)
Cardsorting - Palestra (atualizada)
 
Introdução à análise orientada a objetos parte 6
Introdução à análise orientada a objetos parte 6Introdução à análise orientada a objetos parte 6
Introdução à análise orientada a objetos parte 6
 

Último

Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 

Último (20)

E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
Caderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdfCaderno de exercícios Revisão para o ENEM (1).pdf
Caderno de exercícios Revisão para o ENEM (1).pdf
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
INTERTEXTUALIDADE atividade muito boa para
INTERTEXTUALIDADE   atividade muito boa paraINTERTEXTUALIDADE   atividade muito boa para
INTERTEXTUALIDADE atividade muito boa para
 
Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidade
 
Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 3 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
tensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptxtensoes-etnicas-na-europa-template-1.pptx
tensoes-etnicas-na-europa-template-1.pptx
 
Quiz | Dia da Europa 2024 (comemoração)
Quiz | Dia da Europa 2024  (comemoração)Quiz | Dia da Europa 2024  (comemoração)
Quiz | Dia da Europa 2024 (comemoração)
 

Estrutura de dados.docx

  • 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.