I am a Researcher in Computer Science, Ask Me Anything!

Did you find this post useful? Show some love!
DISCUSSION (12)

Could you tell a bit more about yourself like what are you researching your work?

Sure, I am researching on Human-Computer Interaction, specifically Fundamental Research on Eye Tracking.

This includes algorithms for feature detection, which is basically computer vision, a lot of coding, statistics... I also work with hardware, so I have to know electronics and physics.

I've always been interested in projects that involve both hardware and software. What types of projects have you done with hardware?

Basically, we work with sensing (cameras), screens and illumination. The goals of our hardware design are more focused on getting the proper data for analysis, feature extraction and interaction design. All this are heavily based on the requirements of the project we are involved in, and so they are pretty variated.

Something external that we work on as well is camera synchronization through electronic means (not software). Many of the projects we work on need to use several different cameras, and we need to know that the images have been "sensed" at the same time.

If you could be any type of biscuit, what would you be and why?

I would be definitely a chocolate chip cookie, everyone likes them, they look simple on the outside but they have surprises on the inside and are fairly difficult to craft. XD

What’s day-to-day like for a researcher?

What got you involved in this as opposed to applied computer science like many of us?

The day to day is basically like many of you have. I either code right away or sit down and scribble ideas in a paper. It usually ends coding those ideas and testing them in a "statistically sound way". We have different datasets against which we test the performance of the feature detection in many ways. We have to think of different dimensions. One is the accuracy, of course, so we need to have data that is annotated by humans and tell "how the algorithm does", but we consider other things, like time-performance or memory-performance. The idea is to bring these ideas to the point where they can be used by consumers. The industry requirements are very high, and also dependant on the requirements of the different projects. As you can imagine, there are design compromises. In some devices memory is very expensive, so you need to optimize for memory usage, in others accuracy is more important, in some others, time is the most important dimension...

When I sit on the electronics bench, I usually work with light sensors (a.k.a. cameras), illumination (visible and infrared) and as well sometimes modelling and 3D printing, as we move towards the prototyping.

Research is a highly creative work, and in my opinion, most of the times based on remixing ideas, though sometimes you need to come up with your own original approaches. Nonetheless, because my work is essentially related to software and hardware, my day to day is closer to office work than to what people could usually expect.

I ended up as a researcher because, after finishing my Master's degree, I was hired by the University as a research assistant. Now I have moved towards junior researcher while pursuing a PhD. To be honest, I did not deliberately choose this path, it was more of my final destination. :D

Why did you come up with this type of project? What's the idea behind?

The idea comes naturally as part of the work that my lab has been doing for many years. I get some direction from my supervisor, but all the group works in the same direction. The purpose of the projects is influenced by the funders as well.

Which tools do you use in your line of work and why?

I currently have installed:

  • Visual Studio 2015 (C++/C# coding)
  • R + RStudio
  • SageMath
  • PyCharm Community Edition (Python 3 coding)
  • Matlab with remote license (University license server)

As you can see it is a mix of math-oriented tools and pure programming tools. Usually, I prototype the algorithms either in C# or Python (for development speed) and then I translate them into C++ (for execution speed). The other tools are for testing math concepts, statistics, and graphing which is necessary for all of our scientific production.

All Python, C# and C++ have bindings for most of the libraries we use (especially OpenCV), so we can afford to do the translation fairly easily.

N.B. As you can imagine, most of what we do runs under Windows.

Classic DEV Post from Dec 11

Do we really need classes in JavaScript after all?

Did classes deliver, what they promised? In this post, I share my thoughts about common classes pitfalls and possible solutions for creating better web development.

David Gil de Gómez
Join dev.to

If crime-fighting half-man/half-sharks can do it, so can you.