Você está na página 1de 3

Plano de Ensino - 2022/1º SEMESTRE

Curso: CIÊNCIA DA COMPUTAÇÃO (BACHARELADO) Disciplina: ESTRUTURAS DE DADOS I


3º SEMESTRE Graduação C/H Semestral: 60
PROFESSOR RESPONSÁVEL PROFESSOR EXECUTOR
Ms. Manuel Fernandes Paradela Ledon Ms. Manuel Fernandes Paradela Ledon

EMENTA
Estudo de estruturas de dados lineares fundamentais utilizadas no desenvolvimento de programas, bem como
problemas que envolvem a sua manipulação, utilização de linguagens e técnicas de programação, estudo de
algoritmos de buscas e métodos de ordenação em memória interna.

REQUISITOS
Não se aplica.

OBJETIVOS
Cognitivos - Conhecer algoritmos gerais de processamento de vetores.
- Estudar os princípios e algoritmos relacionados com as estruturas de dados
clássicas lineares.
- Reconhecer quais estruturas servem para a resolução de problemas particulares.
- Conhecer os principais métodos de ordenação e buscas.
Habilidades - Decidir a estrutura de dados adequada para resolver problemas computacionais.
- Implementar de forma eficiente, modular e reaproveitável os algoritmos em Java ou
outra linguagem de programação.
- Aprimorar o estilo de programação com a metodologia de modularização utilizada
para desenvolver as estruturas de dados.
- Decidir e implementar os métodos de ordenação e buscas adequados para resolver
problemas computacionais.
Atitudes - Reconhecer quais estruturas de dados clássicas são úteis para a resolução de
classes de problemas.
- Ser crítico em relação à eficiência das implementações apresentadas,
possibilitando assim a manipulação das estruturas de dados em casos particulares.
- Criar as habilidades para trabalhar em equipes.
- Respeitar e referenciar o trabalho de outros autores.

UNID. C/H CONTEÚDO


I 3 - Apresentação do Plano de Ensino, objetivos,
conteúdos, estratégias, avaliação e bibliografia;
Conceituação e contextualização da disciplina em
relação às diversas disciplinas do curso.
II 3 - Análise assintótica: Notação big-O, conceito de limite e
de tamanho do problema; Impacto de comparações, do
acesso a memória principal/secundária e operações
aritméticas no desempenho do código; Contagem
elementar de instruções.
III 3 - Algoritmos básicos com vetores: buscas sequenciais
e binária. Métodos canônicos: trocas e deslocamento
de regiões do vetor; Geração de vetores com dados
uniformemente distribuídos; Métodos de aleatorização
de vetores por permutação (algoritmo de Fisher-Yates).
IV 6 - Conceito de ordenação interna e externa; Métodos
Bubble Sort, Selection Sort, Insertion Sort e Shell Sort;
Análise de performance e aplicabilidade dos
algoritmos; Exercícios diversos com ordenação.
V 3 - Definição; Aplicações: algoritmos clássicos que
envolvem recursividade; Exercícios diversos.
VI 9 - Conceituação de partição e divisão e conquista; O
Quicksort e o Mergesort; Análise de performance e
aplicabilidade dos algoritmos; Exercícios diversos com
ordenação.
VII 3 - Conceitos de Tipos Abstratos de Dados (TAD);
Mudança do estado de estruturas: pré-condições, pós-
condições, predicados, invariantes; Encapsulamento;
Depuração de código: debug e asserções; Outros tipos
abstratos de dados comuns: Bags, Sets (Conjuntos) e
Dicionários (Maps).
VIII 6 - Pilhas e Filas estáticas implementadas usando
vetores; Fila circular; Aplicações e exercícios diversos
com manipulação de pilhas e filas.
IX 6 - Listas implementadas usando vetores; Inserções,
remoções e buscas; Comparação de performance dos
mecanismos de busca de uma estrutura Lista;
Exercícios diversos.
X 6 - Pilhas e Filas ligadas com alocação dinâmica de
memória; Lista ligada; Definição do nó como estrutura
auxiliar; Definição de Pilhas e Filas como
particularizações de Listas; Buscas em Listas;
Exercícios diversos com manipulação de Pilhas, Filas e
Listas ligadas.
XI 6 - Lista ligada ordenada; Lista ligada operando em modo
circular; Lista duplamente ligada; Exercícios diversos
operando Listas.
XII 6 - Avaliação Regimental (A1); Avaliações parciais e
exercícios (A2).

