Fundamentos da Programação
Curso: CET-DSAS
Ano Lectivo: 06/07 (1º trimestre)
Departamento de Informática / Escola de Engenharia
Universidade do Minho
Apresentação
-
Escolaridade:
- 2 + 7
-
Responsável:
- Pedro Rangel Henriques
-
Equipe Docente:
- Pedro
Rangel Henriques (2 + 0)
- Paulo Jorge
Novais (0 + 3)
- Mario Marcelo Béron (0 + 5)
-
Estrutura de Funcionamento:
- Exposição da matéria fundamental
---motivação, conceitos, definições, métodos e justificações--- a
nível das aulas teóricas.
Resolução dos exercícios de consolidação, no quadro e no
computador (usando projector multimedia),
a nível das aulas práticas.
Realização, no computador, de trabalhos concretos de
aplicação, em ambiente Linux, recorrendo à linguagem C
-
Objectivos:
- É objectivo fundamental deste curso
levar os alunos a:
- Aprender e interiorizar os conceitos de algoritmo e de
programação e modularidade segundo o paradigma imperativo.
- Reforçar o uso da recursividade na resolução de
problemas.
- Estudar os algoritmos mais frequentemente usados para
pesquisa e ordenação de informação em memória principal.
- Aprofundar o estudo estruturas de dados lineares e
não-lineares (árvores) e respectivos algoritmos de
manuseamento.
e, ainda, tornar os alunos aptos a desenvolver
correcta e eficientemente programas na linguagem de
programação imperativa C.
Conteúdo Programático
-
Programa detalhado:
-
I. Introdução à Programação Imperativa:
- I.1 Revisão da noção de Programação: objectivos, dificuldades e
etapes
- I.2 Paradigmas da Programação ---uma visão global
- I.3 Apresentação detalhada do paradigma; panorâmica histórica das
linguagens de programação imperativas
- I.4 Análise Descendente de problemas
- I.5 Noção de Algoritmo: Linguagem Algorítmica em português
estruturado ---introdução das diversas construções linguísticas
através de problemas-exemplo típicos
-
II. Estudo da linguagem de programação "C":
- II.1 Filosofia e historial desta linguagem
- II.2 Representação dos Dados; Tipos
- II.3 Instruções simples e Estruturas de Controlo em "C"
- II.4 Manuseamento de ficheiros
- II.5 Gestão dinâmica de memória; apontadores
-
III. Procura e Ordenação: conceitos e algoritmos mais vulgares
-
IV. Recursividade e resolução de problemas try-and-error
-
V. Estudo das Estruturas de Dados Lineares
---conceitos e algoritmos principais para as implementações em array
e listas ligadas:
- VI.1 Conjuntos
- VI.2 Listas: caso geral; {\em Stack} e {\em Queue}
- VI.3 Funções Finitas
-
VI. Estudo das Estruturas de Dados Não-Lineares
---conceitos e algoritmos principais para o manuseamento e implementação de
Árvores.
Bibliografia
-
Material bibliográfico proposto para apoio ao curso:
-
1. Kernighan e Ritchie, "The C Programming Language
(ANSI C)", 2.nd edition, Prentice Hall Software series, 1988
-
2. P. Guerreiro, "Elementos de Programação com C", FCA -- Editora de Informática Lda, série Tecnologias de Informação, 2ªEdição, 2001
-
3. L. Damas, "Linguagem C", FCA -- Editora de Informática Lda, 1999
-
4. I. Sampaio e A. Sampaio, "Fundamental da
Programação em C", FCA -- Editora de Informática Lda, 1998
-
5. R. Barbosa, "Domine a 100% a Programação em C", volumes
I e II, FCA -- editora de Informática Lda, 1997
-
6. Leendert Ammeraal, "Programas e Estruturas de Dados em C",
Editora Presença, 1994
-
7. P. J. Planger, "The Standard C Library", Prentice-Hall, 1992
-
11. P. Guerreiro, "Programação em classes C++", FCA -- Editora de Informática Lda,
2000. nota: bibliografia complementar
-
6. Ullman, "Data Structures",
-
12. Manuais de "C"
Fichas de Trabalho, Notas Pedagógicas e Material de Apoio Diverso
De momento e para além do material bibliográfico recomendado, encontram-se disponíveis
os seguintes elementos:
Avaliação
Resultados da Avaliação Continua quantitativa Teórico-Prática e Avaliação Final:
author: prh@di.uminho.pt;
Last modified: 27 de Janeiro de 2007