Recursos em uma linguagem: registros, conjuntos, apontadores e arquivos. Estruturas de dados mais comuns: matriz, listas, pilhas e árvores. Atualização, busca e ordenação em arquivo sequenciais e indexados. Técnicas para decomposição de problemas em módulos e sua implementação em computador. Baktracking e recursão. Processamento de textos. Resolução de problemas diversos utilizando as técnicas acima.