Go to:
Logótipo
You are here: Start > L.EIC018

Computer Laboratory

Code: L.EIC018     Acronym: LC

Keywords
Classification Keyword
OFICIAL Informatics Engineering and Computing

Instance: 2025/2026 - 2S Ícone do Moodle

Active? Yes
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Bachelor 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
L.EIC 332 Syllabus 2 - 6 52 162

Teaching Staff - Responsibilities

Teacher Responsibility
Francisco António Ferraz Martins de Almeida Maia
Mais informaçõesLast updated on 2026-02-02.

Fields changed: Objectives, Métodos de ensino e atividades de aprendizagem, Programa, Obtenção de frequência, Melhoria de classificação, Fórmula de cálculo da classificação final, Fórmula de cálculo da classificação final, Melhoria de classificação, Obtenção de frequência, Programa, Observações, Objetivos, Métodos de ensino e atividades de aprendizagem, Objetivos, Melhoria de classificação, Fórmula de cálculo da classificação final, Métodos de ensino e atividades de aprendizagem, Programa

Teaching language

Suitable for English-speaking students

Objectives

1- Introduction

Peripheral devices are a fundamental part of a computer, without which the usefulness or ease of use of computers would be significantly lower. The importance of these devices in computer-based systems has grown since the earliest days of computers (around 1950) and continues with the increasingly widespread adoption of embedded systems. However, programming peripheral devices using their programmatic interface, i.e., the “hardware” interface, requires specific knowledge and techniques.

2- Specific Objectives

The objectives of the course unit are to provide students with essential knowledge so that they are able to:

  • use the “hardware” interface of common peripherals;
  • develop low-level software, e.g., device drivers;
  • use the C programming language in a structured way;
  • develop programs written in C;
  • perform systematic debugging (based on the scientific experimental method);
  • use various software development tools (compilers, assemblers, linkers, build automation tools, version control systems).

3- Percentage Distribution

Scientific: 30%
Technological: 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

Presencial

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:

    • Programming
    • Computer Architectures
    • Operating Systems

Program

Input/output peripherals and their modes of operation. Direct mapping into the memory address space. Access to peripherals in polled mode and via interrupts. Interrupts on IA-32 and ARM processors and the PC’s respective interrupt controllers; writing interrupt service routines. Typical PC peripherals.

Programming in C: main differences compared to C++, and methods for structuring code. Memory organization of a process. Functions: calling mechanism, parameter passing, local storage, and returning values. Event-driven programming and state machines.

Creating and using libraries. Static linking of object code. Systematic debugging techniques based on the scientific experimental method.

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

Mandatory literature

Elecia White; Making Embedded Systems: Design Patterns for Great Software, O'Reilly Media, Inc., 2011. ISBN: 9781449302146

Complementary Bibliography

Derek Molloy; Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux, Wiley, 2016. ISBN: 9781119188687
Arpaci-Dusseau , Remzi H.; Operating systems : three easy pieces (Chapters 1, 2, 35, and 36)

Comments from the literature

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

Teaching methods and learning activities

“Learning by doing.” In the first 8 lab classes, students work in groups on small practical assignments involving common PC peripherals, applying specific programming techniques. In the remaining lab classes, students will carry out a project, also in groups, which should integrate most of the peripherals and techniques studied.

In the theoretical classes, the concepts are presented with an ongoing focus on their practical application, and the details needed to carry out the practical assignments and the project are discussed.

Software

Minix 3
VirtualBox
Doxygen
CLANG compiler and assembler
Git sistema de controlo de versões

keywords

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

Evaluation Type

Distributed evaluation without final exam

Assessment Components

Designation Weight (%)
Teste 40,00
Trabalho laboratorial 60,00
Total: 100,00

Amount of time allocated to each course unit

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

Eligibility for exams

To obtain attendance eligibility, students must not exceed the absence limit (25% of the scheduled classes).

Students who obtained a grade higher than 10 points in the project in previous years (23/24 or 24/25) and indicate their intention to use that grade in the current year are exempt from attending the practical classes.

It is not possible to use test grades from previous years.

Calculation formula of final grade

Final grade = 0,4*T + 0,6*Proj

where:

T = theoretical test grade

Proj = the project's grade

Although the project will be done in groups of 4 students, members of the same group may have different grades depending on their contribution

To pass this subject, students are required to get a minimum of 8.0 on the test. It is not possible to use test grades from previous years.
Students who obtained a grade higher than 10 points in the project in previous years (23/24 or 24/25) may use that grade by indicating this intention to the course unit coordinator via the appropriate form.

Examinations or Special Assignments

There are none.

Special assessment (TE, DA, ...)

The above grading rules apply to all students.

Classification improvement

Students may improve their grade for the theoretical component in the resit exam.
Students who passed in the previous edition may improve their grade in all components by enrolling in the course unit again.

Observations

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

During assessment sessions, the use of any electronic device (for example: mobile phones, tablets, earphones, smartwatches, glasses, etc.) is strictly prohibited, except for those expressly authorized by the teaching staff, or in situations предусмотр under the Special Needs Student Statute. It is the student’s responsibility to anticipate and address this situation before the start of the assessment session.

Recommend this page Top
Copyright 1996-2026 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2026-03-07 at 03:37:05 | Acceptable Use Policy | Data Protection Policy | Complaint Portal