Paradigmas da Programação II
Ano Lectivo: 01/02 (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 + 1 + 0)
- Jorge
Gustavo Rocha (0 + 5 + 0)
- Alberto
Manuel Simões (0 + 2 + 0)
- José
Carlos Ramalho (0 + 1 + 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 Linux, 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 Linux, (editores Vi ou Emacs, 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 4 trabalhos práticos.
Ao fim de cada um,
os grupos terão de mostrar e discutir nas aulas teórico-práticas, ou fora em períodos a combinar,
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 dos Trabalhos Práticos propostos, clique abaixo:
Para submeter os Trabalhos Práticos:
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 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
-
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:
- (2002.05.09)
- ENTREGA DOS TRABALHOS 3 e 4: dadas as momumentais festividades funebres da "Gata", os 2 últimos Trabalhos Práticos serão apresentados e discutidos em simultâneo ao longo dos dias 27 (2ªf) e 28 (3ªf) de MAIO (9h00 ás 18h00). As folhas de marcação estarão disponíveis na Recepção do DI a partir de 13 de Maio.
- (2002.05.09)
- O Enunciado do 4º TRABALHO PRÁTICO (para resolver até 6ªfeira, dia 25 de Maio, último dia de aulas) já está Publicado na página principal da disciplina;
- (2002.04.24)
- O Enunciado do 3º TRABALHO PRÁTICO (para resolver até 6ªfeira, dia 3 de Maio) já está Publicado na página principal da disciplina;
- (2002.04.09)
- ENTREGA do 2º TRABALHO PRÁTICO: todos os grupos devem comparecer na Sala Aberta (DI) na proxima 4ªfeira, dia 10.abr.02 entre as 15h e as 18h, para se inscreverem para entrega do trabalho, com o Monitor Nuno Rodrigues.
- (2002.04.08)
- SUBMISSÃO dos TRABALHOS PRÁTICOS: o serviço de submissão electrónico já está pronto a funcionar no link respectivo desta página. Quem ainda não submetteu deve faze-lo até ao fim da semana, devendo o respectivo relatório em papel ser entregue na próxima Aula Prática.
- (2002.02.22)
- Sessão Especial de apoio à Instalação de LINUX: realiza-se na próxima 3ªfeira, dia 26 de fevereiro, das 16h às 18h na sala 2.304.
Os alunos da LESI inscritos nesse turno prático devem escolher um outro na próxima semana!!!
- (2002.02.19)
- O Enunciado do 1º TRABALHO PRÁTICO (para resolver até 6ªfeira, dia 1 de Março) 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!
author: prh@di.uminho.pt;
Last modified: 09 de Maio de 2002