Go to:
Esta página em português Ajuda Autenticar-se
Projecto da Casa da U. Porto
You are here: Start > EIC0012

Site map
Edifício A (Administração) Edifício B (Aulas) - Bloco I Edifício B (Aulas) - Bloco II Edifício B (Aulas) - Bloco III Edifício B (Aulas) - Bloco IV Edifício C (Biblioteca) Edifício D (CICA) Edifício E (Química) Edifício F (Minas e Metalurgia) Edifício F (Minas e Metalurgia) Edifício G (Civil) Edifício H (Civil) Edifício I (Electrotecnia) Edifício J (Electrotecnia) Edifício K (Pavilhão FCNAUP) Edifício L (Mecânica) Edifício M (Mecânica) Edifício N (Garagem) Edifício O (Cafetaria) Edifício P (Cantina) Edifício Q (Central de Gases) Edifício R (Laboratório de Engenharia do Ambiente) Edifício S (INESC) Edifício T (Torre do INEGI) Edifício U (Nave do INEGI) Edifício X (Associação de Estudantes)


Code: EIC0012     Acronym: PROG

Classification Keyword
OFICIAL Programming

Instance: 2017/2018 - 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: Master 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
MIEIC 212 Syllabus since 2009/2010 1 - 7,5 70 202,5

Teaching Staff - Responsibilities

Teacher Responsibility
Jorge Alves da Silva

Teaching - Hours

Lectures: 3,00
Recitations: 2,00
Type Teacher Classes Hour
Lectures Totals 1 3,00
Jorge Alves da Silva 3,00
Recitations Totals 8 16,00
Jorge Alves da Silva 2,00
Nuno Miguel Cardanha Paulino 4,00
Rosaldo José Fernandes Rossetti 4,00
José Carlos de Queirós Pinto 4,00
Liliana da Silva Ferreira 2,00

Teaching language

Suitable for English-speaking students


The main objectives of this curricular unit are to transmit to the students:
- 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. Streams: input/output using text files; string streams. INTRODUCTION TO CLASSES AND DATA ABSTRACTION Fundamental concepts. Classes and Structs. Encapsulation. Data-members and function-members. Constructors; constructors with parameters. Template functions and classes. Introduction to the design of object-oriented code. Relationships between classes; implementing associations. STANDARD TEMPLATE LIBRARY Containers: string, vector, list, map, set. Iterators and algorithms. CLASSES – ADDITIONAL CONCEPTS Special qualifiers: const, static, friend. Copy-constructors. Destructors. Operator overloading. INHERITANCE AND POLYMORPHISM Derived classes. Accessing base-class members. Function overloading, function overriding and templates. APPLICATION EXAMPLES (along the curricular unit) Program conception using object oriented design. Container implementation.

Mandatory literature

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

Complementary Bibliography

H. M. Deitel, P. J. DeitelDeitel; C++ how to program. ISBN: 0-13-185757-6
Andrew Koenig, Barbara E. Moo; Accelerated C++. ISBN: 0-201-70353-X
Lippman, Stanley B.; C++ Primer. ISBN: 0-201-82470-1

Teaching methods and learning activities

• Lectures: Exposition of the course topics and discussion of example cases. • Practical lessons: Development of a series of small projects in C++ and its evaluation. The projects are done by groups of two students, whenever possible.


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

Evaluation Type

Distributed evaluation with final exam

Assessment Components

Designation Weight (%)
Exame 50,00
Teste 20,00
Trabalho laboratorial 30,00
Total: 100,00

Amount of time allocated to each course unit

Designation Time (hours)
Estudo autónomo 59,00
Frequência das aulas 70,00
Trabalho laboratorial 60,00
Total: 189,00

Eligibility for exams

Do not exceed the absence limit and obtain a minimum of 40% in the distributed evaluation grading and a minimum of 30% in the short exame ("mini-teste"). Students who have attained the minimum required grading in the distributed evaluation component in the previous occurrence of this course may keep the obtained grading; in this case they must inform the teacher, during the first week of the course, and they should not register for the theoretical-practical classes. Note: although the 1st project will not be graded, it must developed, submitted and presented (if requested) as a necessary condition for approval in the distributed evaluation component.

Calculation formula of final grade

Evaluation components Distributed evaluation (DEv) with final exam (ExEv). • DEv - The grading of this component will be based on the results obtained by the student in a short exame ("mini-teste"), that will take place by the middle of the semester,  and a programming project. Two projects will be developed during classes and beyond; only the second project will be graded. For the execution of the projects students are organized in groups of two. Evaluation will be based on the submitted material and performance during classes. For the second project a report will be written and an oral presentation will be required. • ExEv – Final exam, a written test with bibliography support. • DEv and ExEv are specified in a 0 to 20 scale. • DEv grading: - Short exam - 40% - Project 2 - 60% • Final grading = DEv * 50% + ExEv * 50% • Oral examination: whenever needed, according to 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. 

Examinations or Special Assignments

See DEv, in Evaluation components.

Special assessment (TE, DA, ...)

Students with a special status will be assessed in the same way as ordinary students. They should to do all the assignments and deliver them on the dates scheduled for regular students.

Classification improvement

The continuous assessment component can be improved as follows: the short exam mark can be improved in the final exam, the mark attributed to the short exam being equal to the mark obtained in the exam; the mark of the practical work can be improved in the next occurrence of this curricular unit. Students can improve the mark of the final exam at the corresponding seasons (according to the rules).

Students who wish to improve the classification obtained in the previous academic year may choose to only do the practical work, only the exam or both. The improvement of the mini-test will be done in the exam, being the classification attributed to the short exam equal to the classification obtained in the exam. Students wishing to improve their practical work should contact the teacher responsible for the course for scheduling work follow-up sessions. The delivery of the practical work will occur simultaneously with that of the other students.


Fundamentos de Programação / Programming Fundamentals (or equivalent) frequency and approval is advisable.

Recommend this page Top
Copyright 1996-2019 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2019-04-22 at 22:00:11