Técnicas de Programação Avançada


Data
2020-02-17 — 2020-07-01
Local
Ifes, Campus Serra
Devido à pandemia do COVID-19 e seguindo as diretrizes de Ifes, essa disciplina está, temporariamente, suspensa.

Plano de Ensino

  • Carga Horária: 60h
  • Aulas Previstas: 72

Objetivos

Objetivo Geral

Construir sistemas de computação modelando-os como abstrações formuladas a partir de funções ou dados, maximizando a modularidade e os níveis de refinamento das soluções.

Objetivos Específicos

  1. Desenvolver o “sentimento” de quais são os elementos que compõem o estilo e a estética da programação; e a “percepção” de que programas são escritos primariamente para serem lidos por pessoas e apenas eventualmente executados por máquinas.
  2. Identificar técnicas de ordenação apropriadas para solução de problemas.
  3. Dominar as principais técnicas para controle de complexidade de sistemas grandes.
  4. Ser capaz de ler, entender e interpretar, programas escritos em estilo adequado.
  5. Desenvolver algoritmos através de divisão modular e refinamentos sucessivos.

Ementa

Estruturas de acesso direto: Tabela Hash. Estrutura de dados não-lineares: árvore binária, árvore binária ordenada, árvore binária ordenada balanceada (AVL), caminhamento em árvores. Grafos. Introdução a Análise de complexidade de algoritmos.

Referências Bibliográficas

  1. Thomas H. Cormen; Charles E. LEISERSON; Ronald L. Rivest; Clifford Stein. “Algoritmos: Teoria e Prática.” 3ª ed. Editora Campus: Rio de Janeiro – RJ, 2012.
  2. Paul Deitel; Harvey Deitel. “C: Como programar.” 6ª ed. Pearson: São Paulo – SP, 2011.
  3. Aaron M. Tenembaum. “Estrutura de dados usando C.” Makron Books: São Paulo – SP, 1995.
Jefferson O. Andrade
Jefferson O. Andrade
Professor Titular

Meus interesses de pesquisa incluem ciência de dados, inteligência artificial, verificação de software e sistema, lógica de programação e uso de jogos na educação.