Hello everyone, good as we would say in Dutch before noon, no, good morning.
I am here to present the presentation with a long title, fully open source education tool
to stimulate logical reasoning.
So first, before we delve into that short, who am I, my name is Simo van Vellder, I'm a
postdoctoral researcher at the University of Kyloven, but campus denial, they really
want me to say that.
Where I research notes, base AI, right?
But besides the fact that I am this researcher, I also really have a pension for education
and educating programming.
So for instance, as a student job for five years, I've been always been a programming
teacher in my weekends and currently I'm also the dojo lead of the Coder dojo master.
So just to show that I really like to do these things.
And then at one point, I wanted to combine these two and I wanted to fit this into my research,
which I kind of did, maybe perhaps not fully, but it's in my PhD thesis, so it worked
out in the end.
So I'm here to present fully, which stands for first order, logic learning environment.
I thought of this name, I thought, yes, what a great name, fully also means something
else in English, so it's a great acronym until I found out that fully means idiocy.
I misjudged that one, but the name stuck, so I kept it.
The goal of fully is to teach first order logic to children aged 8 to 13 year olds, or
just children in general, if also done it with 18 year olds, of course, much older.
So for full those who may not be familiar with it, first order logic are these sentences,
and you might recognize these sentences from math classes, and these scary upside down
A's, the flips over E's, these sentences, for instance, say that for every X, it holds
that if they are a human, then they're also an animal, and then it does the same thing,
that every animal is mortal, and this can allow us to do deduction, such as if I now tell
you that I am a human, I can deduce that I am an animal, and therefore that I am also mortal,
right?
So that's the idea of full.
So why do we want to teach full?
Well, it's an important foundation of many fields such as math, philosophy, psychology,
even, there's a huge aspect of full, but also computer science in general, it's an important
cornerstone, right?
But it also helps with computational thinking, which is a very important aspect, I teach
a horizontal computational thinking, so that's very nice.
It's also a pillar of AI, you might not think of it as such, but really first order logic
and logic-based AI is still alive and kicking at those of you who know expert systems,
take that into 20, 25, and we still exist.
But it also sharpens the reasoning skills in general.
To show you an example of something that we want to teach children is the way since selection
task.
So you are shown four cards and on each card there's a number on one side and a color on the
other side, right?
So you get shown these four cards, maybe with the color it's not so easy, but so there's
a three and eight blue card and a red card, right?
So remember on the other side there's always a number on a color.
I now tell you that every card with an even number must also have a blue backside, right?
Now it's up to you to see, to verify if that is actually true, but you want to do that
with a few cards as possible.
So which cards would you need to flip to verify that every card with an even number
has a blue backside?
Okay, unless you know it already then of course don't say it.
But if you want to do a guess, anyone who wants to do a guess with things that I guess might
be incorrect, you would do three, okay, then I don't know what I expected but it's a
great guess yes, and the other guesses you can also do multiple cards of course, yeah.
You would do the second cards, right?
You would do the eight and then blue, right?
But who of you would do eight and blue?
Okay, apparently no one, okay, multiple people who do eight and blue.
It turns out eight and blue is the most of the most often occurring choice by children
or by adults in general, because we would think that you need to check eight and blue,
but that's incorrect, in reality you need to check eight and red, why?
I said that every even card has a blue backside, so that means that the eight you need
to check to see that it is blue, and the red one you need to check that it's not even
on the other side, that it's an uneven number.
The blue one I don't care about, if the blue one is even or uneven, really I don't care
because an uneven number can have any color at once.
I only say what should happen in the case of an even number, and this is a very easy
example of where linguistics, where our human conception of an if-then goes wrong, but in
first-order logic everything is precise, everything is non-ambiguous, so there it is clear
that you would need to check the eight and the red, so no solution, wow.
So there's some difficulties in teaching fall, well it doesn't do anything, in scratch,
I guess a lot of you might be familiar with scratch, you have these nice blocks, you have
these cats, the cat can meow, the cat can move around, that's all very cool, but first
of logic doesn't do anything, it's just boring sentences.
It also has a very steep learning curve, because there are these linguistical differences
that you need to be aware of before you can actually start modeling correct fold sentences.
Really it takes a very long time to be able to well versed enough in fold to present correct
sentences.
We also have these scary mathematical symbols, which helped your nightmares, yeah, at
least was my experience when I was a child, I really hated it and then I started research
in it, I don't know how that happened, somewhere along the way I started liking it,
I guess.
So like I said, it's also not fun, there's no animation, there's no standards, graphics,
so you wanted to build better learning environment.
I have a more detailed screenshot, yeah, this doesn't really tell us a lot other than,
you know, this has a lot of syntax, this has scary red lines, this has things that can
be typed incorrectly, these are all things that children, 8 to 13 year olds, they want
like doing these things.
So our design goals for this tool were as follows, oops, were as follows, firstly we wanted
to do something with representation of fold, we wanted to have no finicky syntax, so basically
it should be a bit syntax less, it should have a clear structure, we also really wanted
to encourage trial and error and experimentation, we wanted children to be able to work
in groups and if you put them in front of a computer and there's only one mouse and one
keyboard as every computer has, then it's difficult to work together because always one
child will have the upper hand and you can't really say I take the left side of the keyboard
to take the right side of the keyboard as a bit weird way of working, so those are the
things that we really want to encourage, then on the other hand we wanted them to have a
nice task to do, right, which it focus on model theory, which maybe not everyone knows,
but it's an important aspect, it should focus on model theory, it should give clear and
immediate feedback because again we want this interactivity, it should increase gradually
increase in difficulty and it should be of course engaging and fun, but what application
domain do we use, as well I've told you a task, I've told you about our representation,
but we still don't know what's problem domain we will be working it, also let me remove my
cursor perhaps, right, so for the application domain we selected robot designs, so we do
these phone cartoony robots very colorful, right, they are very compelling in a way and for
these robots each component can have a different color, so you can see here they have arms,
each of these things can have a different color and they may also wear heads and that's it,
that's our application domain, these are the things that our children will represent rules or
represent knowledge over in general, then the second aspect was the notation, so of course we went
for a box based notation inspired by scratch and so many other similar approaches where they could
express fairly simple expressions over these robots, so here for instance you see that there's
a block for each holds that in this for each, they can put this pill shaping which in this case
is components, the component of course needs a name, because basically what they're doing
they're quantifying over a variable, so this is the scary upside down a which is now a nice looking
book, so they say for each component which we call see must hold that its color must be red, right,
and in this way the sentences have a more natural reading as well, so you can whenever they are
debugging what they are doing I can simply tell a child can you read to me what you have expressed
using these blocks and in doing that they typically are able to find their error more quickly,
however like I said using the mouse does not stimulate collaboration, mouse and keyboards we don't
want to use, so what we did we took it one step further and we actually laser cut out these blocks
out of plywood and the blocks are then engraved with their intended meaning, this is in Dutch I'm
sorry, but basically these are blocks like is a like where's the helmet and or is an arm x,
we have red, blue, green, right arm, all these components, everything you need to express these rules
are there and it makes it tangible, puzzle-like, you can see it, you can see these blocks in front
of you and you can immediately start puzzling with them and you can put them together and what's
nice is that sometimes you don't necessarily know yet what you want to express or what you
need to express something and say that they need something to say something about the color of the
left arm for instance then they don't necessarily need to know they don't necessarily know yet how to
do that but they might see the block color off which in the left hand side has a circle right hand
side as a square and then they think okay so I need a circle and a square so they have this guided
way of looking how to construct their sentences, right? So then for the task the children are shown
seven robots so there are three good robots and three bad robots and they need to express to the
computer basically what a good robot has that the bad robot doesn't so basically what this
thing which is good robots from bad robots that's the main idea and like we say we call this
explain this to the computer because that's yeah we can't really tell them I will express full sentences
and they don't know what that means so we say explain to a computer what this thing which is good
from bad so for example this could be something like the left leg is blue that's an easy one or
if the robot wears a helmet it must also have a green arm and more tricky or every component
that is an arm or a leg must be colored green that's actually the very final level
so here's an example yes showing us a bit of a closer look on actually with the children see
so like I said it's very small for those in the back I'm very sorry but they're shown three good
robots on the left hand side three bad robots on the right hand side and they must distinguish
good from bad in this case the child wants to say that the robot has a red right arm but he
expressed left arm right but this also shows the interactivity a bit as soon as he creates a sentence
the computer picks it up I'll get I'll get to that later but the computer picks it up shows the effect
of the rule on the center robot and then for each of the individual robots shows whether or not
they are correct according to the sentence so on the left hand side you see the three robots are
correct on the right hand side you can see that two of them are correctly incorrectly incorrect
makes no sense but you get what I mean whereas the center one is still valid according to his rule
so his rules incorrect yes now fully itself this basically is just a box which contains the
following components a Raspberry Pi with a camera an LED backlight a set of blocks and each of these
blocks is then annotated with a Rucum markers and so for those of you who do not know Rucum markers
are simplified QR codes you can think of it and it is also one of the cornerstones of computer
vision and they're very very easy to pick up so if my image had been larger you could have seen
that this block had a very small a Rucum marker on it and it's that that the computer sees
the computer sees all of these blocks from the the bottom side of the box the camera basically
looks up they put all of their blocks on a C through pane and the computer then knows
identifies each block and it knows for each block where it expects another block and in this way
what they are doing is effectively programming or or shaping an abstract syntax three if that means
anything to you but they can express all of these sentences and that also makes it completely
generic anything they can express the computer will be able to pick up so there are no pre-programmed
sentences that can be or shouldn't be correct it's all basically they are truly writing for
sort of logic so all you need to run this is an HDMI monitor that's also part of the fun so
it's this box yeah I don't know I would have brought I would have loved to bring it but
I forgot it's very stupid I know and so it's just the box it's like this big it's not
heavy at all because there's only a Raspberry Pi in there right you just plug in an HDMI monitor
you stick it in a socket and box your uncle you have a fully realized fully set up so the
application that I've shown is built in Python it uses Pi game for the interface uses open CV for
computer vision and then this is the important part this is why it's my research as well and it
uses IDPZ3 as a full evaluator not really relevant here I just wanted to stress that if there are
any people who gave me grant money watching this this is related to my research but what's nice about
using a full fully evaluator like I said so we don't have any pre-conceived notion of what is
a correct sentence what is bad sentence every sentence is always fully checked so if a child comes
up with a completely different way that is correct the system will also count it as being correct
because we don't hard code correctness we just evaluate it on the fly and that's quite nice
it can also be annoying when you make a difficult level in which for instance you want the child
to express that every component must be green which is a bit difficult but the child coincidentally
spots that no bad robot has a green right foot so the data say has a green right foot and then
your entire learning curve is shattered but after a while you pick these up and you find all these
mistakes so like I said I whenever a full statement is detected it is evaluators and then we
show the results I have some nice images here which I realize are very small from the back for which
again I am truly sorry but I can show this later and you can come up if you want so these are
children playing around with the boxes as you can see they are working together as much as possible
putting it on this the see-through pain and then the computer can reason with that
all right so I can come back to that later why am I here at full zambic of course because this
is fully open source really everything that I've mentioned here is online in some way or another
so all the code is open source everything is ready to laser cuts so I just have a big
SVG file that contains how to or contains the blocks themselves it contains the boxes because
of course once you start laser cutting one thing you laser cut everything that's the issue of laser cutting
so the boxes are also laser cut the yeah see-through pain was cut by the comma but still you can
also get these things quite easily it's it's very cheap to build as well because all you need is
Raspberry Pi and now that their prices have gone down a bit again I think it's like $60 to get a full box
done if you have a laser cutter like near you all right when we are still doing however
is building a step-by-step guide on how to build it but really it's not that difficult
and also we are setting up a program at our university to allow schools to load
loan out a box for a day because it's if you just build a box and then have fun for it with
30 minutes that's it you don't really want to do that so if the school wants to load
now these boxes that we have them available anyway they can do so all right I have a thank you
slide but before we get that I think I still have time I have a video which says we're having troubles
on my end but maybe not on this end okay my cursor is not cooperating what is this cursed HTML
element how do I drop out of full screen modes
okay okay I see what is going on here I need to move to my other thing
there we go we're getting there okay so here you can see them oh there's even audio wow
you can see how they are putting things on the table or on the screen rather
it will pick it up soon
yeah sometimes the children they make their sentence on the table and then put it on the screen which is
yeah not very smart but whatever so it's it's loading there we go these are the results
you can really see that their brains are thinking the gray matter is stimulated
I'm not a videographer it's not a best video but just goes to show you how this works and
then after this I cut it off because it programmed crashed I fixed that crash I have another video
of one minute if I have time so what's also nice is that at our university we get to organize
children university events where children actually get to come and typically when I give a
fully workshop at because we frequently do workshops for children we start with
explaining to them that you need to program your computer because they typically don't
realize this yet as many of children nowadays at least in my previous workshop last week
think that a computer is a chatbot that you can talk to and my heart starts bleeding
which I guess is what a heart does in a way but not bleeding in the best way okay how do I
yes another video of more time if I enable my JavaScript my god
I need to enable robot of MP4
I have no idea why this happens it worked yesterday when in doubts which do chromium unfortunately chromium
let's see if that works no I have no idea okay doesn't matter I can always show it
later if you want to see but I wanted to show that when we host these workshops we try to tell
them that you need to program a computer and the way we do is we do it do this oh my god
is with the pancake robots where the children need to explain to a human and who acts as a robot
how to make a pancake with shocko or Nutella I guess I should say and I just had a nice video of
where the robot is instructed to put the knife and he puts the knife in the wrong way and the children
all have and it's just wanted to show it because it's always fun to see all right with that being said
I think my slides are now completely broken okay I'll stick on the thank you no let's not I'll stick
on the image slide and we can go to the questions let's say I don't know anything about
for the as in both works I got the the books yeah I made it yeah I would like to host something
how much time going to prepare myself so I can get started with the keys great question
well on the one hand I could give you a sorry I had to repeat the question your question is
how difficult is it to do it as an adult that's what it boils down to it's not so difficult
many of these levels are really self-explanatory if you know what you need to look for
and because you are older and I guess wiser than a child you will be able to do many of these things
much more easily however there are some levels where a jump is very at the jump in difficulty isn't
so gradual once you start explaining how and if then works it's not easy to to do that really
and there's so there's one level where you really need to help children to realize that they need
and if then and I guess that if you as an adult I don't know it either that will be a very
difficult level but of course I can also give you the solution sheet but so typically when I get an
assistance for these workshops I just show them the levels in five minutes and they know it for the rest
of their lives so it's not so not so difficult
excellent question in which language is it available I don't think you mean programming language
right yes so it is it is completely in Dutch for now however it's not so difficult to change it
so the code itself is completely English everything yeah really is in English there but the
blocks are engraved in Dutch so that's the only thing if you engraved in a different language that's
it that also shows another limitation and all the blocks are limited to the robot domain because
they are engraved with the intended meaning of the robot blocks however it's not so difficult these
are Rucomo markers are really universally implemented and if you just use the same Rucomo marker
but I don't know talk about planes everything will work as well out of the box but that's why
we need this build guide to be completely finished so that that process is easier
the video and the photos I see come and put that on the kids like prepare the things
the table sitting that they stand out yeah put it on the work it works pretty high yeah
oh you can see that you have to stand or yes you just think to somehow yes so the question is
the boxes are pretty high they still need to stand up to do it I sorry tend to make their
send us on the table instead and then move it over that is quite a difficult thing to fix
unfortunately because it's the camera that needs to be able to see the entire screen from the
inside of the box so we could use like a fish eye camera but the tender detection becomes a bit
more difficult but really it's just the children being lazy just stand up you already sit down so
much everyday yeah no but it depends from from child to child however some eight-year-olds
even when standing up aren't tall enough and they need to stand on the table so that is
that is an annoyance and it's something that we're looking into
yeah of course those things are possible all right so my time is up but if you have more questions
I'll be around here most likely so thank you very much