This is just a list of research interests, in case you need them. A thesis should interest you, and you should have fun in doing it.

If you want to see the bigger picture—and I strongly recommend it—to see where these ideas can be applied in real life, check the projects page, where you can find additional information on technologies and applications.

Choose what you really like.

OpenCL, CUDA & Co.

Usually we think about the CPU when doing work, and GPUs just for games. Things are a little blurry, however. We can use GPUs to make computations immensly faster.

High Performances

A computer is not a Von Neumann machine, it relies on a multi-level memory hierarchy, and RAM access isn't cheap. Smart data structures exploit the real underlying hardware.

Distributed Analyses

Today's analyses, from DNA sequencers to physical simulations, are providing gigabytes and terabytes of data, exceeding the current computing power. Hence we need to go distributed, on a real cluster.

Physics and Graphics

Computers are useful tool for enabling new engineering efforts. Developing algorithms to handle meshes and physics is quite exciting, and essential in modern videogames.

Mobile Applications

Mobile computing is ubiquitous and getting more computing power each year. The medical and engineering sectors are perfect candidates for smartphones and tablets apps.

OpenCV and Kinect

OpenCV is an immensly useful library, and Microsoft Kinect is a versitile sensor. What can be done with these technologies on a PC or a mobile device is limited by our imagination.

Succinct Data Structures

The available data exceeds the capabilities of a laptop, but it is highly redundant. We need to compress it and remove useless bits, without resorting to an expensive cluster.

DNA Analysis

Sequencers, especially the newer ones dubbed Next Generation Sequencers produce huge amounts of data, and they are full of errors. We need to correct them and provide genetists a way to analyze them on a simple PC.