Saltar para:
Logótipo
This page in english Ajuda Autenticar-se
Clube de Leitura  Vamos a Livros
Hoje é domingo
Você está em: Início > L.EIC009

Programação

Código: L.EIC009     Sigla: P

Áreas Científicas
Classificação Área Científica
OFICIAL Engenharia Informática e Computação

Ocorrência: 2021/2022 - 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: Licenciatura 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
L.EIC 398 Plano Oficial 1 - 6 52 162

Docência - Responsabilidades

Docente Responsabilidade
Jorge Alves da Silva Regente
Mais informaçõesA ficha foi alterada no dia 2021-07-30.

Campos alterados: Fórmula de cálculo da classificação final, Melhoria de classificação, Obtenção de frequência, Componentes de Avaliação e Ocupação, Observações, Lingua de trabalho, Software de apoio à Unidade Curricular, Programa

Língua de trabalho

Português

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 ou binários; "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. 
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. Destruidores. "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. Abstração de dados.

Bibliografia Obrigatória

Cay Horstmann; Big C++. ISBN: 978-0-470-38328-5

Bibliografia Complementar

Horstmann, C.; Big C++: Late Objects, John Wiley & Sons Inc., 2017
Savitch, W. & Mock K. ; Problem Solving with C++, Pearson, 2017
Lippman, S. & Lajoie, J. & Moo, B. ; C++ Primer, Addison-Wesley Professional, 2014
Deitel, P. & Deitel, H. ; C++ How to Program, Pearson, 2016
Stroustrup, B.; Principles and Practice Using C++, Addison-Wesley Professional, 2014

Métodos de ensino e atividades de aprendizagem

• Aulas teóricas: exposição dos temas programáticos acompanhada pela discussão e resolução de casos.
• Aulas teórico-práticas: resolução de exercícios de programação em C/C++. 
• Fora das aulas: desenvolvimento, em grupo, de 2 pequenos projetos (/ trabalhos práticos), sendo cada grupo constituído por 2 estudantes.

Software

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

Tipo de avaliação

Avaliação distribuída com exame final

Componentes de Avaliação

Designação Peso (%)
Exame 50,00
Trabalho prático ou de projeto 25,00
Teste 25,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 90,00
Frequência das aulas 52,00
Elaboração de projeto 20,00
Total: 162,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.

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

Avaliação distribuída (AvD) com exame final (AvEx).
Componentes de avaliação:
• 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 código do projeto que submeterão na página da unidade curricular. O 2.o projeto será defendido oralmente pelos elementos do grupo, escolhidos pelo docente.
• AvD = Mini_teste * 50% + Projeto_2 * 50%
• AvEx - classificação do exame final
• 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.
• Todos os componentes de avaliação são classificados numa escala de  0 a 20.

Avaliação especial (TE, DA, ...)

Os estudantes 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 estudantes regulares. Devem realizar e submeter os trabalhos práticos / projetos nos períodos e datas estabelecidos para os restantes estudantes.

Melhoria de classificação

A classificação pode ser melhorada da seguinte forma: a classificação dos projetos (/ trabalhos práticos) pode ser melhorada na ocorrência seguinte desta unidade curricular; a classificação do exame final pode ser melhorada nas épocas seguintes, legalmente previstas.

Os estudantes que pretendam melhorar a classificação obtida no ano letivo anterior poderão optar por realizar apenas o(s) projetos, apenas a(s) componente(s) de avaliação individual (mini-teste e exame) ou ambos. Os estudantes que pretendam realizar o(s) projeto(s) devem contactar o docente responsável, no início do curso e após a divulgação de cada projeto, para a marcação de sessões de acompanhamento do trabalho. A entrega dos projetos ocorrerá em simultâneo com a dos restantes estudantes.

Observações

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

Recomendar Página Voltar ao Topo
Copyright 1996-2022 © 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: 2022-01-16 às 10:06:27 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais