Você está na página 1de 6

UNIVERSIDADE FEDERAL DE OURO PRETO

PRÓ-REITORIA DE GRADUCAÇÃO
PLANO DE ENSINO

Nome do Componente Curricular em português: Código: CSI488


ALGORITMOS E ESTRUTURAS DE DADOS I
Nome do Componente Curricular em inglês: Turma: Extra
ALGORITHMS AND DATA STRUCTURES I
Nome e sigla do departamento: Unidade acadêmica:
Departamento de Computação e Sistemas – DECSI ICEA
Nome do docente:
MATEUS FERREIRA SATLER
Carga horária semestral Carga horária semanal teórica Carga horária semanal prática
60/72 horas 03 horas/aula 01 hora/aula
Data de aprovação na assembleia departamental: / /

Ementa: Noções de análise de complexidade de algoritmos. Recursividade. Noção de


abstração. Tipos abstratos de dados. Estruturas de dados lineares: pilha, fila e lista. Estruturas
de dados hierárquicas: árvore, filas de prioridade. Algoritmos de ordenação.
Conteúdo programático:
1. Noções de análise de complexidade
1.1. Dominância assintótica
1.2. Notação O, θ e Ω
1.2.1. Definições e propriedades
1.3. Notação o e ω
1.3.1. Definições e propriedades
1.4. Relações de recorrência
2. Recursão
3. Abstração
4. Tipos abstratos de dados
4.1. Conceito de TAD
4.2. Estrutura de dados lineares
4.2.1. Lista: vetores, encadeadas, duplamente encadeadas e circulares
4.2.2. Pilha
4.2.2.1. Eliminação de recursividade
4.2.3. Fila
4.3. Estruturas de dados hierárquicas
4.3.1. Árvore
4.3.2. Árvore binária
4.3.3. Árvore binária de busca
4.3.4. Árvore binária de busca balanceada (AVL)
4.3.5. Árvore vermelho e preto
4.3.6. Árvore Patrícia
4.3.7. Heap e filas de prioridades
5. Métodos de ordenação
5.1. BubbleSort, InsertionSort, SelectionSort, MergeSort, HeapSort, QuickSort, ShellSort
5.2. Análise de pior caso, melhor caso e caso médio
5.3. Limite inferior para o problema de ordenação

Objetivos: Desenvolver o conteúdo programático proposto, objetivando o aprendizado dos


conceitos da programação de computadores utilizando estruturas de dados.

Metodologia: A disciplina será desenvolvida na modalidade ensino remoto, na qual a


mediação didático-pedagógica nos processos de ensino e aprendizagem ocorrerá com a
utilização de tecnologias digitais de informação e comunicação com professores e alunos
desenvolvendo atividades educativas em lugares ou tempos diversos. O desenvolvimento de
atividades será através das ferramentas de interação assíncronas (emissor e receptor não estão
sincronizados em um mesmo tempo-espaço) e síncronas (emissor e receptor interagem em
tempo real).

Recursos: Para um bom andamento da disciplina, os alunos deverão possuir acesso às


seguintes ferramentas computacionais (ou equivalentes):

1. Computador: É necessário que o aluno possua acesso a um notebook/desktop para


realizar as tarefas e trabalhos práticos da disciplina.

2. Mesa e cadeira: É indicado que os alunos separem um período dos seus dias para assistir
as aulas e estudar para a disciplina. Se possível, utilize mesa, cadeira, computador, papel
e lápis. Não assista as aulas de maneira passiva.

3. Moodle: As atividades avaliativas da disciplina deverão ser entregues por meio da


Plataforma Moodle. Também a presença do aluno será contabilizada pelo seu acesso ao
Moodle.

4. Www: A apostila da disciplina e as listas de exercícios para fixação estarão disponíveis


no Moodle. Além desses materiais, o aluno encontrará os links para as videoaulas, dentre
outras informações pertinentes à disciplina.

5. YouTube: YouTube é uma plataforma de compartilhamento de vídeos. As aulas da


disciplina poderão ser gravadas e disponibilizadas nesta plataforma, ou em outra
plataforma de distribuição de vídeo.

6. Google Meet: Google Meet é um serviço de comunicação por vídeo desenvolvido pelo
Google. Os encontros síncronos, quando houver, serão realizados em nesta plataforma.
Para acesso, você deverá logar com sua conta da UFOP (@aluno.ufop.edu.br).

Atividades: As atividades planejadas para a disciplina compreendem em assistir as


videoaulas, ler e estudar o material da disciplina, trabalhar com as listas de exercícios para
fixação do conteúdo e realização das atividades de revisão e trabalhos, quando houver.
As atividades avaliativas consistem em listas de exercícios, provas e/ou trabalhos. O formato
de entrega será definido nas instruções da atividade disponibilizadas na plataforma Moodle e
deverão ser entregues nas respectivas datas estipuladas. Para o sucesso da disciplina no
modelo remoto, o aluno deverá se organizar para realizar as tarefas ao longo das semanas.

O exame especial consistirá na entrega das tarefas do semestre que não forem enviadas nas
datas estipuladas e/ou a realização de uma prova.

Controle de Frequência: O acompanhamento da frequência para aprovação na disciplina será


através do acesso da entrega das atividades propostas no Moodle. Por isso, recomenda-se não
deixar de entregar nenhuma avaliação ou tarefa. Para que a frequência seja validada, será
necessário cumprir certos critérios de entrega, com uma determinada porcentagem de tarefas
cumpridas satisfatoriamente. Detalhes serão fornecidos pelo professor no início do semestre
letivo.

Atividades avaliativas:

