So hello everyone.
We are here today in the heart of the informatics forum,
I am here with Rosa Filgueira who is a researcher in our school.
So, hello Rosa.
>> Hello Areti.
How are you?
>> Good. Tell us what is it that you do
in informatics?
>> So, I work as a researcher as you say in data intensive research group and
we work really close with another science.
So, for example I work a lot with seismologist.
>> What is a seismologist?
>> So, a seismologist is a, is a person who actually try to understand
what happen with earthquakes, what happen with volcanoes and they are trying to,
in the future because it's something that's not possible right now but
in the future they are trying to predict when an earthquake is going to happen or
when a volcano is going to start and we work as well very close
with rock physicists, which those people they study the rocks.
So, it's a combination between people that study the rocks and
people that study like natural events like earthquakes and volcanoes.
>> Okay and so
how is informatics or the programs that you build useful to these people?
>> So, for example, when we work with rock physicists they actually have different
experiment in their laboratories and they what they do is like, they
have a rock samples there and try to apply a lot of pressure to the rock samples.
So what we do is transfer this data that they, because they are recordings,
these rock samples they are recording the porosity, the strength, the temperature.
So, we are transferring this data in real time from their
laboratory to our facilities here in Edinburgh.
And then we build like a website, so
in real time you can see how the rock is going on.
>> That's where the data intensive part comes in.
>> Yes, exactly.
>> You help them with their data.
>> Exactly.
>> So, many people think of computer scientists and
programmers as people that sit in a dark room in front of their screen and
they are typing all the time manically.
Is that what your everyday life looks like?
Describe a typical day for you here working as a researcher.
>> Okay, so it's true that we spend a lot of time behind the computer but
it's not all the days.
So, for example probably the half of my day is about talking with seismologist
because are the user interchanging emails, trying to understand the requirements,
what they want, talking with my boss, what they want and
then when we have an idea about what they want then actually is when we program.
So, maybe, I mean it is true that we spend a lot of time in the computer but
not all the time programming.
It's about designing, about asking, about I don't know,
doing different stuff but not programming all the day.
>> Is it something that you enjoy, the variety?
>> Yes, yea, yea, yea.
I like it, I like it a lot.
>> How long have you been programming?
>> Wow, since probably I will say since I was 18 years old,
so another 18 years probably.
>> Cool and how did you become interested in programming?
>> Because I was very good in math.
I was really good in physics, I was really good in chemistry.
So everything that was like very mathematical, equations, but
I was not very good at probably history and language.
>> Okay. >> So I want to do something practical and
then I discovered computers.
So at the beginning I thought this looks like very boy, for
boys but at the end I have learned that it's very easy as well for girls.
So, I started the first year in the university in computer science and
I liked it a lot.
>> Is that where you built your very first computer program?
>> Yes. I probably started with a hello world and
I did in Pascal and then I did probably a calculator, I don't remember but,
but for example when I finished my undergrad I did a videogame.
>> So in your PhD you were developing programs as well?
>> Yes, but it was a kind of program that the,
programs that they were hided for the user so they never notice.
So we were doing optimizations of another programs that the user used and
our programs are behind, kind of a ghost.
So, that our idea is like they can't notice our optimization because
we didn't want to bother the users or the clients with our optimizations.
>> So this is quite different to the case of working with rock scientists and
seismologists now?
>> Yes. >> They do notice.
>> They notice what we do.
So, for that reason is that, probably is the main reason why I like it a lot
working now with data scientists because they actually can see what they do.
Before nobody noticed what they do.
>> So, do you actually do work with them, or?
>> Yes. >> Yes.
>> Yea, yea, yea.
>> And is that good fun?
>> It's good fun, it's very difficult at the beginning in terms
of communication because what you think is something obvious for them it's not and
the other way around, when they think they explained their data to you they think
it's obvious and it's not obvious for me.
But it's good fun so I learned a lot about the earthquakes, rock samples,
volcano observatories, seismic traces.
>> So you have been programming for quite a while.
What is it that you particularly enjoy about it or
what do you think is fun in programming?
>> Well, I like it when I write a program and
then at the first go runs which normally doesn't happen but when that happens,
like wow and then I also like when I am working with a program and
for any reason doesn't work, but then after working a lot with
the program then I discover, so when I make the programs run,
when you have a program running well, it's going to run well forever in theory.
>> So it's about the satisfaction of making things work.
>> Exactly. >> Very good.
So in our course this week we have looked at concepts like selection,
so if then and sequence, so having one instruction after the other.
>> Okay. >> And iterations, so
having things repeating again and again.
>> Okay, yea, yea.
>> Do you use this kind of ideas in your programs?
>> Yeah, for example in the case of transferring data from the rock physicists
laboratories to our cluster facilities here in Edinburgh we use that a lot.
Because you have, so as I say before we have a rock that they are applying
constant pressure and if the rock doesn't break it's going to transfer data.
So the program we did has to do the following,
has to take all the time if the rock has broken or
not, because if that happens then we have a value in a variable,
so we are checking all the time, the rock has been broken?
In that case, we don't transfer data.
If it continues, if it's not broken then we transfer the data.
Other thing that we take is like the size of the data.
If the size of the data is very big,
because sometimes we record more data than another.
So if the size of the data is very big, then we apply compression, If not,
if this is very small, we send the data without compression.
So you are all the time checking different things of,
that are related with the rock and we take different decisions.
So if then, if this happens then do this,
if this doesn't happen then do another thing.
>> Brilliant.
That's a great link to the if then blocks that we have learned and used in Scratch,
a programming language that we are learning and
also the forever block where we have things repeat again and again.
Excellent.
>> Until, until the rock has broken.
>> Yes.
>> And, do you have any tips for people that are new to programming and
are just discovering what it is like to construct algorithms and build programs?
>> The best way to do that is take a piece of paper, pencil and
think about what you want.
Actually, how to program is like the last thing you come to think,
it's about structure idea.
You can write your program in pseudocode and that, it's, at the beginning
when I started to program I thought that the most difficult part to understand,
I don't know Python or C or C++ but this is the last thing you have to bother,
because actually you can do whatever with any language.
So, the difficult thing is to think about it.
So you take your piece of paper, pencil,
do like an scheme of the program and then later when you have an idea,
the programming is going to be very easy, go to the computer and do it.
>> And any tips on how to structure our design on paper?
>> Well, I, for example, if I work with matrix or
with lists I always draw what I want to do, so drawing a little bit and
thinking like visualize the idea what you want to do is very easy,
even if I do a loop I actually, I draw a loop about what I want to do, so
kind of visualization always helps.
>> Very good.
Well, some brilliant and useful tips for you guys.
Thank you Rosa.
>> Thank you.