| | Programa da Disciplina de Programação 2 (MIEEC - 1ºAno/2ºAno,
2º Sem), 2006/2007
Programa: |
Programação estruturada em C++: capacidades
adicionais em relação à linguagem C. Programação com classes
em C++. Apontadores e referências. Gestão de memória em
tempo de execução. Recursão. Estruturas ligadas.
Características de bons algoritmos. Análise de complexidade
temporal e espacial de algoritmos. Algoritmos de ordenação e
pesquisa em vectores. Conceito de tipo de dados abstracto.
Estruturas lineares: listas, pilhas e filas. Árvores
binárias. Árvores binárias de pesquisa. Tabelas de dispersão.
Estratégias de implementação para as estruturas de dados
lineares, árvores e tabelas de dispersão. Aplicações de
estruturas de dados e algoritmos. Estratégias para escolher
a estrutura de dados adequada.
|
Objectivos: |
Pretende-se que os alunos adquiram
conhecimentos fundamentais em estruturas de dados e
algoritmos, tipos de dados abstractos e programação com
classes, nomeadamente que sejam capazes de: identificar as
propriedades de bons algoritmos; distinguir especificação,
implementação e utilização/aplicação de estruturas de dados;
utilizar uma linguagem de programação orientada por objectos
para implementar, testar e depurar algoritmos e estruturas
de dados (listas, pilhas, filas, árvores binárias, árvores
binárias de pesquisa e tabelas de dispersão); comparar
implementações alternativas de estruturas de dados; escrever
programas que usem essas estruturas de dados; conhecer
aplicações típicas dessas estruturas de dados; criar/seleccionar
algoritmos e estruturas de dados para resolver problemas
simples; escolher as estruturas de dados apropriadas para
modelar um dado problema.
|
Bibliografia
Principal: |
Data Structures and Algorithm Analysis in
C++, 3rd ed., Mark Allen Weiss, Addison-Wesley, 2006, ISBN:
0-321-44146-X
|
Bibliografia
Complementar: |
C++: How to Program, H.M. Deitel & P.J.
Deitel, 3rd edition, Prentice Hall, 2001, ISBN 0130895725
Data Structures, Algorithms, and Applications in C++, Sartaj
K. Sahni, McGraw Hill, 1998, ISBN 0071155953
Programação em C++, Conceitos Básicos e Algoritmos, P.
Rodrigues, P. Pereira, M. Sousa, FCA - Editora de
Informática, 1998, ISBN=972722038X
Programação em C++, Algoritmos e Estruturas de Dados, P.
Rodrigues, P. Pereira, M. Sousa, FCA - Editora de
Informática, 2000, ISBN 9727221998
Programação, Algoritmos e Estruturas de Dados. João Pedro
Neto. Escolar Editora. 2004. ISBN: 972-592-179-8
The C++ Programming Language, 3rd ed., Bjarne Stroustrup,
Addison-Wesley, 1997, ISBN 0-201-88954-4
Programação com Classes em C++, Pedro Guerreiro, FCA -
Editora de Informática, 2000, ISBN 972-722-204-8 |
Métodos
de ensino: |
As aulas teóricas serão usadas para a
exposição da matéria e apresentação e discussão de pequenos
exemplos de aplicação.
As aulas práticas serão usadas para a resolução de problemas
e para o desenvolvimento, teste e análise de programas que
envolvem os algoritmos e estruturas de dados tratados nas
aulas teóricas.
As aulas práticas servem também para avaliação, nos moldes
especificados a seguir.
|
Designação
das aplicações
Informáticas
a utilizar: |
Sistema operativo Linux. Compilador g++. |
Modo de Avaliação: |
Avaliação distribuída sem exame final. |
Componentes de Avaliação: |
|
Condições para obtenção de frequência: |
Avaliação prática (4 avaliações,
para todos os alunos, sem recurso):
Nota (AP) é a média das 3 melhores avaliações e vale 40% da
nota final.
Avaliação teórica-questionários (4 avaliações, para alunos
com frequência regular):
Nota (AQ) é a média das 3 melhores avaliações e vale 20% da
nota final.
Nota de frequência: Nfreq = AP * (2/3) + AQ * (1/3)
Mínimo nesta componente para obtenção de frequência é 6
valores.
Faltas: o regime em vigor; as faltas aos pontos de avaliação
resultam em nota 0.
|
Fórmula de cálculo da classificação
final: |
Avaliação teórica-mini-testes (2 avaliações,
para todos os alunos)
Nota (AM) é a média das notas dos 2 mini-testes e vale 40%
da nota final.
Mínimo nesta componente para aprovação na disciplina é 6
valores.
Nota final: NFinal = NFreq * 0,6 + AM * 0,4 .
|
Provas e trabalhos especiais: |
Os exames realizados ao abrigo dos
regimes especiais de frequência consistirão de uma prova
especial destinada a avaliar os conhecimentos teóricos e
práticos dos alunos.
|
Formas de avaliação de casos
especiais (por exemplo TE, M, DA): |
A avaliação prática é exigida a
todos os alunos, independentemente do regime de inscrição e
da necessidade de obter avaliação de frequência. Os alunos
inscritos ao abrigo de regimes especiais sem frequência de
aulas práticas devem acordar com os docentes as turmas em
que se submetem a avaliação prática. A avaliação teórica
destes alunos é feita por 2 mini-testes especiais (2 horas
de duração), realizados nas mesmas datas dos mini-testes
regulares.
|
Formas de melhoria da classificação
final/distríbuida: |
As melhorias de classificação
requerem a inscrição na edição seguinte da disciplina, de
forma a cumprir os requisitos de avaliação teórica e prática.
|
Observações e comentários adicionais,
incluindo pré-requisitos: |
Embora a disciplina não tenha
pré-requisitos especiais, conhecimentos adquiridos na
disciplina de
Programação são muito úteis para a disciplina. |
|
|
|