Peso da
Descrição da avaliação Data Conteúdo avaliado
avaliação (%)

Lista de Exercícios 40% Várias datas Conteúdos diversos


Trabalhos Práticos 50% Várias datas Conteúdos diversos
Prova 10% 03/01/2022 Todo o conteúdo da disciplina
Entrega das atividades em atraso
Exame Especial 100% 10/01/2022
e/ou Prova

Observações: datas e pesos sujeitos a alterações.

Atendimento:

Dia Horário Forma de Atendimento

Segundas-Feiras 19h00min às 20h00min Assíncrono, via e-mail e Plataforma Moodle

Terças-Feiras 19h00min às 20h00min Assíncrono, via e-mail e Plataforma Moodle

A combinar A combinar Síncrono ou Assíncrono


Cronograma:

Data Conteúdo Previsto

Semana do dia 20/09 – 24/09 Férias do Professor

Semana do dia 27/09 – 01/10 Início da Disciplina


04 horas de atividades, que Apresentação da disciplina (período para explorar a disciplina, ler
podem ser síncronas e/ou as orientações e conhecer a proposta metodológica).
assíncronas. Início do estudo: Revisão de conteúdo.

Semana do dia 04/10 – 08/10


Abstração e Tipos Abstratos de Dados (TAD).
04 horas de atividades, que
podem ser síncronas e/ou TAD: exercícios.
assíncronas.

Semana do dia 13/10 – 15/10


Funções e recursividade.
02 horas de atividades, que
podem ser síncronas e/ou Recursividade: exercícios.
assíncronas.

Semana do dia 18/10 – 22/10


Análise de complexidade de algoritmos.
04 horas de atividades, que
podem ser síncronas e/ou Domínio assintótico e funções de complexidade.
assíncronas.

Semana do dia 25/10 – 27/10


TAD: Listas.
04 horas de atividades, que
podem ser síncronas e/ou Listas: exercícios de implementação.
assíncronas.

Semana do dia 03/11 – 05/11


TAD: Filas e Pilhas.
02 horas de atividades, que
podem ser síncronas e/ou Filas e Pilhas: exercícios de implementação.
assíncronas.

Semana do dia 08/11 – 12/11


Algoritmos de Ordenação: BubbleSort, InsertionSort, SelectionSort
04 horas de atividades, que e ShellSort.
podem ser síncronas e/ou
Algoritmos de Ordenação: exercícios
assíncronas.
Semana do dia 16/11 – 19/11
Algoritmos de Ordenação: MergeSort e QuickSort.
02 horas de atividades, que
podem ser síncronas e/ou Algoritmos de Ordenação: exercícios
assíncronas.

Semana do dia 22/11 – 26/11


TAD: Árvores e Árvores Binárias de Busca.
04 horas de atividades, que
podem ser síncronas e/ou Árvores e Árvores Binárias de Busca: exercícios.
assíncronas.

Semana do dia 29/11 – 03/12


TAD: Árvores AVL.
04 horas de atividades, que
podem ser síncronas e/ou Árvores AVL: exercícios.
assíncronas.

Semana do dia 06/12 – 10/12


TAD: Árvores Vermelho e Preto e Árvores Patricia.
04 horas de atividades, que
podem ser síncronas e/ou Árvores Vermelho e Preto e Árvores Patricia: exercícios.
assíncronas.

Semana do dia 13/12 – 17/12


Heaps e filas de prioridade, método Heapsort.
04 horas de atividades, que
podem ser síncronas e/ou Exercícios.
assíncronas.

Semana do dia 03/01 – 07/01 Prova


04 horas de atividades, que Entrega de trabalhos e listas finais
podem ser síncronas e/ou
assíncronas. Entrega de resultados finais

Semana do dia 10/01 – 14/01 Exame Especial

Obs.: Os conteúdos previstos serão realizados pelos alunos conforme as orientações descritas
nos critérios de avaliação e enunciado disponibilizado durante o curso. O cronograma poderá
sofrer alterações diante o modelo de ensino utilizando as tecnologias digitais da informação.

Bibliografia básica:
1. LANGSAM,Y.; AUGENSTEIN, M.J.; TENENBAUM, A.M. Data Structures using C and
C++, 2a edição . Prentice Hall of India. 2007.
2. CORMEM, T. H.; et al. Introduction to algorithms, 3a edição, The MIT Press.
3. DROZDEK A. Estrutura de dados e algoritmos em C++,1a edição Cengage Learning.
Bibliografia complementar:
1. KNUTH,D.E. The Art of Computer Programming. Vol 1: Fundamental Algorithms.
Addison-Wesley, 1a. Edição, 2011.
2. KNUTH,D.E. The Art of Computer Programming. Vol 3: Sorting and Searching. Addison-
Wesley, 1a. Edição, 2011.
3. GOODRICH M. T.; TAMASSIA, R., Data Structures and Algorithms in Java, 4ª edição,
John Wiley & Sons.
4. AHO A. V.; HOPCROFT J. E.; ULLMAN, J. D., Data structures and algorithms, 1ª
edição, Addison Wesley, 1983.
5. ZIVIANI N.; BOTELHO, F.C. Projetos de Algoritmos com implementação em Java e
C++, Editora Thomson, 2007
Atenção:
Plano de ensino elaborado para controle e organização do professor e alunos, sendo sujeito a
alterações no decorrer da disciplina.

Direitos Autorais:
A utilização dos textos, imagens, sons, voz e vídeos está restrita ao uso acadêmico desta
disciplina durante o Período Letivo em questão, não sendo permitido o seu uso em outros
meios.

Você também pode gostar