Go to:
You are here: Start > L.EIC009


Code: L.EIC009     Acronym: P

Classification Keyword
OFICIAL Informatics Engineering and Computing

Instance: 2021/2022 - 2S Ícone do Moodle

Active? Yes
Web Page: https://moodle.up.pt/course/view.php?id=4082
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Bachelor in Informatics and Computing Engineering

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
L.EIC 401 Syllabus 1 - 6 52 162

Teaching Staff - Responsibilities

Teacher Responsibility
Eduardo Resende Brandão Marques
Jorge Alves da Silva
Mais informaçõesLast updated on 2022-03-04.

Fields changed: Eligibility for exams

Teaching language

Obs.: Português


The aim of this curricular unit is that students acquire fundamental knowledge on imperative and object oriented programming in C/C++.

Learning outcomes and competences

The students who complete this curricular unit successfully must be able to solve programming problems using C/C++ code that is well structured, readable, documented and validated.

Working method


Pre-requirements (prior knowledge) and co-requirements (common knowledge)

No previous knowledge is required.


- Imperative programming in C/C++:

  • Primitive and structured data types. Operators. Declaration and scope of variables.
  • Program control flow: choice, iteration, functions.
  • Pointers, dynamic memory allocation, pointer arithmetic.

- Object-oriented programming in C++:

  • Classes and objects: fundamental notions. Class definition, information encapsulation.
  • Inheritance between classes and polymorphism.
  • Generic classes and methods ("templates"). The Standard Template Library (STL).
  • Exceptions.

- Cross-cutting concerns

  • Use of the most common functionalities in the standard C/C++ libraries.
  • Good programming practices.
  • Structuring programs with several modules.
  • Code readability and documentation.
  • Bug detection and program validation using runtime sanitizers and unit tests.

Mandatory literature

Deitel, P. & Deitel, H. ; C++ How to Program, Pearson, 2016
Paul J. Deitel; C how to program. ISBN: 978-0-13-705966-9

Complementary Bibliography

Brian W. Kernighan; The C programming language. ISBN: 0-13-110362-8
Bjarne Stroustrup; The C++ programming language, Addison-Wesley. ISBN: 978-0321563842
Horstmann, C.; Big C++: Late Objects, John Wiley & Sons Inc., 2017

Teaching methods and learning activities

• Lectures: exposition of the course topics, using materials previously made available to students, accompanied by the discussion and resolution of cases.
• Practical lessons: resolution of programming exercises in C/C++; whenever the teacher deems it necessary, he can encourage students with difficulties to seek the help of monitors.
• Outside of classes: resolution of programming exercises in C/C++ and multiple-answer questionnaires on the subjects taught.

Automatic code correction tools are used to increase the speed of feedback given to students.


GCC: compilador de C/C++
IDE para desenvolvimento em C++ (Visual Studio Code, Eclipse ou outros)

Evaluation Type

Distributed evaluation without final exam

Assessment Components

Designation Weight (%)
Trabalho prático ou de projeto 10,00
Teste 90,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Estudo autónomo 110,00
Frequência das aulas 52,00
Total: 162,00

Eligibility for exams

Conditions to obtain eligibility for exams: do not exceed the absence limit, established in the rules (25% of the total number of estimated practical lessons).
Students with recognized special status (TE, DA, …) or who were eligible in the Programming curricular unit
at MIEIC are exempt from this requirement of attendance to the practical classes. However, students who have obtained attendance in previous academic years must carry out, in this academic year, the assessment components indicated in the "Final grade calculation formula".
Students who fail to obtain a minimum of 40% in the final classification are also graded with "RFF".

Calculation formula of final grade

Distributed evaluation without final exam.

The final grade is given by the following formula:

Final grade = 10% AC + MAX(45% P1 + 45% P2,  90% P3)

Assessment components:

AC - Continuous assessment: multiple-answer questions and weekly programming exercises.

P1 - Computer-based exam, with 2 components, theoretical and practical, to be taken in the middle of the semester.

P2 - Computer-based exam, with 2 components, theoretical and practical, to be taken at the end of the semester.

P3 - Computer-based exam, with 2 components, theoretical and practical, to be taken at the beginning of the exam season, for:

  • students who have not been approved taking the AC, P1, and P2 components into account
  • students who want to improve the grade obtained in the P1 and P2 components.

Examinations or Special Assignments


Internship work/project


Special assessment (TE, DA, ...)

Students with a special status, although they may be exempted from attending practical lessons, are subject to the same assessment conditions as regular students.

Classification improvement

Students who want to improve their grade in the Programming course of MIEIC, from the previous academic year, will have to undergo the entire evaluation process; they only waive the requirement of assiduity to practical classes.


Approval in Fundamentos de Programação / Programming Fundamentals (L.EIC003), or equivalent, is advisable.

Recommend this page Top
Copyright 1996-2022 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2022-08-14 at 09:46:55 | Reports Portal