Paradigmas da Programação II
Ano Lectivo: 02/03 (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 + 3 + 0)
- João
Alexandre Saraiva (0 + 4 + 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, também no fim do semestre
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:
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
Notas Pedagógicas e Material de Apoio Diverso
De momento e para além do material bibliográfico recomendado, encontram-se disponíveis as seguintes Notas e Material Pedagógico:
... e a seguinte documentação diversa de apoio:
- (2003.06.09)
- AVISO IMPORTANTE: O exame de PP2 este ano (em qq. uma das 3 chamadas) será um teste de resposta múltipla: 10 perguntas com 4 afirmações cada, podendo ser todas verdadeiras, ou todas falsas (4 respostas certas 1pt; 3 respostas certas 0,5pt; 2 respostas certas 0,25pt)
- (2003.06.09)
- A entrega do 2º TRABALHO PRÁTICO decorre esta semana de 4ªf a 6ªf imperetrivelmente (isto é, não se recebe mais qualquer trabalho fora desse período). A folha para inscrição dos grupos nas slots de entrega está disponivel no Gabinete dos Técnicos (recepção fechada).
- (2003.05.22)
- Recorda-se a todos os Alunos que a entrega da 1ª e 2ª fase do TRABALHO PRÁTICO 2 decorre nesta proxima 6ªf e na proxima 2ªf. A folha para inscrição dos grupos nas slots de entrega está disponivel no Gabinete dos Técnicos (recepção fechada).
- (2003.04.28)
- ATENÇÃO: Como o Prof. João Saraiva está ausente no estrangeiro, marcará aulas extras de compensação na próxima semana!!!
- (2003.04.25)
- ATENÇÃO: foi hoje publicado o enunciado do 2º (e último) Trabalho Prático!!! Entrega da 1ª e 2ª fases dentro de 15 dias!!!
- (2003.04.25)
- Ver o Exemplo de uso da função TIME() em C para inclusão no ultimo problema da ficha 4 das aulas TP
- (2003.04.10)
- ATENÇÃO: a entrega individual obrigatória da 3ªFicha de exercícios resolvida ocorre durante as aulas TP da próxima semana
- (2003.04.10)
- Acabou ontem à tarde a entrega do 1ºTrabalho Prático;
o próximo trabalho sai na próxima semana.
- (2003.04.10)
- Recordo que o Monitor, Nuno Rodrigues, está disponível para apoiar os alunos à 6ªfeira à tarde, na sala aberta ou na sala MicroSoft .NET (excepto a próx. 6ªf)
- (2003.02.25)
- ATENÇÃO: Já esta disponivel o enunciado da 1ª Ficha Teórica-Prática
author: prh@di.uminho.pt;
Last modified: 25 de Fevereiro de 2003