Programação
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Programação |
Ocorrência: 2010/2011 - 2S
Ciclos de Estudo/Cursos
Língua de trabalho
Português
Objetivos
O estudante deverá completar e consolidar a aprendizagem de programação iniciada na disciplina Fundamentos da Programação com a linguagem Scheme, utilizando agora a linguagem C++.
No final da unidade curricular o estudante será capaz de:
- identificar os conceitos fundamentais da programação procedimental e da programação baseada em objectos;
- resolver problemas de programação de baixa e média complexidade utilizando a linguagem C++ e as abstracções definidas na biblioteca standard do C++;
- desenvolver soluções para problemas de programação que passem pela definição e implementação em C++ de abstracções definidas pelo próprio.
Programa
INTRODUÇÃO AO C/C++
Tipos de dados fundamentais e E/S básica: Variáveis e tipos de dados simples; Declarações; Operadores; Expressões aritméticas e Booleanas; .
Estruturas de controlo: estruturas de selecção e de repetição.
Tipos de dados estruturados: arrays e strings de C; vectors e strings de C++.
Apontadores e alocação de memória dinâmica.
Funções: definição e declaração de funções; variáveis locais e variáveis globais; mecanismos de passagem de parâmetros e retorno de valores (passagem de parâmetros por valor e por referência).
Streams: entrada e saída usando ficheiros de texto; stringstreams.
INTRODUÇÃO ÀS CLASSES E ABSTRACÇÃO DE DADOS
Conceitos fundamentais. Classes e Structs. Encapsulamento. Membros-dado e membros-função. Construtores- Construtores com parâmetros. "Templates". Introdução à concepção de programas OO. Relações entre classes; implementação de associações.
STANDARD TEMPLATE LIBRARY
Contentores: string, vector, list, map, set. Iteradores e algoritmos.
CLASSES – CONCEITOS ADICIONAIS
Qualificadores especiais: const, static, friend. Construtores de cópia. Destrutores. "Overloading" de operadores.
HERANÇA E POLIMORFISMO
Classes derivadas. Acesso aos membros da classe base. Formas de polimorfismo: "overloading" de funções; "overriding" (funções virtuais); "templates".
EXEMPLOS
Concepção de programas usando programação OO.
Implementação de contentores.
Bibliografia Obrigatória
H. M. Deitel, P. J. DeitelDeitel;
C++ how to program. ISBN: 0-13-185757-6 (Existe uma versão mais actual (7/ed) com ISBN 0-13-611726-0)
Bibliografia Complementar
Andrew Koenig, Barbara E. Moo;
Accelerated C++. ISBN: 0-201-70353-X
Lippman, Stanley B.;
C++ Primer. ISBN: 0-201-82470-1
Métodos de ensino e atividades de aprendizagem
• Aulas Teóricas: A exposição dos temas programáticos acompanhada pela discussão e resolução de casos.
• Aulas Teórico-Práticas: Desenvolvimento de uma pequena série de projectos em C++ e avaliação do trabalho realizado pelos estudantes, organizados em pequenos grupos (normalmente, de 2 estudantes).
Tipo de avaliação
Avaliação distribuída com exame final
Componentes de Avaliação
Descrição |
Tipo |
Tempo (Horas) |
Peso (%) |
Data Conclusão |
Participação presencial (estimativa) |
Participação presencial |
60,00 |
|
|
Trabalhos fora das aulas |
Teste |
60,00 |
|
2011-06-03 |
Exame |
Exame |
3,00 |
|
2011-07-15 |
|
Total: |
- |
0,00 |
|
Componentes de Ocupação
Descrição |
Tipo |
Tempo (Horas) |
Data Conclusão |
Estudo das matérias leccionadas |
Estudo autónomo |
50 |
2011-06-03 |
Preparação para exame |
Estudo autónomo |
16 |
2011-07-15 |
|
Total: |
66,00 |
|
Obtenção de frequência
Condições para obtenção de frequência
Não exceder o limite de faltas estabelecido pelas Normas e obter uma classificação mínima de 40% na avaliação distribuída.
Fórmula de cálculo da classificação final
Avaliação distribuída (AvD) com exame final (AvEx).
• AvD - No início das aulas teórico-práticas, os docentes organizam as turmas em grupos de, normalmente, 2 estudantes. Durante o semestre, são apresentados 2 projectos que os grupos desenvolverão tanto nas aulas teórico-práticas, como fora das aulas. O docente avaliará o trabalho dos grupos pelo respectivo desempenho nas aulas e também pelo material que submeterão na página da disciplina. Para o último projecto, cada grupo apresentará um pequeno relatório e o projecto será defendido oralmente por elementos do grupo, escolhidos pelo docente.
• AvD e AvEx são especificadas numa escala de 0 a 20 valores.
• Peso dos projectos em AvD:
- Projecto 1 - 40%
- Projecto 2 - 60%
• Classificação = AvD * 0.5 + AvEx * 0.5
• Prova oral: sempre que a equipa docente achar necessário, o estudante poderá ser submetido a uma prova oral. Nesta situação, a classificação final será dada pela média aritmética da classificação calculada pela fórmula anterior e da classificação da prova oral.
Observações:
1- É condição de aprovação a obtenção de uma classificação mínima de 40% na componente AvEx.
2- Se, por decisão do docente, não ocorrer algum dos projectos, a cotação correspondente será redistribuída pelos restantes elementos de avaliação.
Provas e trabalhos especiais
Ver AvD, em Componentes de avaliação.
Avaliação especial (TE, DA, ...)
Os alunos com estatuto especial, embora possam estar dispensados da frequência das aulas práticas, estão sujeitos às mesmas condições de avaliação dos alunos regulares, isto é, devem realizar e submeter os trabalhos práticos nos períodos e datas estabelecidos para os restantes alunos.
Melhoria de classificação
A classificação de frequência pode ser melhorada na ocorrência seguinte desta unidade curricular.
A classificação do exame escrito pode ser melhorada nas épocas legalmente previstas.
Observações
Recomenda-se a frequência com aproveitamento de Fundamentos de Programação ou equivalente.