Paradigmas da Programação II
Ano Lectivo: 00/01 (2º semestre)
Departamento de Informática / Escola de Engenharia
Universidade do Minho
AVISOS
Apresentação
-
Cursos a que é leccionada:
- Engenharia de Sistemas e Informática -- 1º
ano (530205)
-
Matemática e Ciências da Computação -- 1º ano (7002N4)
-
Escolaridade:
- 2 + 2 + 0
-
Responsável:
- Pedro
Rangel Henriques
-
Equipe Docente:
- Pedro
Rangel Henriques (2 + 1 + 0)
- José João
Dias de Almeida (0 + 4 + 0)
- Jorge
Gustavo Rocha (0 + 4 + 0)
Obs: é
indicado o número de turmas de cada tipo de aula que cada
docente lecciona.
-
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 datashow),
a nível das aulas teórico-práticas.
Realização, no computador, de trabalhos concretos de
aplicação, em ambiente Unix, recorrendo à linguagem C; os
trabalhos serão desenvolvidos extra aulas.
-
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.
- Aprender e ganhar familiaridade com o uso do ambiente de
trabalho Unix, (editores VI ou Emacs, RCSystem, Makefiles,
etc.).
e, ainda, tornar os alunos aptos a desenvolver
correcta e eficientemente programas na linguagem de
programação imperativa "C".
Avaliação
-
Critério:
-
A Avaliação tem uma componente teórica
e uma componente prática ambas obrigatórias.
-
De acordo com o regulamento actualmente em vigor na UM, a
nota teórica será obtida através da realização
de 1 prova individual escrita. Essa prova tem as instâncias a seguir
indicadas (um aluno só poderá fazer melhoria na época
de recurso):
-
Exame, realizado na 1ª chamada da época normal,
no fim do semestre
-
Exame, realizado na 2ª chamada da época normal,
no fim do semestre
-
Exame, realizado na época de recurso
A nota prática será obtida através da
realização (em grupo e extra aulas) de 1 trabalho prático
que será dividido em 4 partes. Ao fim de cada uma dessas fases,
os grupos terão de mostrar e discutir nas aulas teórico-práticas,
a funcionar e acompanhado do respectivo relatório de
desenvolvimento, o resultado obtido. Cada componente será
classificada nos seguintes escalões:
Escalão |
Nota
|
Não Entregue
|
0
|
Não Satisfaz
|
7
|
Satisfaz no Mínimo
|
10
|
Satisfaz
|
13
|
Bom
|
16
|
Muito Bom
|
19
|
A nota prática será a média
aritmética das classificações obtidas em cada um dos
trabalhos propostos.
A nota final será determinada de acordo
com a seguinte fórmula:
NotaFinal = NotaTeorica * 0.60 + NotaPratica * 0.40
Exige-se 8 valores como nota mínima em cada
uma das partes.
Trabalhos Práticos
Para fazer o download do enunciado do
Trabalho Prático proposto, para ser realizado ao longo do
semestre em 4 etapes, clique abaixo:
Exames
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 {\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, "Programação Estruturada com a
linguagem C", Publicações Europa-América, 1992
-
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
-
8. F. M. Martins e P.R. Henriques, "Problemas",
Cadernos Pedagógicos, Univ. do Minho, 1989 .
-
9. A. N. Ribeiro e J. Pina Miranda, "Notas Práticas de Algoritmos e
Estruturas de Dados", Notas Pedagógicas, Univ. do Minho, 1995
-
10. J. A. Saraiva e A. N. Ribeiro, "Estruturas de Dados:
listas ligadas dinâmicas", Notas Pedagógicas, Univ. do Minho,
1995
-
11. P. Guerreiro, "Programação em classes C++", FCA -- Editora de Informática Lda,
2000. nota: bibliografia complementar
-
12. Manuais de "C"
-
13. Manuais diversos do sistema Unix e seus utilitários
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:
- (2001.05.15)
- ATENÇÃO: a nova e última versão do Enunciado do Trabalho Prático, com os requisitos da 4ª fase, já se encontra disponível na Página WWW Principal da disciplina! NOTEBEM: Relatórios finais são entregues na altura de apresentação do trabalho, nos dias 28, 29 e 30 de Maio.
- (2001.04.03)
- ATENÇÃO: a nova versão do Enunciado do Trabalho Prático, com os requisitos da 2ª fase, já se encontra disponível na Página WWW Principal da disciplina.
- (2001.04.02)
- Informam-se todos os Alunos que os ULTIMOS DIAS para entrega da 1ª fase do TRABALHO PRÁTICO serão, ao longo desta semana, nas próximas 4ªfeira à tarde (14h-18h) e 6>ªfeira à tarde (13h-18h)
- (2001.03.26)
- Recorda-se a todos os Alunos que a entrega da 1ª fase do TRABALHO PRÁTICO decorre ao longo desta semana: Relatórios são entregues no Turno TP e o trabalho é apresentado e defendido nesta e na próxima 4ªfeira à tarde
- (2001.03.04)
- O Enunciado do TRABALHO PRÁTICO e o Calendário de ENTREGAS já está Publicado na página principal da disciplina;
é URGENTE que os alunos se organizem em grupos e escolham o enunciado da sua preferência!
- (2001.02.19)
- Problemas cujo Algoritmo devem fazer para a próxima Aula Teórica (de 5ªfeira):
- Dado N, escrever os Pares até N;
- Dado N, escrever os N primeiros Pares.
author: prh@di.uminho.pt;
Last modified: 15 de Maio de 2001