Algoritmos e Estruturas de Dados I (EC)

Objetivos

O cumprimento da disciplina busca dar ao aluno, ao final do semestre, condições de:

Ementa

Análise e construção de algoritmos. Programação imperativa: algoritmos e estruturas de dados convencionais (atribuições, seleção e repetição, entrada e saída, matrizes, registros, ponteiros). Subprogramação. Recursividade.

Programa

  1. Conceitos Fundamentais de Algoritmos
    1. Conceito e características de um algoritmo
    2. Tipos de dados
    3. Objetos de um algoritmo: variável e constante
    4. Estrutura de um algoritmo
    5. Algoritmo principal e subalgoritmos
    6. Área de declarações
  2. Tipos de Algoritmos
    1. Puramente seqüenciais
      1. Expressões aritméticas
      2. Operadores aritméticos
      3. Prioridades
      4. Instruções primitivas
        1. Atribuição
        2. Saída de dados
        3. Entrada de dados
    2. Com seleção
      1. Expressões relacionais
      2. Operadores relacionais
      3. Expressões lógicas
        1. Operadores lógicos
        2. Tabela verdade
        3. Prioridades
      4. Tipos de instruções
        1. Seleção simples
        2. Seleção composta
        3. Seleção aninhada
    3. Com repetição
      1. Tipos de instruções
        1. Estrutura Enquanto
        2. Estrutura Repita
        3. Estrutura Para
      2. Conceitos relacionados: inicialização, contadores e acumuladores
      3. Consistência de dados de entrada
  3. Subalgoritmos
    1. Conceitos e vantagens da utilização
    2. Escopo de variáveis: globais X locais
    3. Tipos de subalgoritmos
      1. Função
      2. Procedimento
    4. Parâmetros
      1. Passagem por valor
      2. Passagem por referência
    5. Formas de desenvolvimento de algoritmos
      1. Top Down
      2. Bottom Up
  4. Estruturas Homogêneas
    1. Unidimensionais: Vetores
      1. Formalização e manipulação
      2. Operações mais comuns
      3. Pesquisas em vetores
      4. Métodos simples de ordenação de vetores
    2. Multidimensionais: Matrizes
      1. Formalização e manipulação
      2. Operações mais comuns
      3. Pesquisas em matrizes
      4. Matrizes especiais
        1. Matrizes triangulares
        2. Matrizes esparsas
  5. Introdução à Análise de Algoritmos
    1. Importância
    2. Contagem de passos
    3. Ordem de crescimento
      1. Notação O(n)
      2. Operando com ordens de crescimento
  6. Estruturas Heterogêneas
    1. Registros
    2. Formalização e manipulação
    3. Combinando com variáveis homogêneas
      1. Vetores de registros
      2. Registros com vetores
  7. Desenvolvimento de Algoritmos Recursivos
    1. Conceito e exemplos de utilização
    2. Algoritmos recursivos X iterativos
    3. Recursividade utilizando estruturas de dados

Avaliação

G1 = (2.5 P1 + 3 P2 + 3.5 P3 + E) / 10

Materiais

Materiais da disciplina:
  1. Uma lista de exercícios para programar está aqui.
  2. Exercícios e exemplos também estão aqui.
  3. Uma coleção de exercícios interessantes está aqui.

Livros texto

Livros complementares