Whiz Kids is a serial television show aired in 1995 in my country, that drive me mad toward computer programming!
This is a retrospective article of why I love programming so much, with the goal in mind of how can I transfer such a deep love (not an exaggeration here!) of computer programming especially to my children, but can also be applied to any parents who would like to do the same to theirs.
But, before going deep on the technology stuff, one important thing must be adhere first : our kids have their own destiny. They will learn and develop their own passion toward things that may be alien to us. Forcing them to love something that we love is not only bad, but it can create such a destructive effect. The art in parenting is, if you love something and would like your kids to love the same thing, you'll have to do it smoothly, silky and in such a way that, they will embrace it happily at their own pace without being forced to. If eventually your kids don't show likeness toward that things, well, what can we say? Nothing. We can simply conclude that it's not in their life path ...
Once upon a time, back in 1995 ..
.. there was a TV shows called Whiz Kids (ref: first episode). You know you are old when you remember this! But, that's not the point here. The point is, it create such an aaaww experience for me, as I can't forget these moments:
- There was boxes of computer machine stacked on top of each other, with a black and white CRT terminal displaying musical sheet. Richie, our hero, compose some kind of classical music by touching the monitor and hence, creating musical notation on it! Finish composing it, he played it, and ... voila! A wave of classical music coming to live. It was such a thrilling experience for me.
- There was an eight bit character named Bob. The whiz kids are trying hard (not sure about the plot though) to make it live, by means of (as of know we know it) voice recognition. At the last scene, finally able to listen and then speak, "Hello Richie". Wow!
- The computer able to scan Richie face, recognize it and then saying, "Hello Richie". I remember now they named it Ralf.
The effect are impressive : I am trying hard (and loving it) to learn computer programming. Back at that time, I still lived in Denpasar, Bali, Indonesia (currently I am living in Jogjakarta, Indonesia), computer are still very rare. There are already adaptation of computer to many organization and business, but still I don't think I remember my pals having their own computer unit. Finally I found a place where they rented computer for typing purposes, and I dutifully rent it almost daily with my petty cash : learning Basic, Pascal and C/C++. Totally unforgettable episode of my live!
The Future is Today
Those three scene previously mentioned are kids play things today. My 3 years son have already played with a virtual piano application in a Samsung Galaxy Tab 2, of course by simply touching the screen. I have also let my daughter play with voice recognition to command Peedy the Parrot, to fly around inside our monitor. And with the facial recognition in high end Android tablet, it was not an aww experience to know that computer can recognize faces as it previously was. Bottom line is, kids are not that easy to amazed anymore. It took Iron Man technology to really get kids excited in computer. Those magic in Whiz Kids show, are a meh in kids today standard. Poor old man...
What can we do to really amazed kids in Technology? We must leap ahead and try to bring closer the same magic that amazed us back in the late '80s or early '90s. Fortunately, our current technology indeed gives sufficient means for us to do just that. Some technology are still in waiting list but its usage already been familiarize to us by many sci-fi movies, such as IronMan, Minority Report, I Robot and else. Let's explore them here and try to inspect whether Python allow us to do just that!
Future of human computer interaction
I could go on with multitude of technical jargon replacing this term, but kids will quickly understand what I implied by this : J.A.R.V.I.S, Just A Rather Very Intelligent System. An artificial intelligence with sole purpose is to manage Tony's life or Iron Man suit. Tony can easily speak, or contemplate his thought to Jarvis and waiting for its feedback or sometime Jarvis itself can take one step action before Tony was asked about it ("Jarvis, put all my left over energy to my thruster", asked Tony and answered Jarvis, "I already did Sir!"). If I am not mistaken, the lowest tech Tony Stark use, was just a physical keyboard in Iron Man 3, where he was out flight into Chattanooga, Tennessee. The rest? Well, let's explore it in their glory technical jargon, complete with our beloved Python package dealing with it.
Natural User Interface
There is no way you can watch a scene where Tony Stark use a mouse. You can only saw he speak, use hand gesture or touches to interact with Jarvis. Or simply put, it is a natural way for us to interact with our surrounding. This technology is maturing, and gain more and more popularity as it came into our consumer product devices such as iPhone/Android by means of touches interaction, Siri/Google Now that lets you speak (almost) naturally to get desired output, Microsoft XBox Kinect by means of physical body gesture and the latest Google Glass, that bring reality to the future tech Tony have in its Iron Man HUD.
The other good news is, it's not far away in our Python world. Here goes:
- Kivy : write 100% in Python and have it packaged into Windows/Mac/Linux/iOS/Android with full touches capabilities.
Kids may not get too excited by touch applications, but you can create it anyway.
PyKinect : allows you to use MS XBOX Kinect Sensor in your Python application.
Let say that kids are not going to be amazed if you just show them your application build with touch capabilities using Kivy. They got used to it. A totally different experience for them is if they able to command the computer using gestures : clapping, clenching, thrusting, etc. This cool demonstration from Elon Musk surely will give a great start for us to imagine what arrays of application can be developed by hand/body gesture interaction.
Robotic or Computer Controlled Home by Means of Raspberry Pi and Arduino
Making a computer interact with our surrounding, or making surrounding controlled by a computer will bring truly amazing experience to the youngsters. Kids already given a believable robot coming to live either in Iron Man, Transformer, Pacific Rim or else. Our next job is to enliven those vision for them. A concise guide on Pyro (Python Robotic) is all that we need. Or, you can explore an integration of Raspberry Pi with Arduino and Python using this Instructable article. Or, if a walking robot is not that cool for your kids, what about a flying robot?
A flying Quadcopter controlled with hand gestures using Kinect sensor using Pykinect. Watch it here!
Or, maybe a simple Arduino project controlling your kids room will enlighten their spirit to learn more about future tech. The possibilities offered by combination of Arduino and Raspberry Pi are limitless. Surely, all will encourage our future generations to study more about this tech.
Detecting face from video feed
Making the computer sees us, is all about computer vision. The most popular computer vision library is OpenCV, built with C++. You can use the Python API for OpenCV here. On its simplest usage, you can use Python-OpenCV to detect faces in an image. Or, a much more thrilling experience would be to use a live camera feed to detect your kids faces.
In this article I presented a glimpse of current technology that is a future of our past. I suggest that kids / youngster are not going to be amazed by just our vision of the future. But, they must get acquainted with what the future tech may hold for them. Good news is, they can experience it as believable as possible in a lots of Marvel/DC superheroes movies and we can make that technology coming closer to their daily live using our beloved Python packages and its supporting technology.
Have a good experience with our youngsters!