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