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.
- 2024/2025
- 2023/2024
- 2022/2023
- Introduction to digital design
- Programming
- Digital systems lab
- Reconfigurable computing
- Introduction to digital systems design based on the MicroBlaze soft processor core and hardware-software co-design (Tallinn University of Technology)
- 2021/2022
- 2020/2021
- 2019/2020
- Introduction to digital design
- Introduction to programming
- Digital systems lab
- Object-oriented programming (Java)
- 2018/2019
- sabbatical leave in the 1st semester
- Digital systems lab
- Object-oriented programming (C++)
- 2017/2018
- Introduction to digital design
- sabbatical leave in the 2nd semester
- 2016/2017
- 2015/2016
- 2014/2015
- Object-oriented programming (Java)
- Digital systems lab
- Object-oriented programming
- Introduction to digital design
- Advanced topics in informatics engineering I - module on Reconfigurable computing
- Parallel Data Processing in Reconfigurable Systems (Tallinn University of Technology)
- 2013/2014
- Digital systems lab
- Object-oriented programming
- Introduction to digital design
- Advanced topics in informatics engineering I - module on Reconfigurable computing
- 2012/2013
- Object-oriented programming
- Computer architecture
- Parallel Data Processing in FPGA-based Systems (Tallinn University of Technology)
- Digital systems
- Architectures and operating systems I
- 2011/2012
- sabbatical leave in the 1st semester
- Digital systems
- 2010/2011
- Advanced topics in informatics engineering I - module on Reconfigurable computing
- Object-oriented programming
- Architectures and operating systems II
- sabbatical leave in the 2nd semester
- 2009/2010
- Object-oriented programming
- Computer architecture
- Introduction to computer engineering
- Digital systems
- Architectures and operating systems I
- Reconfigurable computing
- 2008/2009
- Object-oriented programming
- Computer architecture
- Introduction to computer engineering
- Reconfigurable digital systems (Tallinn University of Technology)
- Digital systems
- Architectures and operating systems I
- 2007/2008
- Object-oriented programming
- Computer architecture
- Introduction to computer engineering
- Digital systems
- Architectures and operating systems I
- 2006/2007
- Object-oriented programming
- Reconfigurable digital systems
- Computer architecture
- Introduction to computer engineering
- Digital systems
- 2005/2006
- Object-oriented programming
- Reconfigurable digital systems
- Programming I
- Digital systems
- Reconfigurable computing
- 2004/2005
- Object-oriented programming
- Applications for science and engineering
- Digital systems
- Reconfigurable computing
- 2003/2004
- 2002/2003
- Object-oriented programming
- Programming II
- Advanced microelectronic engineering
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.