Felienne Hermans has researched how best to help children learn to program. A major outcome of that work is Hedy, a gradual programming language that works with the learner to help them unveil more and more of the language.
Takeaways coming soon!
Voice over: DevRelCon Deep Dives.
Felienne Hermans: My name is Felienne Hermans. I'm at Leidein University in the Netherlands and I'm going to talk today about Hedy, the programming language, the gradual programming language that I've developed for programming education. But really before we really dive into Hedy itself, I want to take your true, my history of teaching to programme because that has really shaped my vision of teaching and also has shaped the development of Hadi. So a long, long time ago, in 2013, I started to teach programming to children. So I already just had a PhD in, so French engineering that I finished. So I knew programming, but I didn't really know teaching very well. And there was this group of children and these were 10, 11, 12 year olds in a community centre in my neighbourhood that wanted to learn programming.
So I thought, okay, children, I'll teach you programming because I thought, how hard can it be, right?
They're little children. How hard of a questions can they ask? This will be fine. I will be easy off just teaching kids. And what happened is that subconsciously I started to think back of, okay, so how did I learn programming when I was a kid? So this me when I was about 10 sitting behind my dad's big computer, teaching myself programming because when I was a kid there was not someone teaching me programming because there were no adults in my neighbourhood that knew programming. So this was the end of the eighties, early nineties.
Now adults I knew new programming, so I didn't really have the opportunity even to take programming lessons. What I did have though were programming books. So I had this book, specifically basic computer games, and this was a book allegedly that would help you make computer games with basic, but it wasn't really a book that said, okay, here's a concept and this is how you do a variable and this is how you do a loop.
If you would open this book, this is what it would look like. So it's just printed out basic codes that you have to manually put into the computer. It didn't come with a city rom or a floppy drive, it was just this. And as you probably hear from my accent, I am not a native speaker of English. And so I didn't even know what any of the words meant.
Philosophy and coefficient. I was just like mindlessly copying. But ultimately, of course you do pick up some things and you do gain an understanding of programming even though it's painful and slow. This is not just me. Many people of my generation, children of the eighties that are now in their forties had a similar experience in learning to programme. So we all share this exploring, copying from books, figuring it out alone, sort of the thrill of doing it alone and accidentally, we somehow copy that if we start teaching now because we think that's a good way to teach because it was just the only way that we knew.
And even though we don't say these words specifically, we sort of believe that compilers are good teachers. Compilers were our teachers.
We didn't have human teachers, we didn't have YouTube, we didn't have people to properly teach us. So we are sort of Stockholm syndromes into thinking that compilers are good teachers because it was just like the only teacher we had. This was certainly what I was thinking when I started to teach kids, not explicitly of course, but implicitly I thought, oh, I don't really need to pay much attention to the syntax of things because kids will just figure stuff out and they get an error message and they would just look it up on Google, it will be fine. But it wasn't fine. It wasn't not fine at all. And lemme give you a little bit more background of what the club was doing. So we had initially used a programming language called Scratch that you might be familiar with.
Scratch is what you see here.
This is a block-based programming language. So you click blocks together and then you create an animation or a game or a drawing. And at this level everything was sort of fine. There are no error messages in scratch because it's just blocked. So you cannot make any syntax errors. However, after a while children said, okay, now teacher, now we are done with scratch. We have seen this. We want to have an actual textual programming language.
We want to do Python or JavaScript or C, this is what they hear from their friends as well, sometimes from their parents or from older siblings. So I said, sure, children, no problem. We just go to Python. Python is a language it's known for. Its good and easy to use. Syntax, this will be fine. This is Python children. So you just type print and then run brackets and then quotes.
So all these things have to fit. And then you run the quotes and then look, you have text on a screen. So the kids were like, okay, so we do a lot of work with a lot of detail, and then you have text on a screen. It wasn't so exciting to them. It certainly wasn't as exciting to them as text on the screen was to me when I was 10. So this was the first hurdle. Secondly, it was kind of hard for them to get it right. So this is correct Python code, but if you just make a tiny mistake, you just put a capital print at the beginning of the words print, capital P doesn't work because Python is very picky and it will say this name print is not defined.
So that's an error message. This is kind of doable. So kids were like, oh, well why doesn't take capital letter? Don't worry about it. I just put not an uppercase letter there. It should be lowercase. Okay, okay. But then there was this mistake, right?
So children maybe forget to put the closing packet there. Unexpected EO, F while persing teacher, what is Persing? What is EOF? In my case, teaching Dutch children what is unexpected, but they don't know new words. So you're just like, oh, this is hard. And there were so many ways that Python could trip them up. Here's another example of a kid that meticulously has copies. The example on the slides, oh, this correct, nothing is wrong.
The quotes are there, the brackets are there, the P is lowercase P, everything's fine, everything is not fine. There's a space there. And then you get this indentation error, an expected indent teacher.
What is an indent? This is the first lesson. I don't want to talk about indentation, but I should have to because they have to know that this means a space. This was hard. I was like, wow, this is really hard.
There's so many details to get right and it's preventing children from having fun and from creating valuable things. And also from learning. So then I thought, okay, maybe compilers are not teachers. They can give you some information, but they're really not great teachers. Syntax is actually very, very hard for beginners and specifically syntax is very distracting. So I would do something like this with the kids. So a programme that's not very interesting, right? Four I in range four.
So it prints 1, 2, 3, 4, a 10-year-old is not going to get very excited about printing 1, 2, 3, 4. And actually of course you know that it doesn't print 1, 2, 3, 4, it prints 0, 1, 2, 3, which is even more confusing to tell them.
But what I wanted to talk about was the concept of repetition. Look, the one print, it's repeated four times. I wanted to talk about concept, but some kids were so focused on the spaces, the spelling of keywords, the brackets that they never got true to talking about concepts because they were stuck in the syntax level. So the syntax for some children was very, very distracting and prevented them from having actually conceptual understanding and they would just get really, really frustrated and sad, which with a technical term we often call cognitive load. So their brains were so full with syntax that they had no room left of content. If you want to know more actually about programming, about coding and cognition, I wrote a book about that, not specifically for children, but for professionals, for professional programmers about, okay, so what do we know about how people learn?
So if you want to check that out, I have a link at the end of the talk where you can buy the book directly called the programmer's Brain. That was appeared at many, but I got really, really interested at that point I thought, okay, Syntech is very distracting, but programming isn't the only field where we have syntax, right? Language has syntax. How do they do anything? How do people learn languages? And one of the things that I figured out was like, okay, in language learning there are multiple sort of ways levels to get it right. If you have a six or 7-year-old that's learning to write and I write this, you will not say syntax error floating A, you're proud of them. You're like, well done buddy.
You made some letters and some of it even looks like a little word. So this is correct.
At a certain level this is correct. And then slowly kids grow older and then it's like, oh, those letters, you make words. And then we say, well, what's also very cool if it would be really clear where the sentence begins and ends. So you start with a capital letter and then you end the sentence with a period, and then this actually unlocks conceptually a new language concept because once you have a period and a capital letter, you can actually make sentences that span multiple lines. So the concept of a line in a sentence, which was one concept now become two concepts. So it's not just syntax that we're adding, we're also slowly adding concepts.
So it's like this is interesting, these rules, they gradually change over time. We get more and more strict with children in a sense that we want them to be more precise and we add concepts.
But I just said, I had a background in software engineering. I wrote a PhD about refactoring tools and unit testing and grammars and parts or so it's like, hey, I have the skills to build something like this that we know from research works. If you're teaching, I can make a programme. We said, does this, right? Because that's what we need in programming education. We sort of start at the end.
We always give children access to the full language. We say, here's Python. Even if you just have to print something, you could always have to do complex things like you have to use brackets and quotes even if that's not the thing that you want to focus on. So I thought, well, why do we start at the end? We could also start at the beginning and make a system in which the rules gradually change.
So that's Hedy. Hedyis a gradual programming language that slowly changes both the syntax and the concepts to make it easier for an novelist to learn programming. So at the first level, this is literally the syntax.
You just have print and you print hello, no brackets and no quotes, nothing. You just put a keyword there and a text and then gradually add quotes. And then gradually we add brackets until slowly children are at the end of Hedy, at the beginning of Python, they're doing then a full subset of Python. Not everything but the syntactically valid subset of Python. So yeah, that's Haddy. And of course talk is cheap. You want to see a demo. So let me stop in my slides and let me go to Hedy Align.
Yes, there we go. So I'm assuming you can see my screen if you can. So let me know in the chat, but it shows for me that I'm showing. So this is Hedy, as you can see it brunson the browser. So it's ww Hedycode. com. And here this is the programming interface. So you see this is Hedy, you say print.
Well, this is Dutch show, I'll make it into an English demo. Welcome to dev com. And I just run the code here and then just print, right? So no round brackets and no quotes, nothing of that is needed. You just have prints. And then this is the first level. So kids can get used to programming. Oh, this is programming.
Okay, so you type something here, this is where you run the codes. This is where you output the codes. So they get used to the mechanics of what programming is, but they also get used to what is programming for.
So I mentioned that some of the children were not so excited about just having text. It's a bit boring. You want to do something more exciting. So already in the first level we have some user interaction. So you have a command called Ask, which asks you a question and a command called Echo, which repeats the answer back to you.
So you can run the code and it says, what is your name? So you say, for example, Matthew, let's do T's, Matthew, and then it says Hello Matthew, right? So there is a variable, there's states, you don't have to know all of that as a kid, but at least you can say, oh, okay, so programming is about input and output. Some of the concepts are already there, but we very much lower the syntax level just to show you that there's more. Of course, if you go to level two, you get more programming concepts.
So level two, we introduce variables with the keyword is and sleep just to make it a little bit more exciting. So you can do something like this and this is where the programming magic happens. So we say name is heady and age is 15 and you run the code and this just works.
So name is a variable and H is a variable, but actually is a string. But kids don't need to worry about that at this point in time. We just want to focus their attention. Hey, there's this idea of a variable where you can give a name to a value and just to give you a sense of how hard this would be in Python and Python, you would have to do this. And then you have to think, okay, but this is a string and then this again is a variable and this is a string.
And then for some kids, as I said, this was so much work that they lost track of what they were doing. So we're lowering that level. And of course later on in the level four we introduce quotes and then slowly we add these things.
And the benefits of this also by way, it's not just that it is easier for kids, but also because the language is small, we can have error messages that are a bit better. So for example here, if you misspell a word, it says print is not a heavy level two command. Did you mean print? So because we have fewer options, it's easier to guess what the child wanted. So this was just a brief demo of what Hadley can do. We have 18 different levels and as I said, the final level, level 18 is a subset of Python.
So let me go back to my slides. There we go.
So that was the demo and maybe you're curious how stuff is going right? How's it going with Hedy? Well, not bad actually. We're having quite some fun. This was a nice day that recently happened where GI Wilson, who was the creator of Python, said that he thought Haiti is a very cool new idea how to teach programming. So definitely that was nice to see that it's getting some traction and it's not just getting traction in terms of people liking it. We also have quite some usage. So almost 2 million programmes have been created in Hadi since we launched in early 2020 out of which 700,000 programmes are unique programmes.
So many people do of course print Hello Worlds, but 700,000 different programmes have been created. So yeah, that's kind of cool. And 25% of the programmes that were run in NAR server contains an error.
So that's a syntax error or a different type of error, like a variable that isn't properly defined. And you might say, oh, well 25%, that sounds like a lot. Well, so it is a lot. However, regular programming languages by which we mean Python or Java added are used for novice programmers tend to have error rates that are around 50% and that can go up to 75% for the weakest performing students. So then three out of four programmes have an error.
So 25 is actually quite good and we really aim for that. 50% is really the threshold that we do not want to cross. We regularly keep an eye on certain levels and certain challenges if they're not too hard. So we are pretty happy with the 25%. If you're curious why Hadie is Hadie, actually Hadie is named after this fantastic woman called Hadie Lamar, and she was a movie actress in the 1930s, but also an inventor, and she invented one of the algorithms that's also in your wifi router called Frequency Hop, where if a sort of frequency is full, your router will hop to a different level.
So I thought that's really cool because well, she's a role model, but also we also hop to different levels if it's necessary. So I don't, that was super, super fitting. You might also wonder, and we also wondered, okay, well I made a thing, but this work, do kids like Hedy?
And this was really an interesting question because one of the reasons that I wanted to make Hedy was that it should fill this sweet spot where it is easier than Python, but it still feels authentic. It feels more authentic than Scratch, which children sometimes reject because it looks like a toy. So we did a study, actually a user study with 39 children in 12 online lessons because it was the pandemic and we couldn't go to school. So that was a pity. It took a really long while, actually a year and a half, until I really saw Kids Programme Hadi live because of Covid.
So in this study we had 12 online lessons where we taught Hadi online and children participated on their laptop laptops. And we were curious about what are the benefits of such an approach? What are the challenges and what are the improvements that are still possible?
So the benefits of heli is the children said, well, it gets harder and harder and over time it's really becomes a challenge. So you get this impression that, oh, I can do this, and then it gets a little bit harder and a little bit harder. So that's good. I think that says something about the trajectory that's fitting. And children also said that for them the levels are step by step guide, we sort of tell them what to do. Whereas what we sometimes saw in scratch is that everything is there, all the blocks are accessible immediately, which is nice because you can do what you want, but doing what you want requires knowing what you want.
And if you've never programmed and you see all the blocks of scratch, be like, okay, what do I do? And we help them with the levels as well.
And the teacher of this class, which I really, really liked, said with Hadie, all kids learn some programming in this context. This school used to do Python and this teacher said when we did Python, some kids learned a lot, but also some kids didn't learn anything because it was just too hard. And now all kids learn something. Not all kids learn everything, but everyone learns something. And I thought that was really, really valuable. In another study, which I also really liked was a female teacher with only female students. And she also said that the small steps give especially confidence to girls that sadly often come into programming classes with lower self-efficacy, with lower self-confidence that they can do it.
If you make the steps smaller than girls or other kids that feel uncertain about our programming ability, think, oh, this is doable.
And then it's a little bit, oh, this is doable too. So I really, really liked that too. However, there were also challenges. So children said that even though the syntax is small, it's still really hard to remember the right code. So we are working on that. We have cheat sheets that teachers can order from us for free so that they can put them on the wall. So we're definitely working on that, but that remains a challenge. And also children said that it is hard and sometimes confusing if things change.
So you know how to do something and then you have to do it slightly different and then you have to do it slightly different again. So that's sort of built in to the Haddy philosophy, but that's something we want to work on from a technical perspective to soften the border between levels.
We also ask children, so if we could do one thing extra, one thing new and one improvement to haddy, what should we do? One of the things that kids said is better error messages, even though we thought they were already pretty good, but they can always be better. And here's one specific example that we ended up improving because of this user study. This was an error that we had initially trial types of comma there in between hello and world. And that's not allowed because we also use comas as list separator. So that is just in this situation not possible.
And then the RMS says we thought was pretty okay, it says the code you entered is not valid, had codes, there is a mistake, line one, position 12. That's where the mistake is you typed, but that is not allowed. And this was an error message that children find really hard.
And we were like, but why? It's super clear. So we asked one of the children to read the error message to us like, okay, tell me what you read and what isn't clear. So here goes the kids reading the error message, okay, there is a mistake of line one at position 12, you typed, but that is not allowed. Why can't I do typing?
I'm typing all the time. So I was like, right, they didn't read the coma because these were 12 year olds. They've been conditioned that the coma is a break, right? So they would just read new types, but that is not allowed of course, right? They don't see that it's the coma. We experts, we know that those quotes mean the literal thing. So we actually changed the RMS. This is a newer version of how you see, we added syntax highlighting as well.
Now it says you type a coma, but that is not allowed. That is a lot more clear for children because Inca process it as a sentence and this is the type of thing you only get if you interact with users. Another thing that children wanted is to programme in Dutch, they wanted to have the codes to also be Dutch. So we already had the whole UI was Dutch for them and the error messages already were presented in local languages, but we didn't have local keywords when we were doing this study. And I thought, really? Right? But Dutch people are, they have proper command of English and you're already teenagers, you're on YouTube all the time, really? But then you sort of have to listen to your users.
One reason of course also was that I was not so convinced is that I thought that will be a lot of work to build.
But then we thought, okay, well let's try because it does seem to be important. So I just want to give you a little bit of extra demo. Let me switch over again to my browser of the work with localization that we've been doing. So here you see the user interface again in English and in my profile I could already set my yes, I'm going to leave my language. So let me just first show you how it looked like initially. So this is what children saw before in the user study. So as you can see, well you don't know Dutch, but you can see this is not English.
So the whole user interface was already in Dutch and error messages were in Dutch, but then it still was not localised enough. So what we have now is that in your account you can also set your commands.
This is command in my language, your preferred language for commands to, for example, Dutch. And then everything will change. So if you now go to the programming interface, you'll say nothing's changed, but print is also print in Dutch. But here you see that this is ask in Dutch. So all the examples are now localised. So the codes are also localised.
So if you run the code, it says, what's your name? I say Lina, it says Hello faina. And the error messages are also localised. So the suggestions, it says it's not a command in level one did you mean fact? So everything becomes localised. The interesting thing is, as I said, I was a bit reluctant in building this because I thought is it really worth it? You can just learn English. But of course once we had the architecture for English and Dutch, other people came along.
So just to show you how much difference this makes in other languages, one of the languages that we also support is Chinese. So clearly if you are a Chinese kid, the distance to English is a lot bigger. So once we had Dutch, you can now also programme in Chinese. So these are Chinese keywords and everything, all examples are also in Chinese. And this also works. And as you see, the error messages are also localised. And that wasn't even the end because once we had Chinese and Hindi, once we had non Latin languages, this also opened, oh sorry, this also opened the possibility for Arabic. So we also now, oh sorry, that's not Arabic, that's four C.
We also support Arabic. That means that everything goes also as you can see, right to left. So the programming interfaces here and then now everything is in the Arabic, so it compiles also it trans compiles right to left and the arrow messages are in Arabic.
And once you're there, now it starts to make sense. Of course, if you have a different alphabet, if you're used to writing right to left, then of course it needs to be localised. And it was an interesting journey because it also really made me reflect on why wasn't I so interested in giving this localization to children in my culture. So yes, we built that. Let's go to, we have just a few minutes left.
Let's go to the slides again because I do want to talk just about a few interesting technical details before we go to q and a. So how does this all work? Just to give you a sense of how it all works, of course we can only be very brief, but the idea is that we have head codes as you see here, that we describe what the grammar. So it says you can have print, it's a keyword print and then text.
So we describe what the language looks like, that creates an a ST abstract syntax tree, and then we generate Python in the end. So we transform the a ST again to valid python, and then we run the Python in the browser with a JavaScript implementation of Python called Scope. And for the grammar and the parser, we didn't write our own partial. We use actually larc, which is an open source partial generator.
And we do have some interesting technical challenges. So it's both a didactical challenge to build something for kids, but it's also a language challenge. For example, we collect a lot of data, so we can really do data driven programming, language design. If we see that a certain level is too hard, we can immediately make changes. For example, we introduced a new level eight a while ago, so we had level eight to be a big step and we split it into two levels, which was interesting because at that time we already supported 17 different languages.
So we also had to migrate all of the contents, all the yamo files that hold all the examples also had to be split and rewritten. So managing this entire course repository in all these different languages, hampers the agility, but we collect data which gives us potentially inspiration for how to make changes to the language. And sometimes we also have more fundamental challenges because we are building something that's weird, right?
Partial frameworks are not meant for this. Partial frameworks are meant to have code and one type of grammar that creates one type of a T. This is just what they're for. They're not really for different codes with slightly different grammars. That should create more or less the same a SD challenges that we have. For example, I talked about children struggling with the boundaries between levels. So here's a specific example that's quite typical where the first line is valid code at level nine, and the second line is valid code at level seven, but we can only parse this with a partial of either nine or seven.
So if you parse it with nine, then it says, yeah, I can't parse this because that line two, it's not syntactically valid.
So it says, yeah, there's a mistake, line two, position 12, you type the one, but that's not allowed. So it's a good error message. It says what's wrong, but of course conceptually it should say, Hey, this is level seven code. So this is not what parts frameworks are for, but this is even less what parts frameworks are for that you have codes that potentially partly matches different types of grammars and you still want to get it working. So we really have to do all sorts of magic to make the parsing work. One thing I want to point out before we go to q and a is that this is been a very interesting journey for me from a job perspective because I'm a professor, my job is not to make software, my job is to do research, whatever that means.
So I was just like a few months ago I was on vacation for six days and then there are like 21 poor requests waiting for me. This is my GitHub history, which is also a funny visualisation of my teaching loads, but I'm programming now on honey every day.
And what is this for me, right? Is this research typically people say writing papers is research, so writing software, is that research? Is it outreach? Is it bringing my research to schools? Is it making myself better as a programmer and this better as a professor? I don't know. Anyway, before we go to q and a, just want to point out that we are free. So if you are a teacher or if you know teacher, so we are free to use, you could just go to ww ha go.
com and you can start programming straight away. It also does not require any installation, it just works in the browser.
I made these slides a few weeks ago, actually somewhere in March, and then we had 20 languages already up to 25 languages that Hadi has been translated in. And as you saw in the interface, some of the languages also have the keywords translated. So you can programme in your local language, for example, as you saw Dutch and Arabic and Chinese, but also Hindi, Spanish, Portuguese, Esperanto, many different languages are supported and we'd love to have more languages. So if you want to contribute in any way, of course we're always looking for open source contributes from the programming perspective, but also from the translation perspective. All the details are on the website, but we use this tool called web plate. You can just translate in the browser.
You don't need to know any programming to do that. You can just go to the website and start translating straight away. So that's it. Few places on the internet where you can find me, I'm at felina on Twitter and my website is felina. com. If you want to know more about the book which talks, it's also about the theoretical background about things like Hadi. You can go to fella do com slash book, and if you want to know more about Hedy, you can also go to felina com slash hadi. And with that, I think we can go to questions.
Suze Shardlow: Oh,
Voice over: Thank you very much.
Suze Shardlow: Thank you so much fella. And I'm going to break my own rule here. This is more of a comment than a question, but I love that. I just really love your energy as well. And you must have recounted the story of how you developed this so many times it feels like you're telling us for the first time that bit when you talked about how you got one of the young people to read out the error message and they didn't read the comma. And you, you have that old moment. And I,
Felienne Hermans: Yes, but it's so cool.
As I also said in the talk, it is the stuff that you only get if you sit next to or digitally because of Covid, but if you observe what users do, it's not always easy. And sometimes it's super frustrating because I would be like, why do you click that? Don't click there. Why would you think that's the thing to do? But you also get so much valuable insights from just watching your users struggle.
Suze Shardlow: And we produce a lot of software, we produce some good stuff and we produce some really bad stuff. And it's because we don't put ourselves in the shoes of who's trying to use it. Other comments coming up in the chat?
When you said that you were a child of the eighties, there were so many people in the chat and nodding along.
I actually went, I put my Bluetooth headphones on, went downstairs and got my book that I learned to write basic my BBC Micro. And in the forward it says this book is designed for people wishing to learn B, B, C basic. Ideally the reader will be able to use the computer as he reads this book so that he can try out what he reads at once. Yeah, I know. And yeah, you're right, it did have loads of code in it that you typed in. And back in those days you either had to get a book or you had to go and buy a magazine to get your code and you didn't even necessarily have a cassette tape. And I also had this user guide, you sketch all those things.
That's so cool. I did, yeah. Yeah. I dunno why, but they go, I've got these artefact, I might put them on my shelf.
But yeah, so it's interesting as well because around that time was when I was a child, I was raised by a perfectionist, so I'm very much a perfectionist and any perfectionist will find it quite hard to get started because you dunno if it's going to turn out perfect. And that's what I really love about what you've done here is you've taken away that whole piece of I don't think I can do it. You're just doing what you do naturally and it's going to work. And that is a massive barrier to coding.
And like you say, why would you start at the end? If you're going to draw a picture, you're not going to throw everything down and have that picture at the beginning. You're going to build it up bit by bit. But for some reason coding isn't like that. And what we have as developers, this constant frustration is why isn't it doing what I want it to do is because we haven't told it in the exact way. But why is that? If I go to Holland and I know a little bit of Dutch, I can probably make myself understood. I don't have to say it the exact textbook way.
Felienne Hermans: Exactly, yes. And there's so many interesting things I think. So sometimes people ask me like, okay, but this is for kids, but how is this useful for professionals? The thing that I showed in the demo also where you're allowed to mix plain text strings and also variable names. I want this in Python, sometimes I'm typing Python and I forget because how can it not track? It can scan my IVE knows what the variables are. I don't say Python. The interpreter needs to analyse it because I can see how that might lead to situations you don't want, but my IDE knows what a variable is, can't it just put the quotes for me there out of view?
And if it doesn't work, let me know if it doesn't work. But like nine out of 10 cases, that could probably work. Why do I need to do the FF strings are better than the additions that we had before, but why it can do source code analysis.
So I think there's many things also that I hope that we're doing in programming language UI with that type of things. And also with the localization, we do obviously a lot of work to make it work in Hindi and Chinese and Arabic that I also hope crosses over into mainstream programming languages. Initially we very much had this idea that you do Hadi and then you go to Python, which makes sense for English language children and maybe even for Dutch, but for Arabic speakers, they're at the end of Hedyand then they're doing a syntactically valid subset of Python in Arabic and it's like, okay, now I want to go to Python. Yeah, sorry buddy. Now everything's English and left to right.
So I'm hoping that some of the things that we're doing also raises an awareness with other programming language developers, but you can also do it easier also for professionals probably. So not every speaker of Arabic or HI wants to do it in their own native language, but some of them might. But we steal the opportunity so we don't give them the opportunity of doing that.
Suze Shardlow: Yeah, yeah. Tech isn't really a kind of, generally speaking, a diverse place where we look at differences with people and come to where they are. With that, we've got a question from somebody. Oh, cool.
Voice over: Go ahead.
Suze Shardlow: Yeah, so Andy, they would like to know, since this leads into Python, apart from the shout out from Guido, how are you engaging with the Python community?
Felienne Hermans: Yes. So not really, but I would like to, so if there are for the Python community that I could reach out to in any way, so some of the things we're also thinking is how much should we include? So at the end now of Hedy, we have lists and wire loops and for loops and variables. So there are some parts, but for example, we don't teach functions because initially we thought, oh, you can functions in Python, but maybe it should be in there. So no, I would love to reach out or have people reach out to me in the Python community to help us build a trajectory also in other communities, by the way, because the idea of Hedyis would be applicable to JavaScript or Java or other programming languages. And we just picked Python because it is at this point, one of the most used languages in teaching. So it was a good goal and if you want to implement something, you need to pick a goal language.
But this is also something where we see it could very well also be, there could be Java heading. There's no reason it couldn't be, well, someone has to do it, not me for sure. I'm busy enough now.
Voice over: Well Lina, thank you so much. It was really great to hear about Hedy, and could you just remind people where they can find you and Hedy on the internet?
Felienne Hermans: Yes. So I am on Twitter at under Felina, which is my first name. Hedyis on the web at ww dot head code code.
com. And we're also on Twitter at he code also. And we also have our own Discord server, which is on our GitHub. So if you do want to reach out, if you want to translate, we have a channel for Translator. We have a channel for teachers and want for bugs. So if you want to chat with us in more detail, definitely also hop over to our Heady Discord
Voice over: Deep dives.