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: 2023/2024 - 2S Ícone do Moodle

Active? Yes
Web Page: http://web.fe.up.pt/~pfs/aulas/lcom2223/
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 476 Syllabus 2 - 6 52 162

Teaching language

Suitable for English-speaking students

Objectives

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 offered by I/O devices
    • develop low level software, e.g. device drivers, and embedded software;
    • program in the C language (using C++ as a reference);
    • developp programs combining C and "assembly"
    • apply systematic debugging techniques (i.e. based on the experimental scientific method)
    • use various tools of software development (compilers and cross-compilers, assemblers, linkers, build automation tools and version control systems).

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

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 operation. Device drivers. Direct mapping in a process address space. Access to peripherals in polled mode and by interrupt. Processor interrupts in the IA-32 and ARM architectures and respective interrupt controllers. Interrupt service routines in Assembly and in C.

Study of typical personal computer and embedded systems I/O devices.

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. State machines. Combined programming in C and assembly. Systematic debugging techniques based on the experimental scientific method.


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

 Use of software development tools: cc, make, ar, diff, patch, Git, and 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

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

A "learn by doing" approach is used. In the first 10 lab classes, students carry out lab assignments about some of the most common PC peripherals or the I/O devices of an embedded systems platform.  In the remaining weeks, students will develop a small integration project using several peripherals and the techniques previously studied. Students work both on the lab assignments in groups of 2 students.

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 project.

Software

Doxygen
Minix 3
VirtualBox
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 50,00
Trabalho laboratorial 50,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

In order to obtain "frequência" students must:
1) Have a minimum grade of 8 (out of 20) in at least one of the programming tests;
2) Have a minimum score of 10 (out of 20) in the project;
3) Develop and demonstrate the final integration project;
4) Fill the self-evaluation form of the final project.
5) Attend at least 75% of the scheduled classes.

Calculation formula of final grade

0,5 PT + 0,5 * min(Proj, PP+4)

where:

PT = (PT1+PT2)/2

PT1 and PT2  are the grades of the first and of the second programming tests, respectively

Proj is the project's grade

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

For approval, students must:

  1. fulfill the requirements for "frequência"
  2. have a minimum score of 8 points in each programming test (PT1 >= 8 and PT2 >= 8)
  3. have a minimum grade of 10 in the average of the programming tests (PT >= 10)

 

Examinations or Special Assignments

There are none.

Special assessment (TE, DA, ...)

The above grading rules apply to all students.

Classification improvement

Students can improve the grade of the programming tests, by taking a second-chance programming test during the exam season

To improve the project's grade, students have to develop a new project in the following year.

Observations

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-08-04 at 21:12:29 | Acceptable Use Policy | Data Protection Policy | Complaint Portal