Aulas Teóricas: 234
A) EMENTA
Desenvolvimento de algorítmos. Técnicas de programação estruturada. Tipos de dados básicos e estruturados. Modularidade e abstração. Listas. Filas. Pilhas.
B) OBJETIVOS / COMPETÊNCIAS
Levar ao aluno os conceitos básicos para desenvolvimento de algoritmos. Mostrar a importância que a escolha de estrutura de dados, adequada ao problema a ser tratado. Mostrar a importância que os algoritmos e estrutura de dados exercem na programação de computadores. Estudar diferentes estruturas de dados bem como sua implementação em computadores, habilitando os alunos a definirem e utilizarem as estruturas de dados adequadas a cada tipo de problema.ALM
C) BASES TECNOLÓGICAS (CONTEÚDO PROGRAMÁTICO)
1. Computabilidade
1.1. Fundamentação teórica de procedimento efetivo
1.2. Allan M Turing
1.3. Noções Gerais de Máquina de Turing
2. Algoritmos: fundamentos, formas de representação, português estruturado
3. Vetor e Matriz
4. Programação modular, estruturada
5. Sub programas: fundamentos, passagens de parâmetros.
6. Programação estruturada e linguagem de programação C/C++
6.1. Definição de princípios e técnicas de programação
6.2. A linguagem e o ambiente de programação
6.3. Variáveis dos tipos inteiro, real, booleano e caracter
6.4. Comando de atribuição, operadores e expressões
6.5. Comando básicos de entrada e saída
6.6. Comando condicionais
6.7. Comandos iterativos
6.8. Comandos de seleção
6.9. Estruturando programas: procedimentos e funções
6.10. Constantes
6.11. Tipos estruturados: vetores, matrizes e registros
6.12. Procedimentos e funções com parâmetros
7. Tipos de Dados
7.1. Primitivos
7.2. Construídos
7.3. Construção e representação de tipos de dados
8. Listas Lineares
8.1. Introdução
8.2. Alocação seqüencial
8.2.1. Listas lineares em alocação seqüencial
8.2.2. Pilhas e filas
8.2.3. Aplicações
8.3. Alocação Encadeada
8.3.1. Listas lineares em alocação encadeada
8.3.2. Pilhas e filas
8.3.3. Listas circulares
8.3.4. Listas duplamente encadeadas
8.3.5. Aplicações
D) ATIVIDADES DISCENTES
1. Resolução de exercícios
2. Elaboração de exercícios
3. Pesquisas individuais e em grupo, abordando aspectos teóricos de conteúdo programático
4. Apresentação de seminários
5. Trabalhos individual ou em grupos
6. Elaboração de programas
E) AVALIAÇÃO
O aluno será avaliado na forma de:
1. Provas escritas ou práticas
2. Trabalhos
F) BIBLIOGRAFIA BÁSICA
ASCENCIO, A. F. G. e CAMPOS, A. V. Fundamentos da programação de computadores. São Paulo: Prentice Hall, 2002.
MANZANO, José Augusto N. G.. Programação de Computadores com C++: Guia Prático de Orientação e Desenvolvimento. São Paulo: Érica, 2011.
ZIVIANI, Nivio. Projeto de algoritmos: com implementações em pascal e C, Cengage Learning, 2011.
G) BIBLIOGRAFIA COMPLEMENTAR
DIDIO, Robert Joseph. Lógica e Design de Programação: Introdução a Computação. São Paulo: Cengage Learning, 2010.
DROZDEK, Adam. Estruturas de Dados e Algoritmos em C++. São Paulo: Pioneira Thomson Learning, 2002.
FEOFILOF, Paulo. ALGORITMOS EM LINGUAGEM C, ELSEVIER, 2009.
HORSTMANN, Cay. Conceitos de Computação com o essencial de C++. 3ª ed. Porto Alegre: Bookman, 2005.
OLIVEIRA, Jayr Figueiredo. Algoritmos: Lógica Para Desenvolvimento de Programação. São Paulo: Érica, 2011.
Ferramenta de Apoio ao Ensino Presencial da FEMA
https://moodle.fema.edu.br