Programing mindset Session 3 – Purvafairmont

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.

Free single candy dispenser

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 …)

IMG_20180211_190858x

We then took the thinking to the next level asking what changes are needed, if the machine dispenses three types of candies.

IMG_20180211_190916

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 …

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s