#### I taught in __public universities__ a wide range of subjects with varied syllabi, covering the most diverse thematic areas of Mathematics and Computer Science.

#### I also received quite often the mention of excellency in teaching along four decades.

#### Most of the following courses were coordinated by me:

Algebraic Elements of Programming, BSc (1991/93).

##### Complexity, BSc and PhD (1998/99 and 2010/11).

##### Computability and Complexity, BSc, MSc, and PhD (2001/02, 2003/07 and 2009/21).

##### Computability and Complexity of Learning, MSc and PhD (2013/15 and 2016/20).

##### Concurrent Processes, BSc (2001/02).

##### Data Structures and Algorithms, BSc (1988/90).

##### Differential Geometry, BSc (1984/85).

##### Discrete Mathematics, BSc (2013/20).

##### Formal Specifications, BSc (1991/92).

##### Functional Programming, BSc and MSc (1994/95).

##### History of Mathematics, BSc (1985/86).

##### Imperative Programming, BSc (1987/90, 1992/93 and 1994/98).

##### Introduction to Physics and Chemistry, BSc (1984/87).

##### Languages and Paradigms of Programming, BSc (1993/94).

##### Logical and Algebraic Elements of Programming, BSc (1989/90).

##### Logical Foundations of Programming, BSc (1990/91).

##### Mathematical-Physics, BSc (1983/85).

##### New Paradigms of Computation, BSc, MSc and PhD (2001/02, 2003/06 and 2009/11).

##### Neurocomputation, MSc (1994/99).

##### Neurodynamics, MSc (1994/96).

##### Programming in Logic and Functional Programming, BSc (1990/91).

##### Seismology, BSc (1985/87).

##### Syntax and Semantics of Languages, BSc (1999/01 and 2000/01).

##### Theory of Computation, BSc (1989/90, 1994/98 and 1999/00 and 2009/12).

#### Short courses

Intensive Course on Neuronal Computers, COCITE, June / July 1996.

Intensive Course on Neuronal Computers, Faculty of Sciences, University of Lisbon, from 13th to 17th May 1996.

Object-oriented Specification with OBLOG, University of Lund, Sweden, June 1992.

OBLOG: Development of Systems with Objects, INESC, carried out in October 1991.

OBLOG: Development of Systems with Objects, INESC, carried out in January 1990.

OBLOG: Development of Systems with Objects, INESC, carried out in July 1989.