School curriculum for creating virtual and augmented reality

I see how the popularity of virtual and augmented reality technologies is rapidly gaining popularity in the educational environment. This topic is actually mandatory to meet at recent events both official from the Ministry of Education, and among the circle movement.



I myself have been in this topic since 2016. At that time, only a year passed since the start of my company for the development of VR / AR solutions and, of course, I tried to attend all events as an expert in this area. At that time, there were very few confirmed experts, so I went from city to city for a lot of events on various topics: from the forum of the Ministry of Economic Development in the Samara Region to the retraining courses for librarians at the Academy of Arts in Barnaul.



As a result, at one of the events, we met one wonderful girl from the Second Novosibirsk Gymnasium, who invited me to a meeting with the director. As a result, I was suddenly offered ... to teach a course on developing VR / AR applications for shkolota. It was an interesting challenge for me, but also very difficult. There is really no technique, Google and Oculus have just put their SDKs more or less in order without global shoals, so that the junior can cope with them, I myself am a person without pedagogical experience. In general, I had to act on the touch and poking method.



In the end, it led me to write a series of manuals on developing a space simulator in virtual reality for Google Cardboard and on developing an animated cartoon in virtual reality based on the Oculus SDK for beginners; on the development of RPG games in augmented reality for followers; and developing a strategy using OpenVR for in-depth study. Well, somehow it all went and went, started spinning, as a result, now I teach at the gymnasium, Novosibirsk State University for undergraduates and in a couple of programming schools.



At the same time, it all takes me about 12 hours a week, but otherwise I continue to work on projects in my company. I condescendingly call myself a “teacher,” because I still can’t accept myself as an accomplished teacher, despite three years of actual experience and achievements, such as my student’s victory at the All-Russian NTI Olympiad in virtual reality profile last year.



Now, in fact, to the main idea of ​​what I would like to write about. My start of training fell on students in grades 6-7. I thought: "It was not difficult for me to learn, so what could be the catch?" At the start, to teach quick assembly using assets, of course, is not difficult to figure out. It’s worth, of course, to make a reservation that I’m talking about development in the Unity 3D editor, However, when we went deeper, doing interactive scripts on scripts, I came across, explaining the calculation of the distance between vectors, so that my students had not even passed the concept of the square root (I was sure that he was still in the third grade). So, in parallel with the main material, I had to explain the basics of mathematics. And would you see the eyes of those who have already studied the square roots, and suddenly encounters turns in 3D-space using imaginary numbers.



Now, when I hear from the educational staff a statement on the topic of developing virtual and augmented reality, I understand that they do not really have an understanding of the part of the iceberg that is under water. And I would like to talk about this pitfall. I think these are things that are understandable to many who work in IT, so this is primarily for those computer science teachers and directors who think how to easily and naturally create a course on the basis of their educational institution.



To begin with, AR / VR development is not just a single horse in a vacuum. In fact, this area is built on three key topics: studying the editor's interface and a basic understanding of the basics, 3D modeling and software development. Therefore, ideally, the course can put forward requirements for students: knowledge of geometry, knowledge of the basics of computer graphics, knowledge of C #. Then the main task of training will be just to study the editor interface and parsing the Unity API. In this regard, I like this year of work at Novosibirsk State University, because I have a separate group of guys who have the necessary competencies, and we can study really interesting and complex things, such as creating arbitrary geometry, programming shaders and the Entity Component System.



However, from experience, this is an exception that I met for the first time in my entire work. Otherwise, even adult workshops often come to those who have neither a foot in programming nor in computer graphics. And even more so when we talk about high school students.



Thus, the task of creating a course on developing VR / AR at school actually becomes the task of organizing a set of courses at which we first study the interface of the Unity editor, and only then we proceed to study programming in C # with a parallel analysis of the fundamentals of mathematics and geometry (often ahead of the school curriculum).



And here again there is an interesting question: what is the main task of the course? For example, at the NTI Olympiad, the main tasks are related directly to algorithms and classical tasks of computer science. There are practically no practical cases related to AR / VR. This is just pain. There is a person who knows the syntax of the language perfectly, knows the necessary frameworks and can make a little game in VR for a day, and there they are given tasks from the classics of computer science and the only thing that comes from AR / VR is the camera.



Understand correctly, I'm not talking about the fact that the programmer should not know the algorithms, data structures, design patterns, and so on. But I suppose that in addition to my course, there are also teachers in computer science, in mathematics and geometry, who should teach what my students should use.



Therefore, there is a need for related objects to coordinate programs among themselves. For example, in many schools now, according to the trend, there is a switch from learning Pascal to Python. But Python and C # are different languages, like English and Hebrew. Of course, there are polyglots for which this is not a problem. However, in my opinion, in schools it is more convenient to introduce a division into language groups so that children can learn the language at will, as is done with foreign languages. Instead of the principle of “one language for all”, one can offer children branches of development. For example, if you want to develop web development - php + javascript, if you want to develop games and create AR / VR - study C and its derivatives, do not want anything - go learn python as an extreme case (just kidding of course).



And in the end, expectations for return on the course come into play. For example, the deputy director fantasizes: “Now let them make hippos dancing on the corridors of our school?” I think that knowledgeable people have already grasped the problem in this technical task: where to get the content, and even with a clearly defined animation? In fact, as part of the above course, we train programmers, not 3D-modelers and animators. Give them a model with animation from some Mixamo and give them models of the environment, then they make some ugly scene out of them. Because they are not artists and they deeply put on the beauty of the user interface and color scheme. Everything will work for them and this is enough.



There is one more problem: not only those who want to program, but those who want to do something beautiful come to the AR / VR development course. And they’ll just deeply indulge in this whole geometry and programming. They are artists and want to be realized in this area. Moreover, their role is no less important than the role of programmers, but today most of the training programs deal specifically with software development and not content creation.



Therefore, in fact, if the leadership of the educational institution wants to boast of a comprehensive solution as a result of the work of its educational program, you need to create another course for 3D-modelers and animators. In this regard, of course, I recommend that educational institutions choose Blender as their main program, as it is free. When talking about this area, many school principals immediately proudly declare that they already have a 3D modeling area where children create equipment. And every time I try to convey the idea that engineering modeling, architectural modeling and game modeling are three globally different areas with their tools and techniques.



As a result of my monologue, I offer you a table of the curriculum, as I see it, to bring to life the expectations of educational specialists and give them a real direction in organizing the course in their educational institution.







ps I ’m ready to share manuals, but not for free. Mom doesn’t allow me for free. But you know these Jewish mothers.



All Articles