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: 2013/2014 - 1S (of 09-09-2013 to 20-12-2013) Í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 172 Syllabus since 2009/2010 1 - 6 70 162
Mais informaçõesLast updated on 2013-10-10.

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 5,00
Teste 95,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 average of the classifications of the three best Computer examinations.

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.
  • CE1, CE2, CE3, CE4 – Computer examination
  • WE - open book written examination.

Final classification= ACE * 0.55 + PE * 0.05 + WE * 0.40

ACE = average of the best three classifications {CE1, CE2, CE3, CE4}

Examination dates:

  • CE1 - 11/nov 17:00
  • CE2 - 4/dec 17:00
  • CE3 - 8/jan 14:00
  • CE4 + WE - 15/jan 14:00 and 17:00
  • WE (rec) - 27/jan 14:00


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

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

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.

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.
  • Written Examination (WE) as an open book written examination.


Special assessment (TE, DA, ...)

The final classification will be the average of the classification of two evaluation components: Computer examination (CE) and open book written examination (WE).

Final classification = CE * 0.50 + WE * 0.50


1- A minimum classification of 40% in each evaluation component CE and WE 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 open book written examination (WE) 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-03-18 at 16:55:55