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

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.


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.


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, Viviante 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.
Ferramenta de Apoio ao Ensino Presencial da FEMA
https://www.fema.edu.br/moodle/