Go to:
Esta página em português Ajuda Autenticar-se
Exposição Concurso IACES - LC Porto
Today is sunday
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=1437
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 398 Syllabus 1 - 6 52 162

Teaching Staff - Responsibilities

Teacher Responsibility
Jorge Alves da Silva
Mais informaçõesLast updated on 2021-07-30.

Fields changed: Calculation formula of final grade, 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

Teaching language



The main objectives of this curricular unit are that students acquire:
- fundamental knowledge on procedural and object oriented programming techniques;
- the ability of applying those programming paradigms to develop programs, using the C++ language as development tool.

Learning outcomes and competences

The students who complete successfully this curricular unit must be able:
- To solve programming problems of low/medium complexity using the C++ programming language and the abstractions from the C++ standard template library (STL);
- To develop solutions to programming problems by defining and implementing user-defined abstractions in C++;
- To write well structured, legible and well commented programs;
- To compile programs, execute and debug them.

Working method



INTRODUCTION TO C/C++. Fundamental data types and basic input/output: variables and simple data; declarations; operators; arithmetic and Boolean expressions; input/output using the keyboard/screen. Control structures: selection; repetition. Structured data types: arrays and C strings; STL vectors and strings. Pointers and dynamic memory allocation. Functions: definition and declaration; local and global variables; parameter-passing mechanisms (call-by-value and call-by-reference) and return values; const reference parameters; function overloading; template functions. Streams: input/output using text or binary files; stringstreams.
INTRODUCTION TO CLASSES AND DATA ABSTRACTION. Fundamental concepts. Classes and structs. Encapsulation. Data-members and function-members. Constructors; constructors with parameters. Template classes. Introduction to the design of object-oriented code. Relationships between classes; implementing associations.
STANDARD TEMPLATE LIBRARY. Containers: vector, list, map, set. Iterators and algorithms.
CLASSES – ADDITIONAL CONCEPTS. Special qualifiers: const, static, friend. Copy-constructors. Destructors. Operator overloading.
INHERITANCE AND POLYMORPHISM. Basic concepts. Derived classes; accessing base-class members. Forms of polymorphism: function overloading, function overriding and templates. Abstract classes.
APPLICATION EXAMPLES. (along the curricular unit) Program conception using object oriented design. Data abstraction.

Mandatory literature

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

Complementary Bibliography

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

Teaching methods and learning activities

• Lectures: exposition of the course topics and discussion of example cases.
• Practical lessons: resolution of programming exercises in C++;
• Outside of classes: development of 2 small projects (/ practical works), by groups of 2 students.


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

Evaluation Type

Distributed evaluation with final exam

Assessment Components

Designation Weight (%)
Exame 50,00
Trabalho prático ou de projeto 25,00
Teste 25,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Estudo autónomo 90,00
Frequência das aulas 52,00
Elaboração de projeto 20,00
Total: 162,00

Eligibility for exams

Conditions to obtain eligibility for exams: do not exceed the absence limit and obtain a minimum of 40% in the distributed evaluation grading.

Calculation formula of final grade

Distributed evaluation (DEv) with final exam (ExEv).
Evaluation components:

The classification of this component will be obtained based on the results of a short exam, to be carried out in the middle of the semester, and of a project. During the semester, 2 projects will be presented that the groups will develop both in theoretical-practical classes, as well as outside classes; only the 2nd project will be subject to classification. At the beginning of the theoretical-practical classes, the teacher will organize the classes into groups of, normally, 2 students. The teacher will evaluate the work of the groups by their performance in class and also by the code of the project they will submit on the course page. The 2nd project will be defended orally by the elements of the group, chosen by the teacher.
• DEv = Short_exam * 50% + Project_2 * 50%
• ExEv – final exam grade
• Final grading = DEv * 50% + ExEv * 50%
• Oral examination: on decision of the teaching team, students may be submitted to an oral examination; in this situation the final grading will be given by the average of the grading calculated with the previous formula and the grading of the oral examination.
• Observation: a minimum of 40% on the ExEv evaluation component is required to pass the class. 
• All assessment components are classified using a scale of 0 to 20.

Special assessment (TE, DA, ...)

Students with a special status will be assessed in the same way as ordinary students. They must to do all the practical works / projects and submit them on the dates scheduled for regular students.

Classification improvement

The classification can be improved as follows: the grade of the projects (/ practical works) can be improved in the next occurrence of this curricular unit; the grade of the final exam can be improved in the next exam seasons, according to the rules.

Students wishing to improve the classification obtained in the previous academic year may choose to carry out only the project(s), only the individual assessment component(s) (short exam and exam) or both. Students wishing to carry out the project(s) must contact the responsible teacher, at the beginning of the course and after the announcement of each project, to schedule follow-up sessions for the work. The submission of the projects will occur simultaneously with that of the other students.


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-01-16 at 11:31:58