Saltar para:
Logótipo
Você está em: Início > EIC0012

Programação

Código: EIC0012     Sigla: PROG

Áreas Científicas
Classificação Área Científica
OFICIAL Programação

Ocorrência: 2017/2018 - 2S Ícone do Moodle

Ativa? Sim
Página Web: https://moodle.up.pt/course/view.php?id=1437
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Mestrado Integrado em Engenharia Informática e Computação

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
MIEIC 212 Plano de estudos a partir de 2009/10 1 - 7,5 70 202,5

Língua de trabalho

Português - Suitable for English-speaking students

Objetivos

Os objetivos principais desta unidade curricular são dotar os estudantes com:
- conhecimentos fundamentais sobre a programação procedimental e a programação baseada em objectos;
- a capacidade de aplicar esses paradigmas de programação para desenvolver programas, usando a linguagem C++ como ferramenta.

 

Resultados de aprendizagem e competências

Os estudantes que concluirem com sucesso esta unidade curricular, deverão ser capazes de:
- Resolver problemas de programação de baixa/média complexidade utilizando a linguagem C++ e as abstrações definidas na biblioteca standard (STL) de C++;
- Desenvolver soluções para problemas de programação que passem pela definição e implementação em C++ de abstrações definidas pelo próprio;
- Escrever programas bem estruturados, legíveis e bem comentados.
- Compilar programas, executá-los e corrigir os seus erros.

Modo de trabalho

Presencial

Programa

INTRODUÇÃO À LINGUAGEM C/C++ Tipos de dados simples e E/S básica. Operadores. Expressões aritméticas e booleanas. Estruturas de controlo: estruturas de selecção e de repetição. Tipos de dados estruturados: "arrays","strings" e "structs" de C; "vectors" e "strings" de C++. Apontadores e alocação dinâmica de memória. 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); "overloading" de funções; “templates”. Funções recursivas. "Streams": entrada e saída usando ficheiros de texto; "stringstreams". INTRODUÇÃO ÀS CLASSES E ABSTRAÇÃO DE DADOS Conceitos fundamentais. Classes e "structs". Membros-dado e membros-função de uma classe; visibilidade dos membros; conceito de encapsulamento. Construtores; construtores com parâmetros. “Templates”. Introdução à conceção de programas OO. Relações entre classes; implementação de associações. Introdução à notação UML. STANDARD TEMPLATE LIBRARY Contentores: "vector", "list", "queue", "stack", "map", "multimap", "set", "multiset". Iteradores e algoritmos. CLASSES – CONCEITOS ADICIONAIS Uso de qualificativos especiais: "const", "static", "friend". Construtores de cópia. Destrutores. "Overloading" de operadores. HERANÇA E POLIMORFISMO Conceitos de herança e de polimorfismo. Classes derivadas. Acesso aos membros da classe base. Formas de polimorfismo: "overloading" de funções; "overriding" (funções virtuais); "templates". Classes abstratas. TRATAMENTO DE EXCEÇÕES (introdução) EXEMPLOS DE APLICAÇÃO (ao longo da unidade curricular) Conceção de programas usando programação OO. Implementação de abstrações

Bibliografia Obrigatória

Cay Horstmann, Timothy A. Budd; Big C++. ISBN: 978-0-470-38328-5

Bibliografia Complementar

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)
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: Na primeira parte do semestre serão dedicadas à realização de exercícios de programação. Seguir-se-á o desenvolvimento de dois projectos em C++ e avaliação do trabalho realizado pelos estudantes, organizados em pequenos grupos (normalmente, de 2 estudantes).

Software

IDE para desenvolvimento em C++ (Visual Studio, Eclipse ou outros)

Tipo de avaliação

Avaliação distribuída com exame final

Componentes de Avaliação

Designação Peso (%)
Exame 50,00
Teste 20,00
Trabalho laboratorial 30,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 59,00
Frequência das aulas 70,00
Trabalho laboratorial 60,00
Total: 189,00

Obtenção de frequência

Condições para obtenção de frequência: não exceder o limite de faltas estabelecido nas normas e obter uma classificação mínima de 40% na avaliação distribuída e uma classificação mínima de 30% no mini-teste. Os estudantes que obtiveram frequência no ano letivo anterior podem manter a nota de frequência que obtiveram nesse ano; devem, neste caso, informar o docente responsável pela U.C., durante a primeira semana de aulas, e não devem inscrever-se nas turmas teórico-práticas. Nota: apesar de o 1.o projeto não ser classificado, é condição necessária para a obtenção de frequência o desenvolvimento, entrega e apresentação (quando solicitada) desse projeto.

Fórmula de cálculo da classificação final

Avaliação distribuída (AvD) com exame final (AvEx). • AvD - A classificação desta componente será obtida com base nos resultados de um "mini-teste", a realizar em meados do semestre, e de um projeto. Durante o semestre, serão apresentados 2 projetos que os grupos desenvolverão tanto nas aulas teórico-práticas, como fora das aulas; apenas o 2º projeto será sujeito a classificação. No início das aulas teórico-práticas, o docente organizará as turmas em grupos de, normalmente, 2 estudantes. O docente avaliará o trabalho dos grupos pelo respetivo desempenho nas aulas e também pelo material que submeterão na página da disciplina. Para o segundo projeto, cada grupo apresentará um pequeno relatório e o projeto será defendido oralmente por elementos do grupo, escolhidos pelo docente. • AvD e AvEx são especificadas numa escala de 0 a 20 valores. • Classificação AvD: - Mini-teste - 40% - Projecto 2 - 60% • Classificação final = AvD * 50% + AvEx * 50% • 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ção: é condição de aprovação a obtenção de uma classificação mínima de 40% na componente AvEx.

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. 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 distribuída desta ocorrência pode ser melhorada da seguinte forma: a classificação do mini-teste pode ser melhorada no exame final, sendo a classificação atribuída ao mini-teste igual à classificação obtida no exame; a classificação do trabalho prático pode ser melhorada na ocorrência seguinte desta unidade curricular. A classificação do exame final pode ser melhorada nas épocas legalmente previstas.

Os estudantes que pretendam melhorar a classificação obtida no ano letivo anterior, poderão optar por realizar apenas o trabalho prático, apenas o exame ou ambos. A melhoria do mini-teste será feita no exame, sendo a classificação atribuída ao mini-teste igual à classificação obtida no exame. Os estudantes que pretendam melhorar o trabalho prático devem contactar o docente responsável para a marcação de sessões de acompanhamento do trabalho. A entrega do trabalho prático ocorrerá em simultâneo com a dos restantes estudantes.

Observações

Recomenda-se a frequência com aproveitamento de Fundamentos de Programação ou equivalente.

Recomendar Página Voltar ao Topo
Copyright 1996-2024 © Faculdade de Engenharia da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2024-07-27 às 19:37:11 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias