Abstração e representação de dados. Estruturas de dados básicas: listas, pilhas, filas. Introdução ao teste de unidade. Tipos de dados abstratos e construção rigorosa de programas. Tipos de dados abstratos básicos: conjuntos, árvores , dicionários, tabelas de "hashing". Grafos. Arquivos e árvores-B