It was different when I was a 5th grader in many ways. Learning how to code was not in the realm of elementary schools back then. Computers were simply too large and expensive for kids to play with, and having a good teacher who knew programming languages was a rarity. So I was in a bit of a blur when I pressed the "P" key on my first, just unboxed, brand new, and state-of-the-art Sinclair ZX Spectrum keyboard with amazing 16KB of RAM memory. It reacted immediately, and at the bottom of the large home TV, it said "PRINT", followed by a blinking black square cursor. "2+2" I added and hit "ENTER". It was like magic seeing "4" printed on the screen the next instant. The magic, of course, was not in the correct number. It was rather in the unworldly feeling I got that exact moment of what would come next. What I could command it to do. It was like I found the door of the amazing new world, and the door started to open wide!
Soon later I learned more, especially commands like "INPUT", "IF", "FOR", "GOTO", and those more interesting ones, like "PLOT", "BEEP", "DRAW" followed by even more exotic directives like "PEEK" and "POKE". It went without saying that I occupied living room TV for too many precious hours every day, so my parents eventually bought me a small 12" black and white TV, so I continued with my self-coding BASIC lessons (and with games) on my little 5th grader's desk in my room.
Today, in Viktor's 5th grade time, three and a change decades later, introducing the programming world is a bit different. The main tool is now the browser, and the language evolved into VPL, or Visual Programming Language. This practically means the coding is done by creating and juggling program elements within a graphical environment. It is far more intuitive than doing it with words, and I can't see any obstacles that, in one way or another, what kids are doing today will be the main way of coding in the future. How far in the future is debatable, but just compare the function created by one simple VPL in the above screenshot with the following code that does the same thing, and I am sure that you don't have to be a coder in order to understand what's better for 5th graders to start learning programming. And not just for them.
VPL coding was not the new idea. Programming languages are slowly pushing in this direction for some time. For example, within my professional world, which is fully oriented towards data manipulation, unified communication, and business in general, the main programming tool is Microsoft's Visual Studio, with its first version dating way back in 1997. It's current release is named VS2017, and it's about the tenth or eleventh edition by now, but despite its name, very little inside is truly visual. To be honest, there are some graphically operated bits and pieces, but still, good old VS is still using the text editor for it's main weapon.
However, the generation gap and software development within the internet network brought even more opportunities for nowadays 5th graders. With their VPL blocks, they don't have to just draw bees and robots on the screen and task them to do things. They can do that with actual robots on the dining table! I learned about these programming aids several years ago, and it was only a matter of time when the big players would step into the arena with much cheaper investments. This year, that was exactly what LEGO did with their first robotic kit with pre-built 'boost bricks'. Anyhow, "Lego Boost" arrived last week, and this weekend was all about "Vernie, the Robot", the first robotic creature Viktor made from the box. Not even the expiring chickenpox ruined the playing time, and he spent almost the entire seven hours building, testing, and filming it. It is suffice to say that we both recommend this learning toy more than any other Lego before. The heart and the brain of the set are those three smart bricks that combined represent a Bluetooth hub with movement and optical sensors powered with pretty strong motors that drive not so little robots. The hub is connected to a phone, tablet, or PC, and all the VPL magic is made inside an equally amazing and intuitive app.
Furthermore, the most popular VPL for nowadays 5th graders education, MIT's Scratch project, with an additional helper app (Picaxe S2Bot), is now able to control Boost creatures. To be precise, new Boost VPL blocks are able to control all three motors in the hub along with dynamically acquiring sensor data. In the first video, Viktor and I attempted to control the distance sensor and to avoid obstacles on the Vernie's path. It is rudimentary and raw; after all, this is just a sophisticated toy, but nevertheless, it opens many new ideas for custom-built sets for the future.
But the story with Lego and Move Hub went even further with open source projects on GitHub developed by enthusiasts, such as the Python library created by Jorge Pereira. Viktor and I wanted to make a good use for our old USB gamepad to remotely drive Vernie, so we modified Jorge's code to test it out, and it worked perfectly. The second part of the last embedded video shows what we did and what can be done with Python within an Ubuntu environment. In a word or two, we had a great time and learned many new things, along with how to use Python to answer the web request from an HTML page. Viktor made a simple game out of it by using images from his favorite YouTube channels.
If you ask me to conclude something smart from all the VPL magic for the present time and nowadays 5th graders compared to what I had in my time, all I can say is this: "Just imagine what will be inside the "Lego Boost" alternative in thirty years from now. I wouldn't be surprised if 5th graders of the future start talking to their creations while coding their rudimentary AIs."
Guess Youtuber:
http://www.dmvprocessing.com/zviktor22/Youtubers.html
http://www.dmvprocessing.com/zviktor22/youtubers.zip
Python on Linux: Vernie Drive:
http://dmvprocessing.com/zviktor22/vernie_drive.zip
Python for LEGO BOOST library and examples:
https://github.com/JorgePe/pyb00st
Lego Boost & Scratch:
http://www.dmvprocessing.com/zviktor22/VernieScratch.zip
https://www.lego.com/en-us/boost/products/vernie-the-robot
VPL Coding:
https://scratch.mit.edu/
https://studio.code.org/courses
https://en.wikipedia.org/wiki/Visual_programming_language
https://www.picaxe.com/lego-boost/
Soon later I learned more, especially commands like "INPUT", "IF", "FOR", "GOTO", and those more interesting ones, like "PLOT", "BEEP", "DRAW" followed by even more exotic directives like "PEEK" and "POKE". It went without saying that I occupied living room TV for too many precious hours every day, so my parents eventually bought me a small 12" black and white TV, so I continued with my self-coding BASIC lessons (and with games) on my little 5th grader's desk in my room.
Today, in Viktor's 5th grade time, three and a change decades later, introducing the programming world is a bit different. The main tool is now the browser, and the language evolved into VPL, or Visual Programming Language. This practically means the coding is done by creating and juggling program elements within a graphical environment. It is far more intuitive than doing it with words, and I can't see any obstacles that, in one way or another, what kids are doing today will be the main way of coding in the future. How far in the future is debatable, but just compare the function created by one simple VPL in the above screenshot with the following code that does the same thing, and I am sure that you don't have to be a coder in order to understand what's better for 5th graders to start learning programming. And not just for them.
public void NectarCollection() { for(int i=0; i<=3; i++) { MoveForward(i); for(int j=0; j<=2; j++) { MoveForward(j); GetNectar(j); } TurnRight(i); } }
VPL coding was not the new idea. Programming languages are slowly pushing in this direction for some time. For example, within my professional world, which is fully oriented towards data manipulation, unified communication, and business in general, the main programming tool is Microsoft's Visual Studio, with its first version dating way back in 1997. It's current release is named VS2017, and it's about the tenth or eleventh edition by now, but despite its name, very little inside is truly visual. To be honest, there are some graphically operated bits and pieces, but still, good old VS is still using the text editor for it's main weapon.
However, the generation gap and software development within the internet network brought even more opportunities for nowadays 5th graders. With their VPL blocks, they don't have to just draw bees and robots on the screen and task them to do things. They can do that with actual robots on the dining table! I learned about these programming aids several years ago, and it was only a matter of time when the big players would step into the arena with much cheaper investments. This year, that was exactly what LEGO did with their first robotic kit with pre-built 'boost bricks'. Anyhow, "Lego Boost" arrived last week, and this weekend was all about "Vernie, the Robot", the first robotic creature Viktor made from the box. Not even the expiring chickenpox ruined the playing time, and he spent almost the entire seven hours building, testing, and filming it. It is suffice to say that we both recommend this learning toy more than any other Lego before. The heart and the brain of the set are those three smart bricks that combined represent a Bluetooth hub with movement and optical sensors powered with pretty strong motors that drive not so little robots. The hub is connected to a phone, tablet, or PC, and all the VPL magic is made inside an equally amazing and intuitive app.
Furthermore, the most popular VPL for nowadays 5th graders education, MIT's Scratch project, with an additional helper app (Picaxe S2Bot), is now able to control Boost creatures. To be precise, new Boost VPL blocks are able to control all three motors in the hub along with dynamically acquiring sensor data. In the first video, Viktor and I attempted to control the distance sensor and to avoid obstacles on the Vernie's path. It is rudimentary and raw; after all, this is just a sophisticated toy, but nevertheless, it opens many new ideas for custom-built sets for the future.
But the story with Lego and Move Hub went even further with open source projects on GitHub developed by enthusiasts, such as the Python library created by Jorge Pereira. Viktor and I wanted to make a good use for our old USB gamepad to remotely drive Vernie, so we modified Jorge's code to test it out, and it worked perfectly. The second part of the last embedded video shows what we did and what can be done with Python within an Ubuntu environment. In a word or two, we had a great time and learned many new things, along with how to use Python to answer the web request from an HTML page. Viktor made a simple game out of it by using images from his favorite YouTube channels.
If you ask me to conclude something smart from all the VPL magic for the present time and nowadays 5th graders compared to what I had in my time, all I can say is this: "Just imagine what will be inside the "Lego Boost" alternative in thirty years from now. I wouldn't be surprised if 5th graders of the future start talking to their creations while coding their rudimentary AIs."
Guess Youtuber:
http://www.dmvprocessing.com/zviktor22/Youtubers.html
http://www.dmvprocessing.com/zviktor22/youtubers.zip
Python on Linux: Vernie Drive:
http://dmvprocessing.com/zviktor22/vernie_drive.zip
Python for LEGO BOOST library and examples:
https://github.com/JorgePe/pyb00st
Lego Boost & Scratch:
http://www.dmvprocessing.com/zviktor22/VernieScratch.zip
https://www.lego.com/en-us/boost/products/vernie-the-robot
VPL Coding:
https://scratch.mit.edu/
https://studio.code.org/courses
https://en.wikipedia.org/wiki/Visual_programming_language
https://www.picaxe.com/lego-boost/