It was different when I was 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 rarity. So I was in a bit of a blur when I pressed "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 with blinking black square cursor. "2+2" I added and hit "ENTER". It was like magic seeing "4" printed on the screen 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 with 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 after, introducing 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 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 above screenshot with the following code that does the same thing and I am sure that you don't have to be 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 directions for some time. For example, within my professional world, which is fully oriented towards the 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 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 just to 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 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 represents a Bluetooth hub with movement and optical sensors powered with pretty strong motors that drive not so little robot. The hub is connected to a phone, tablet or a PC and all the VPL magic is made inside equally amazing and intuitive app.
Furthermore, the most popular VPL for nowadays 5th graders education, MIT's Scratch project, with 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 first video Viktor and me 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 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 Ubuntu environment. In a 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 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 with 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 after, introducing 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 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 above screenshot with the following code that does the same thing and I am sure that you don't have to be 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 directions for some time. For example, within my professional world, which is fully oriented towards the 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 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 just to 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 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 represents a Bluetooth hub with movement and optical sensors powered with pretty strong motors that drive not so little robot. The hub is connected to a phone, tablet or a PC and all the VPL magic is made inside equally amazing and intuitive app.
Furthermore, the most popular VPL for nowadays 5th graders education, MIT's Scratch project, with 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 first video Viktor and me 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 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 Ubuntu environment. In a 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 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/