 All right, welcome back everybody. Once again, I'm Austin from 16 North up in Norway. And in this session, we're going to hear from Mauritio about using V-Python in high school. Okay, thank you. So welcome, everyone. With Python, it goes to school and 3D for ordinary mortals or students. And this is our plan for today. For now, introduction. So, who am I? I am a teacher. I teach in high school. I teach also in primary school and middle school. I'm also a scratch day organizer and I'm a codder dojo mentor too. So, who am I not? I'm not a guru of Python or a czar of Python. Who are you? Someone of you are a teacher, is a teacher? Okay, that's nice. Someone of you already knows V-Python? Okay. So, I wanna talk about computational thinking, computational modeling and educational programming. With V-Python, so I wanna show you some codes. The sub-topic, the aim is to teach how to become, to be and to become smart, hard to use intelligence. So here, I wanna start from the etymology of this word. Intelligence is from Latin, intus legere, inter legere. So, we have something that we have many things and we have to collect them together. And also, we have to read between the lines. This is something deep. So, we wanna teach. I want to teach to be intelligent in this sense, deep. My educational ratio of my talk, of my work, is to find tools and pathways to introduce how to think and code. How to think like computer scientists but how to think like a human being. Primary in secondary school. So, we have some general actions. Coding is difficult. We still don't have the best language for everyone. I don't wanna be heretical here at the Python conference but I don't think that there is a preferred language for everyone. I prefer Python and I use it at school since 2006. 2006. But I think that every mind, every pupil has its own way to learning. So, we still don't have the best method, pedagogy for everyone. So, we have constructivism, we have behavioral process. We have many things in this field, in this area and pedagogy. But I don't think we have the right solution for everyone. We have many ways, many methods. So, the Python presentation. The Python is 14 years old and was made by W. Sherer and is a package, the package name visual and it allows us to add 3D graphics to Python in a simple way. This is the reason why I use it in school. So, it is to create navigable 3D displays and animations. So, where do we start? We start from the vPython main site. So, you see that the subtitle is 3D programming for ordinary mortals. And for me, it's for ordinary students, normal students. Setting up the environments very easy. You need Python, then you need this package of vPython and then we need an editor, an IDE. We have also in the project of vPython, there is also vIdle, an alternative to idle which fixes some significant problems with using the visual package in Python. But we can use it, for example, I use it in this presentation spider or we can use Python on other IDE. It's not so important. So, now I wanna show you just this code from visual import star import home, sphere. So, this is our first project. So, I need, it's something we can navigate through. We can pan, we can zoom or rotate. And it's, for me, it's very interesting because with two lines of code and with almost, almost no magic. No magic at all, but we here don't, there have many, many strange things for students. Then we can start or we can continue with this one. I can add texture material to my scene, to my object, to my thing. So, I think we can talk about objects but maybe object is a word for programmers. So, maybe it's better at start to talk about things. So, we have a sphere and we can, we can add the material to the sphere. Then, we can continue our presentation. We have many objects, for example here, I import always all from visual, the main module and I construct a cylinder. In this case, I use a variable. So, after this, I can change my object, my thing. Here, I have many attributes. For example, position, axis and radius. Then I can ask, I can ask the object for the values of these attributes or I can change them. So, here, I wanna show you just this one. In this case, I use also scene because we are in this 3D environment. So, I use scene with and scene 8 to do this. And this is also an important result, not so difficult, but a little impressive just here. So, a Python way to teach or to learn. We start from an empty scene, then we use a single object. Then we make, we do an object composition, many objects. Then we continue this process on constructing a static virtual reality modeling. Then we can do dynamic simulation. So, there are also three parts, group in the V Python terminology, there are frames. I can group objects together and then I can use them like a single object, like many other programs. Then we can catch events. So, in this way, I can construct more complex animations and simulations. And this is my dream. I want to construct with my students games with V Python. So, here we have 18 types of primary objects that we can use. We have simple objects and more complicated and complex objects, sphere, text, pyramid, points, lights, label, and so on. So, here I can continue here we have a composition. Here I use the full loop. So, this is an important point because here I continue the lesson from sequence, I go to the full loop. So, I go to the loop, the second structure of the programming structure. So here for example, I made I made 10, 10 sphere is not so complicated because I change only the X position of the sphere. So, it's a loop 10 times, repeated 10 times. And I create, and I create in this loop 10 sphere. If I wanna change this, I have to, I had to give them a name. My in this case is not necessary. So, here a little more complicated scene. In this case, I use a more complex primary object of V Python. And so I use the arrow object. In this case, I have a very interesting connection with the trigonometry. So, I use the function we find in the math library. Like, yes, the PI value and the cosine and the sin functions. So, in this case, it's not so complicated. Also in here, we have a result with a very short program. These are only lines to feed the objects in the scene. Really, I have this one line and then I have three lines. If I, for example, if I cut this, I can, oh, sorry. I have to close this one before. I have always the result. I continue to have the result only with four lines of code. And these lines are not so magic. The pupils, the students can understand the meaning of this. Now continue, oh, sorry. Here, composition and rate, this is important. In this case, I have an animation. I just put this line here, this line. So rate, rate four. In a second, I repeat the loop at maximum four times. So in this case, I have no result of my word, but I have the animation in my word. So here, I have the movement. I have the movement. Really, it seems a movement, but I create many objects. So it's not an object that moves, but there are many objects created in times. Yeah. You wrote this code when you taught your students trigonometry. No. It's disconnected from that. Okay. The question was about if I teach this when I teach trigonometry. Really, I teach computer science. I don't teach mathematics. So I try to have a connection with my colleagues of mathematics, but it's not so easy because the programs are very different shaded. So... You assume that the students know what we see most possible and all that. Yeah. Normally, assume they already know this meaning. Or I can say, you will see the right meaning in the math course. It depends. It depends. But normally, I assume they already know the meaning. So this is another interesting feature we have in visual. In the visual, we have another module, graph. And we can graph functions. So here, we are not in the 3D world, but in the 2D world. And this is another interesting connection with math. So I can show you here this. And for example, I can add here rate, for example, on 10, I think. So I have the function of the movement of the function because without rate, I have the final result. And this way, the result is constructed. So interdisciplinarity. The tactics of interdisciplinarity is not so easy. It's a cultural approach. You have to search methodology to do this. We have many things, for example, problem-based learning and teaching is very interesting to do this. We have to encourage the construction of interdisciplinarity and neural neural network, too. In schools, we have to get to an integration program between knowledges and skills, between many, many disciplines. It's not so easy. Popular approach is connections in V-Python. This is a popular approach in V-Python, is connection with physics. So you find many interesting videos and tutorials about this in many courses, mainly at the university. Where they study physics using V-Python. My aim is not this. My purpose is to teach computer science. So it's a little different from many approaches from this approach. A more basic approach for a high school is for me that I have connections before with math and geometry. Then I can have an approach with physics, chemistry, astronomy, and also computational linguistics. If I have time, I wanna show you an example of this. Math concepts, Cartesian coordinate system, trigonometry, scholar, and vector values. This is very interesting, very important. We have a 3D modeling concept. There are so many camera, lights, and shadow, coordinate axis, background, in a 3D world, texture, like before. Objects, groups of objects, I told you the right term is frame in V-Python. We have also connection with philosophy. For example, time and space. But this is another talk. So, educational testing, Python plus V-Python. My educational context at this one. In a math and science-based high school with only two hours per week. So I believe in learning process, but products and results are also important. So this is a virtual reality model. So here, for example, I wanna show you this one was made by a student of mine. It's very interesting. Here, you have to use many for loops, many loops to do this in a proper way. On a human, in a human way. Then we have many other, for example, here I have an example of this. Using random, I create a ball, then I move the ball in another position, randomly. Using this. So it's important or it's good to do this then. Here, another one. Another one here is made by two students of mine. So it's a little connection. We have interdisciplinarity in this case. Here, V-Python Zen, because here, oh, sorry. Eight, right. We have this bounce example. And the ball continue, so it's like Zen. If you stay for two hours, I think you get the enlightenment maybe. So solar systems, the one we saw before was made by my students. It's not so perfect for a computer scientist, for a programmer, but this is not the case because they study only two hours per week. So this is another one. This was made by a student of mine, but by maybe the best of my students. And it's very interesting. So here, for example, I can write this. This is an example of a reduction of the other. The whole, the whole program is here. And it's very interesting and very complicated. Just one of my students can do something like this. So it's not so easy. Another part, this is a real school test instruction. They have to find the ball wells frequency in this poem. This is a real, a real beautiful poem. So they have to find the frequency, frequencies of the ball wells and this computational statistical method to determine if a poem is, for example, in Italian or in English. And they had to represent with the Python the results. So in this case, I show you the color version of them and it's not so long, it's not so easy. It's not so easy for them, but the solution is, yeah, they can get to the solution. So the Python school in the future, group frame, just one student, I told you, just one student of mine can do the animation we saw before. I wanted to get to events and then to them. For example, here, I show you this one, the last one. I show you this one, the last one. I have a box and when I click, I create a sphere with these lines of code. So it's very easy to understand, to write this code and to understand it. So here are some results. Another strong point of the Python is documentation. Really nice, nice and well documentation. So there are many problems, for example, too many unbelievers in school. To a few evangelists, the disciples, Pythonists, okay, digital net of generations, generation, it's a very hard problem. They can use technology, but no more. There are intrapython limits. So I wanna end with this. We Python are semantic frames that allow to make a bridge in a mind more. So this is all, that's all. Thank you.