Objetivo:

Fornecer elementos básicos para a construção de programas eficientes, utilizando algoritmos e estruturas de dados apropriados. A disciplina contribuir para a formação básica do aluno em aspectos considerados fundamentais à ciência da computação.

Ementa:

1 - Programação Orientada a Objetos.
2 - Complexidade de algoritmos e notação assintótica. 
3 - Tipos abstratos de dados.
4 - Arranjos, listas encadeadas e recursão.
5 - Filas, Pilhas e Deques. Iteradores.
6 - Iteradores.
7 - Árvores, heaps e filas de prioridade.
8 - Busca em árvores.
9 - Grafos.
10 - Algoritmos em Grafos.
11 - Hashing.
12 - Ordenação de dados.
13 - Busca de padrões e processamento de texto.
14 - Gerenciamento de memória.
15 - Busca e ordenação em memória secundária.

Quantidade de créditos: 8
Total de horas de aulas teóricas: 60