We took on an ambitious agenda of laying the foundation for a programming mindset today. Probably the toughest thing I attempted so far, and I would give myself a B for the session.
Will try harder next time.
People often confuse programming for coding. Programming is about design, logic and experimentation. That is what children need to learn, instead of being lost in syntax. In fact programming is not just about making computers work, but developing a new mindset of learning – design, re-usability, failing fast, fixable errors, simulation, logic etc.
(I will write in more detail in a later post, but programming is a very powerful tool for learning many things including Physics, Chemistry, Maths and Social Sciences)
We started the session by asking the kids to design a free single candy dispenser. It doesn’t take money and only dispenses one type of candy. They needed to design the physical mechanism, as well as develop the logic for the machine. This has to be done by using the pre-determined blocks.
The idea is to develop the underlying algorithmic thinking.
Children were unstoppable with their creativity in designing the dispensers. Leave them alone and they are all so mischievous.
We then used the ‘lego’ blocks to develop the intuition for input, processing, output and conditional blocks.
Here is a summary of the final design we created.
(I had no choice but to incorporate their inputs on the characters in the diagram. So naughty …)
We then took the thinking to the next level asking what changes are needed, if the machine dispenses three types of candies.
See how elegantly we could bring in another control block and =reusable functions. Why don’t we teach programming this way in colleges? Why do we start with endless syntax and abstract examples like Fibonacci series. (Yes, the kids are puking in the example because the first option dispenses Sour Punk candies !!)
Post that we created a simple Jupyter notebook in Microsoft Azure using Python (notebooks.azure.com). I love how intuitive notebooks are to learn programming, as the experiments are immediately visible for one to see. I love Python because it has such a minimalist syntax, with so many possibilities in the future. We have more work to do for this topic. More exciting sessions coming up.
Over the next 3 weeks children will be building a Wave generator using Jupyter notebooks. Can’t wait …