This page presents some of my research interests. If you are interested in my publications, please go to the publications page (alternatively, visit my Nottingham website).
Research Interests
My research interests are generally in mathematical approaches to software quality. More specifically:
- Calculation of algorithms from their formal specification
- Algorithm design
- Teaching of mathematics
- Functional programming
- Parallel programming
Current/Recent Research
My current research is on principles and foundations of algorithmic problem solving. The goal is to study and create new principles and techniques to construct algorithms from their specification. One of the main products of this work is educational material supporting the use of an algorithmic and calculational approach to school mathematics, that will be tested by portuguese students and teachers.
I participate regularly in the Tuesday Morning Club (TMC), which is a series of informal research meetings of members of the Foundations of Programming research group at the University of Nottingham. The weekly meetings take place on Tuesday morning and are used to discuss our own and others research, and to try to solve scientific problems. The current interests cover topics like (algorithmic) problem solving, calculational mathematics and program construction.
Previous Research
Parallel Programming in Java
I was a member of the PPC-VM project, whose goal was to provide an “intelligent” parallel virtual machine capable of automatically manage a set of computing nodes and effectively distributing tasks among them. My contributions to the project were:
- creation of a tool that transforms Java programs into programs that are able to distribute themselves automatically among a set of computing nodes;
- development of JaSkel, a framework providing parallel skeletons to write parallel programs; this work was presented at CCGrid ’06;
- development and testing of ParC#, a parallel computing platform developed on top of the Mono project; this work was presented at PaCT ’05.
Formal Specification Systems
I have contributed to the Camila project, by exploring how concepts from the VDM specification language and the functional programming language Haskell can be combined. My contribution includes experiments in expressing VDM’s data types (e.g. maps, sets, sequences), data type invariants and pre-conditions, within the Haskell language. This work was presented at the Overture Workshop, Newcastle (UK), 2005.