ESTRATÉGIA DE ENSINO
Valoriza-se a relação dialógica entre a teoria e a prática, a aprendizagem significativa, cooperativa e colaborativa,
bem como a interdisciplinaridade, a investigação e uso de ambientes virtuais de aprendizagem. Há ações de
diagnóstico da aprendizagem e, se for necessário, de retomada de conhecimentos em diferentes momentos do
processo: apresentação da disciplina, aulas teórico-práticas e elaboração de projetos em grupos de alunos. A
participação crítica e ativa do estudante é estimulada por meio de metodologias ativas.

RECURSOS DISPONÍVEIS
Para o desenvolvimento da disciplina serão utilizados recursos tecnológicos como computador, dispositivos de
som e/ou imagem. A comunicação entre professor e aluno será feita por meio do Blackboard, espaço em que
também serão postados materiais para as aulas, listas de exercícios, indicação de artigos científicos, entre
outros. Também, poderá ser utilizado o Zoom, o Microsoft Team soou outra ferramenta on-line para atividades
síncronas. Utilizar-se-ão recursos quer disponíveis fisicamente quer por meios digitais, para a realização de
atividades que visam a desenvolver competências e habilidades relativas aos conteúdos da disciplina.

AVALIAÇÃO
O processo avaliativo compreenderá: Avaliação Regimental (A1) no valor de 0,0 a 5,0. Avaliações parciais e
processuais (A2) no valor de 0,0 a 5,0. A Nota Final (NF) resulta da soma destas duas notas (A1 A2). É
considerado aprovado na disciplina o aluno que obtiver Nota Final (NF) igual ou superior a 6,0 (seis) e que tenha,
no mínimo, 75% (setenta e cinco por cento) de frequência às atividades acadêmicas. Mais informações sobre o
processo avaliativo podem ser obtidas: a) nos ordenamentos institucionais; b) no Manual do Aluno; c) com os
respectivos professores das disciplinas.

BIBLIOGRAFIA BÁSICA BIBLIOGRAFIA COMPLEMENTAR


CORMEN, T. H.; et al. Algoritmos: teoria e prática. 3. ed. ASCENCIO, A. F. G.; ARAÚJO, G. S. Estruturas de Dados:
Rio de Janeiro: Elsevier, 2012. algoritmos, análise da complexidade e implementações
GOODRICH, M. T.; TAMASSIA, R. Estrutura de dados e em JAVA e C/C++. São Paulo: Pearson Prentice Hall,
algoritmos em java. 5. ed. Porto Alegre: Bookman, 2013. 2010. (eBook)
SZWARCFITER, J. L.; MARKENSON, L. Estruturas de PUGA, S.; RISSETTI, G. Lógica de programação e
dados e seus algoritmos. 3. ed. Rio de Janeiro: Livros estruturas de dados, com aplicações em Java. 3. ed.
Técnicos e Científicos Editora, 2010. São Paulo: Pearson Education do Brasil, 2016. (eBook)
DEITEL, P.;DEITEL, H. Java como programar. 10. ed. São
Paulo: Pearson Education do Brasil, 2017. (eBook)
BARNES, D. J.; KOLLING, M. Programação Orientada a
Objetos com Java: uma introdução prática usando o
Blue J. São Paulo: Pearson Prentice Hall, 2004. (eBook)
HARBOUR, J. S. Programação de games com Java. 2.
ed. São Paulo: Cengage Learning, 2014. (eBook)

Você também pode gostar