Go to:
Esta página em português Ajuda Autenticar-se
Formação regular da Biblioteca |fevereiro a maio
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: 2014/2015 - 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 182 Syllabus since 2009/2010 1 - 7 70 189

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 7 14,00
Rui Carlos Camacho de Sousa Ferreira da Silva 4,00
Jorge Manuel Gomes Barbosa 4,00
Rosaldo José Fernandes Rossetti 4,00
Jorge Alves da Silva 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

Students can only improve the mark of the continuous assessment component in the following year. Students can improve the mark of the written exam at the corresponding seasons (according to the rules).


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-05-25 at 19:02:32