PLANO DE CURSO  
ANO: 2019
 
CURSO: CIÊNCIA DA COMPUTAÇÃO - Noturno SÉRIE: 1
DISCIPLINA: ALGORITMOS E ESTRUTURA DE DADOS I    
 

Aulas Teóricas: 222

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.


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.

OLIVEIRA, Jayr Figueiredo. Algorítmos: Lógica Para Desenvolvimento de Programação. São Paulo: Érica, 2011.

ZIVIANI, Nivio, Projeto de algoritmos: com implementações em pascal e C, Pioneira, 1999.


G) BIBLIOGRAFIA COMPLEMENTAR

DEITEL, Harvey M., DEITEL, Paul J. C: How to Program. New Jersey: Prentice-Hall, 1994.

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
EDELWEISS, Nina. Estrutura de dados, Bookman, 2009

FEOFILOF, Paulo. ALGORITMOS EM LINGUAGEM C, ELSEVIER, 2009.

FORBELLONE, André L. & EBERSPACHER, H. F. Lógica de Programação: a construção de algoritmos estrutura de dados. São Paulo: Makron-McGraw Hill, 2000.

GRIFFITHS, David. Use A Cabeça!: Programação. Riuo de Janeiro: Alta Books, 2010.

HORSTMANN, Cay. Conceitos de Computação com o essencial de C++. 3ª ed., Porto Alegre:Bookman, 2005.

KNUTH, Donald E. The Art of Computer Programming. USA: Addison-Wesley Publishing Company, 1968. 1 v.

MIZRAHI, Viviane V. Treinamento em linguagem C - MODULO 1, MAKRON BOOKS, 1990.

QUIRINO DA SILVA, Osmar. Estrutura de dados e algoritmos usando C, Ciência Moderna, 2007

SILVA, Flavio S. Correa. Introdução à Ciência da Computação com Jogos: Aprendendo A Programar. Rio de Janeiro: Elsevier, 2010.


H) Ferramenta de Apoio ao Ensino Presencial da FEMA

https://www.fema.edu.br/moodle/