Programação II (INF16153)
Objetivo
Aprender os conceitos básicos/intermediários de programação, usando como ferramenta uma ou mais linguagens de programação pertencentes ao paradigma procedural. Empregar técnicas básicas de compilação em separado e estruturação de programas.
Ementa
Introdução a tipos abstratos de dados. Modularização de programas: unidades de programação, passagem de parâmetros (valor e referência), separação em módulos, bibliotecas. Manipulação de arquivos: arquivos de texto e binários, acesso sequencial e direto. Alocação dinâmica de memória. Variáveis compostas homogêneas e heterogêneas com alocação dinâmica. Ferramentas de desenvolvimento e técnicas de detecção de erro. Estudo aprofundado de uma ou mais linguagens de programação procedural.
Conteúdo Programático
- Introdução (8 horas)
- Revisão de conceitos de Programação I
- O que são estruturas de dados (ED)?
- Benefícios e necessidade de ED
- Modelo básico de memória
- Introdução ao Tipo Abstrato de Dados (TAD)
- Modularização (6 horas)
- Separação em arquivos de cabeçalhos e códigos-fonte
- Bibliotecas estáticas e dinâmicas
- Makefile
- Ponteiros (8 horas)
- Definição e uso de ponteiros
- Ponteiro genérico
- Passagem de parâmetros
- Ponteiro de funções
- Uso eficiente de memória (14 horas)
- Alocação estática e alocação dinâmica
- Manipulação de ponteiros em C
- Ferramentas e técnicas de detecção de erros
- Tipos Abstratos de Dados (20 horas)
- Definição de estrutura abstrata (Estrutura Opaca)
- Tipos genéricos
- Ponteiro de Funções em TADs
- Arquivos (4 horas)
- Texto
- Binário
- Acesso sequencial