Go to:
You are here: Start > EIC0020

Computer Laboratory

Code: EIC0020     Acronym: LCOM

Classification Keyword
OFICIAL Computer Arquitechture

Instance: 2019/2020 - 1S Ícone do Moodle

Active? Yes
Web Page: http://web.fe.up.pt/~pfs/aulas/lcom2018/
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 220 Syllabus since 2009/2010 2 - 6 70 162

Teaching Staff - Responsibilities

Teacher Responsibility
Pedro Alexandre Guimarães Lobo Ferreira Souto

Teaching - Hours

Lectures: 2,00
Laboratory Practice: 3,00
Type Teacher Classes Hour
Lectures Totals 1 2,00
Pedro Alexandre Guimarães Lobo Ferreira Souto 2,00
Laboratory Practice Totals 8 24,00
Pedro Miguel Moreira da Silva 3,00
Pedro Alexandre Guimarães Lobo Ferreira Souto 3,00
Sara Filipa Couto Fernandes 3,00
Nuno Miguel Cardanha Paulino 3,00
Rui Grandão Rocha 12,00

Teaching language

Suitable for English-speaking students


1- Introduction

I/O devices are an integral part of a computer, without which the usefulness or the ease of use of a computer would be significantly lower. The importance of I/O devices in computer-based systems has increased since the first generation of computers, and it continues up to these days with the ever increasing use of computers in embedded systems. However, programming of I/O devices using their programatic interface requires specific knowledge and techniques.

2- Specific Objectives

This course unit aims to endow students with the knowledge and the skills required to:

    • use the hardware interface of the most common computer peripherals;
    • develop low level software and embedded software;
    • program in the C language (using C++ as a reference);
    • use various tools of software development.

3- Percentual Distribution

Scientific: 30%
Tecnological: 70%

Learning outcomes and competences

Students, who successfully complete this course unit, should understand the main models of hardware access and be able to apply them in the development of relatively large programs.


Working method


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

Students should have the knowledge and have acquired the competencies expected from approval in the courses:

    • EIC0012: Programação
    • EIC0016: Microprocessadores e computadores pessoais


Input/Output peripherals and their operation. Direct mapping in a process address space. Access to peripherals in polled mode and by interrupt. Processor interrupts in the IA-32 architecture and the interrupt controller, interrupt service routines in Assembly and in C.

Study of some typical personal computer peripherals, such as keyboard, mouse, graphics card, real time clock, timer, loudspeaker and serial port.

Programming in the C programming language: main differences with respect to C++ language; structured programming in C. Memory layout of a process. Function calls: mechanisms, parameter passing, storage of local variables and return values. Event based programming. Combined programming in C and the IA-32 processor family assembly.

Creation and use of libraries. Static linking of object code.

 Use of software development tools: cc, make, ar, diff, patch, SVN and doxygen.

Mandatory literature

Muhammad Ali Mazidi, Janice Gillispie Mazidi; The 80X86 IBM PC and compatible computers. ISBN: 0-13-121975-8

Complementary Bibliography

Daniel W. Lewis; Fundamentals of embedded software. ISBN: 0-13-061589-7

Teaching methods and learning activities

A "learn by doing" approach will be used. In the first 8 lab classes, the students will carry out in groups lab assignments about some of the most common PC peripherals.  In the remaining weeks, students will develop a small integration project using several peripherals and the techniques previously studied.

Lecture classes will be used to present the concepts, taking into account their application in the lab assignments, and to discuss the details of the lab assignments and the projects.


CLANG compiler and assembler
Minix 3
SVN: Sistema de controlo de versões
Redmine: Aplicação Web para gestão de projetos


Physical sciences > Computer science > Programming
Physical sciences > Computer science > Computer architecture

Evaluation Type

Distributed evaluation without final exam

Assessment Components

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

Amount of time allocated to each course unit

Designation Time (hours)
Estudo autónomo 20,00
Frequência das aulas 62,00
Trabalho laboratorial 80,00
Total: 162,00

Eligibility for exams

Students have fill the self-evaluation forms of each of the labs submitted for grading and of the project. Furthermore, students must develop and present the final project and they cannot miss more than 25% of the scheduled classes.

 Students registered as TE must also demo their lab assignments at a date and time to arrange with the lecturer.

Calculation formula of final grade

0,4 * Labs + 0,4 * Project + 0,1 * Programming_Test + 0,1 * Class_participation


"Labs" is the average of the grade of 4 labs chosen by the student. For final grades of 19 or 20 "valores", one of the labs "chosen" must be the mouse lab.

Although the lab assignments and the project will be done in groups of 2 students, exceptionally of 1 or 3, members of the same group may have different grades.

For approval, students must have a minimum grade of 8 (in 20) in all the grade components, except for the Class-participation.


Special assessment (TE, DA, ...)

The grading rules applied to students registered as TE are similar to those of regular students except in two aspects. First, these students must demonstrate, in dates and times to agree with the lecturer, the 3 labs to be graded in the lab classes. Second, the 10% of the weight of the "Class participation" component is assigned in equal parts, i.e. 5%, to to the lab assignements and the project components, each of which will have a weight of 45%. The date of presentation/discussion of the different grading elements (including the proposal and the specification of the project) must fall in the corresponding grading period of regular students. It is up to the students to get in touch with the lecturer at least 7 days in advance for arranging the different dates.

 For all other students, the standard grading rules, specified above, apply.

Classification improvement

Students have to do a project and lab assignments in the following year.


In extraordinary situations (such as registration of students who do not know Portuguese), classes can be taught in English.


Recommend this page Top
Copyright 1996-2024 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2024-04-25 at 10:12:31 | Acceptable Use Policy | Data Protection Policy | Complaint Portal