Skip to main content.

Further information on each course (mainly in Portuguese) can be obtained by clicking the respective link below. Materials available via http are solely intended for research and educational purposes. Send me an email for information on courses not available via http.

2022/2023

2021/2022

2020/2021

2019/2020

2018/2019

2017/2018

2016/2017

2015/2016

2014/2015

2013/2014

2012/2013

2011/2012

2010/2011

2009/2010

2008/2009

2007/2008

2006/2007

2005/2006

2004/2005

2003/2004

2002/2003

Introduction to digital design

This course is given for 1st year students of Electronics and Telecommunications, Computer Engineering and Telematics and Technologies and Information Systems curricula. The main objectives of this course consist in studying the following topics: Boolean algebra, elementary combinational blocks, elementary sequential elements, analysis of FSMs, using CAD tools for specification of digital systems of medium complexity and simulation.

Digital systems Lab

This course is given for 1st year students of Electronics and Telecommunications and Computer Engineering and Telematics curricula. This is a course where students apply in laboratory environment the knowledge acquired at "Introduction to Digital Design" course, deepening the skills of synthesis and optimization of combinational and sequential circuits and becoming familiar with tools and design flows currently employed in industry.

Digital systems

This course is given for 1st year students of Electronics and Telecommunications and Computer Engineering and Telematics curricula. The main objectives of this course consist in studying the following topics: Boolean algebra, elementary combinational blocks, elementary sequential elements, designing FSMs, using CAD tools for specification of digital systems of medium complexity and simulation.

Reconfigurable computing

This course is given for 4th year students of Computer Engineering and Telematics curriculum. The main objectives of the course consist in Systems-on-Chip (SoCs) design, complex digital systems development and hardware-software co-design.

Reconfigurable digital systems

This course is given for final (5th) year students of Electronics and Telecommunications curriculum. The main objectives of the course consist in introducing the technology of reconfigurable digital system development on the basis of commercially available FPGAs. Currently, the following methods and tools are used: VHDL language, ISE from Xilinx, ModelSim from Model Technology, TE-XC2Se FPGA prototyping boards from Trenz Electronic.

Computer architecture

This course is given for 3rd year students of various engineering curricula. The primary objective of the course is to acquire basic understanding of computer organization and design. The classes are based on assembly programming language and PCSPIM simulator.

Architectures and operating systems I

This course is given for 1st year students of Information Technology curriculum. The primary objective of the course is to acquire basic understanding of digital design and computer organization.

Architectures and operating systems II

This course is given for 2nd year students of Information Technology curriculum. The primary objective of the course is to acquire basic understanding of computer organization and operating systems.

Introduction to computer engineering

This course is given for 1st year students of Computer Engineering and Telematics curriculum. The primary idea of the course is to understand what computer engineering is about and to aquire basic knowledge in the areas of signals, circuits, computational systems architecture, networks, and information systems.

Introduction to Programming

This course is given for 1st year students of Electronics and Telecommunications curriculum. The main goal of the course is to provide a strong competence in developing computer programs of small to medium complexity in C language.

Object-oriented programming (C++)

This course is given for 1st year students of Electronics and Telecommunications curriculum. The main objectives of the course consist in introducing object-oriented technology and in using this technology for practical program development with C++.

Programming I

This course is given for 1st year students of various engineering curricula. The primary objective of the course is to acquire good problem-solving skills and to study the principles of effective software development with Turbo Pascal.

Programming II

This course is given for 1st year students of various engineering curricula. The objective of the course is to familiarize with the Linux operating system and to study a procedural programming language, namely ANSI C, with a perspective intent to develop programs of medium complexity.

Programming paradigmes I

This course is given for 2nd year students of Computer Engineering and Telematics curriculum. The main objectives of the course consist in introducing object-oriented technology and in using this technology for practical program development with C++.

Object-oriented programming

This course is given for final (5th) year students of Electronics and Telecommunications curriculum. The main objectives of the course consist in introducing object-oriented technology and in using this technology for practical program development with C++.

Applications for science and engineering

This course is given for 1st year students of various engineering curricula. The primary objective of the course is to develop a general capacity of problem solving with MATLAB.

Advanced microelectronic engineering

This lecture series was organized by the University of Aveiro, Engineering Faculty of the University of Oporto and the Lisbon Superior Technical Institute, with the support of the Portuguese Institute of External Commerce. I taught the following modules: Algorithmic Specification, Design Examples (Combinatorial Processor), and Demonstration for Virtex XCV812E FPGA.

Object-oriented programming (Java)

This course is given for the 1st year students of Informatics Engineering curriculum. The main objectives of the course consist in introducing object-oriented technology and in using this technology for practical program development with Java.

Advanced topics in informatics engineering I - module on Reconfigurable computing

This module is given for students of PhD Program in Computer Engineering within the course unit Topics in Computer Engineering – I.