Go to:
Esta página em português Ajuda Autenticar-se
Formação regular da Biblioteca |fevereiro a maio
You are here: Start > EIC0005

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)

Programming Fundamentals

Code: EIC0005     Acronym: FPRO

Classification Keyword
OFICIAL Programming Fundamentals

Instance: 2014/2015 - 1S (of 14-09-2015 to 29-07-2016) Ícone do Moodle

Active? Yes
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 177 Syllabus since 2009/2010 1 - 6 70 162

Teaching - Hours

Lectures: 3,00
Recitations: 2,00
Type Teacher Classes Hour
Lectures Totals 1 3,00
António Fernando Vasconcelos Cunha Castro Coelho 3,00
Recitations Totals 6 12,00
Pedro Gonçalo Ferreira Alves Nogueira 4,00
António Fernando Vasconcelos Cunha Castro Coelho 4,00
Rui Pedro Amaral Rodrigues 4,00
Mais informaçõesLast updated on 2014-08-14.

Fields changed: Components of Evaluation and Contact Hours, Fórmula de cálculo da classificação final

Teaching language




Informatics Engineers require expertise in programming techniques which can only be consolidated with a good basis in programming fundamentals.


To develop the basic knowledge to solve medium complexity programming problems.


Scientific component: 40%

Technological component: 60%


Learning outcomes and competences

At the end of the course, the student is expected to handle programming problems of medium complexity.

More specifically, the student will be able to:

  • Develop algorithms for specfic problems by adopting a structured approach;
  • Select and create appropriate abstractions, both in terms of procedures and data;
  • Use as a development tool to the Scheme language, characterized by a simple syntax.


Working method


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

No previous knowledge is required.


Procedural abstraction: introduction to Scheme programming, procedures and processes, recursion and iteration, order of growth of the processes.

Data abstraction: selectors and constructors, abstraction barriers, lists, abstraction example (sets).

Mutable data abstractions: constructors, selectors and mutators, mutable lists, queues, tables, vectors, text files.

Mandatory literature

Fernando Nunes Ferreira, António Fernando Coelho; Scheme na descoberta da programação, FEUP Edições, 2011. ISBN: 978-972-752-115-9

Complementary Bibliography

Springer, George; Scheme and the Art of Programming. ISBN: 0-262-19288-8
Abelson, Harold; Structure and interpretation of computer programs. ISBN: 0-262-01077-1

Teaching methods and learning activities

The continuous enrollment of the student in the course is promoted, both with the study and discussion of the course topics and with programming assignments These assignments, whose evaluation is taken into consideration for the final classification, are performed on the computer, on a monthly basis.


The student is motivated to find the best ideas to solve specific problems execute them and implement the programming solutions, in an elegant, legible and efficient (time and space) mode. The Scheme programming language will be used for these developments.

  • Lectures: Exposition of the program topics and discussion of examples using a computer connected to a multimedia projector.
  • Lab classes: Presentation, discussion and development of programming assignments in Scheme.
  • Self-assessment: Non-mandatory programming assignments will be provided on a weekly basis. These assignments are performed on the computer, out of the class, and submitted to Moodle for automatic evaluation.





Physical sciences > Computer science > Programming

Evaluation Type

Distributed evaluation without final exam

Assessment Components

Designation Weight (%)
Participação presencial 10,00
Teste 90,00
Total: 100,00

Amount of time allocated to each course unit

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

Eligibility for exams

Not to exceed the absences limit (25% of total number of estimated lab classes) and to obtain a minimum of 40% in the evaluation component associated with Pratical Examination on Computer (PEC).

Calculation formula of final grade

The evaluation will be based on the following components:

  • PE – Performance evaluation of the student on the assignments proposed to the class and to self learning activities;.
  • PEC – Pratical Examination on Computer;
  • TT - Theory test, with noted and docuemnts allowed.

Final classification= PEC * 0.50 + PE * 0.10 + TT * 0.40

ACE = average of the classifications: PEC1, PEC2, PEC3, PEC4


1- A minimum classification of 40% in the component TT is required.

2- If the student is admitted to the TT but is not approved in the course or misses it, he/she will be able to perform another TT.

3- If the final mark is greater than 16 the student may be submitted to an oral examination, as decided by the teaching team. In this case the final mark will be the average of both grades.

4- If the student can complete the challenges proposed by the teaching team at the beginning of the semester, he/she can eliminate the worst ranking obtained in PEC, or even the two worst grades obtained.

Examinations or Special Assignments

The evaluation of this course will be done through two types of examination:

  • Computer Examination (CE) for the creation of programming solutions for specific problems. The correction of the tests is performed automatically by the Moodle.
  • Theory Test (TT) with notes and documents allowed, where the goal is to assess the student's ability to adopt the best solutions..


Special assessment (TE, DA, ...)

The final classification will be the average of the classification of two evaluation components: Pratical  Examination on Computer (PEC) and a Theory Test (TT):

Final classification = PEC * 0.50 + TT * 0.50


1- A minimum classification of 40% in each evaluation component (PEC and TT) is required.

2- If, by a teaching staff decision, one of the evaluation components is not performed, its weight will be assigned to the other evaluation component.

3- If the classification is greater than 16, the student may be submitted to an oral examination. In this case the final classification will be an average of the classifications obtained in the oral and written examinations.

Classification improvement

Composed of a single examination, with notes and documents allowed, graded in a 0 to 20 scale. Observation: If the classification is greater than 16, the student may be submitted to an oral examination. In this case the final classification will be an average of the classifications obtained in the oral and written examinations.


No required preconditions.

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-23 at 23:09:46