Stories You Can Interact With

rushabh meha python workshopRushabh Mehta.

This is a summary of what happened in the third programming class for kids at Shishuvan. 

The first computer program you are generally taught in first year of engineering is a function that returns the factorial of a number. Factorial? Who uses factorials? What are they used for? We usually have no idea or any emotional connect to that problem. No wonder most find computer programming boring!

The conventional thinking is that computer programming is closely related to math and logic. The heart of a computer consists of hexadecimal numbers, flashing through transistors at lightening speed, and hence the reason that programming must be taught like math.

There is an alternate way to approach programming. Donald Knuth, who wrote the classic “Art of Computer Programming”, considered to be the bible of computer science, talks about “Literate Programming”, where programming is considered as a natural language, and not a mathematical algorithm. This means that programming can also be taught as literature and not just mathematics.

Jump start

In the first class we did variables, functions and lists and almost everyone got what we did, in the second class, we did more complex functions, using lists and loops and also introduced the concept of Python modules. Again most of the kids who attended, got this. Some kids understood a lot more than others.

In this class, we had many kids who had not attended the second class, so they were coming after a gap of two weeks and needed to be jump started. So we spent quite some time recapping what we did in the last class and quite a few kids could write the functions we wrote almost form memory. So far so good. It was a good revision for the kids who had attended both the classes.

At the end of the second class, we had decided that in the next class, we were going to make a sorting hat, a hat from the Harry Potter books that separates students into groups

Sorting hat

So I asked the kids, how does the sorting hat work? One of the kids came up with this answer, “When a student wears a sorting hat, the hat matches the student’s abilities with the abilities of the founder of the house. And which ever ability matches the most, the student is assigned to that house”. Pretty good explanation!

So we said, lets start making a sorting hat.

houses = ["Gryffindor", "Slytherin", "Ravenclaw", "Hufflepuff"]
abilities = ["bravery", "cunning", "intellegence", "hard-work"]

Yeah, mmm, this was good, two lists, but the next question is how do we co-relate the houses to abilities? Here is where we introduced classes

class House:
    ability = None
class Student:
    ability = None
gryffindor = House()
gryffindor.ability = 'bravery'
harry = Student()
harry.ability = 'bravery'

We saved this file as sortinghat.py and went into the Python shell. This was a good time to introduce inspection and the Python function dir, which helps you explore objects.

>>> import sortinghat
>>> dir(sortinghat)
['House', 'Student', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'gryffindor', 'harry']

Here we imported the sortinghat module and looked at what was inside it. We found a few things we recognized, Student, House, harry and gryffindor. Then we looked inside gryffindor

>>> dir(sortinghat.gryffindor)
['__doc__', '__module__', 'ability']

We found ability! Then we knew what this was:

>>> sortinghat.gryffindor.ability
'bravery'

Now that we understood what classes were, we added a few more properties like name and created a list of all the houses and students.

Let play

After that we decided to move straight to the magic. Click here to view the full file.

def sort(student):
    for house in all_houses:
        if house.ability == student.ability:
            if house.students is None:
                house.students = []
            house.students.append(student)
            print student.name + ' goes to ' + house.name + '!'

Then reloaded the module and called the function sort

>>> reload(sortinghat)
>>> sortinghat.sort(sortinghat.harry)
Harry Potter goes to Gryffindor!

We made a sorting hat!

Again a flurry of questions and the kids were eager to try it themselves. This was quite a long program and there were bound to be issues. Most kids got confused with the forced indentation in Python and a whole lot of them struggled. But at the end of it there were three or four who could get this working.

Conclusion

At the end of the third class, it seemed most of the kids were struggling, especially those who had missed the second class. There were too many concepts thrown at them and while they were having fun and trying hard, there was more assimilation that needed to be done.

On the other hand it was heartening that there were four or five kids who were getting it. These are kids who had never learned how to program but could understand a whole lot of concepts to get a program working. Now is the time to consolidate learning. In the next class, we will try and make more variations to this model and reinforce what we already know.

In Harry Potter we have found a great analogy to learn programming. Kids love stories and if they can feel they are writing one, it would be a great leap of imagination. How well they go from here will depend on what kind of support they find at their homes. I am hoping at least some of these kids have supportive parents / guardians who can help them make that leap.

Modules of Communication Styles

As part of the Personality Development (PD) Classes, students of Std. VI explored the concept of Communication Styles. While they learned the theoretical framework through visual aids and a classroom quiz, they also experienced the same through different modalities. The students also had an opportunity to share their learning through a small campaign. Here are some student narratives and classroom photos that will give you a peek into our exciting journey!

-          Lamia Bagasrawala, School Psychologist, Shishuvan School

My experience in PD!

“As the new academic year started, the first activity we did in our PD class was the back–to-back drawing activity in which we had to sit back to back with our partner. Then the partner would give some instructions and we had to imagine the picture and draw it on a piece of paper given to us. It was a very interesting and good activity to improve our listening skills.

The second activity that our PD teacher Lamia conducted was the ‘Silent Movies’ activity in which we were given a topic on which we had to perform a skit without speaking and not using any props. Then the audience had to guess the topic. I had a lot of fun guessing and performing the skits.

I participated in a campaign activity too. As part of this activity, we had to go all around the school and explain the four styles of communication – passive, aggressive, passive-aggressive and assertive communication. Our group had gone to explain this to the teachers. The teachers wrote their opinions and feedback on the campaign paper. I had fun going around the school completing the activity.

The last activity was to perform a skit on any of the four styles of communication. Overall I learnt to control myself and make sure not to get angry on anyone. I had a good time attending all the PD classes.”

-          Abha Chitale, VI – Shraddha

“PD Class has always been exciting and wonderful so far. Each class brings new things for us to learn. There must be almost fifteen classes of PD so far and so I have learnt those many new aspects of life. I learnt types and styles of communication – Verbal, non-verbal, passive, aggressive, passive-aggressive and assertive. I also learnt about friendship outside school and friendship in school. We also had classes on healthy friendship and unhealthy friendship.

I enjoyed participating in the skit on communication. It was a wonderful experience. I like group work and skits. All the group members contributed immensely in all the things like script-writing, dividing roles, etc. It has helped me improve my leadership qualities, acting and speaking skills.

Campaigning is an unforgettable experience. I contributed by planning what to say and how to address the person we are talking to. It helped me greatly in improving my communication skills. I sometimes tend to use aggressive communication but from now on after learning the benefits of assertive communication I will surely try to use assertive communication in my day to day life.

Participating in PD classes means access to more knowledge on topics which tell us how to face the outer world. I enjoyed all the PD classes as important topics were taught in a fun way which made things crystal clear in my eyes. PD classes are always awaited by me throughout the week. Things that are really important for our life are taught to us in such a nice way systematically just in forty minutes that for those forty minutes we all become good listeners and absorb all that we can to step on all the obstacles that come in our life and be a successful person in the future.”

-          Harshi Shah, VI – Karma

“In PD I have learned different styles of communication. My experience during the skit was good. My contribution to the group was by coming up with the idea. I was playing the role of passive communicator. It has helped me by improving my speaking skills and understanding the topic. My experience during the campaign was good. I explained it to two teachers and three students. It helped me by getting to know other people’s comments and I learnt how to explain the topic well. I usually use Assertive communication but sometimes I use passive aggressive or aggressive communication when I’m angry. I should work on not using aggressive communication.”

-          Diya G., VI – Dhyaan

“I have learned in PD that the person’s deeds make him good or bad. We should work together as one part of the world. I thoroughly enjoyed the skit preparation as I contributed as a narrator. I loved the campaign as my group was awesome. It helped me develop my leadership skills. I learned that I mostly use all styles of communication. I would change my style of communication to be more assertive.”

-          Aatmi Badani, VI – Dhyaan

“We enjoyed our PD classes conducted by our PD teacher Lamia. We had a lot of fun throughout the term. We learned about the types and styles of communication, through activities such as Silent Movies. We understood that by changing the style of communication that we use often, we can change our attitude.

In PD I have learned that I should behave well, that you can say whatever you want in a cool and calm way. We sometimes are forced to use aggressive communication but most of the times we should try to use Assertive communication. Thee skit helped me understand that we need to adjust with each and every one. We can learn many things by interacting. My contribution in the campaign was that I told everyone about the styles of communication. I understood that some teachers don’t wasn’t to be aggressive in communication but they are forced by us to be aggressive sometimes and they always try to be assertive.

My styles of communication are passive, assertive and aggressive. I learned that I need to talk to the person if he is irritating me and not just tell him by action, I need to talk to him in a calm way and express what I want. We don’t need to yell or ignore that person.

We enjoyed our PD classes conducted by our PD teacher Lamia. We had a lot of fun throughout the term. These sessions helped us change our attitude. ”

-          Shatakshi Shelar, VI – Karma

“In the PD classes I liked the part when we had deep discussions. I have learnt the different ways to communicate. My experiences have been amazing. I loved the chart work and the skit. I have loved the campaign because of the ways in which we did it and learned the styles of communication and its uses. Usually I’m passive in communication and don’t talk to others. But now I have realized the need for assertive communication.”

-          Kabir Shah, VI – Dhyaan

 

communication modules8 communication modules7 communication modules6 communication modules5 communication modules4 communication modules3 communication modules2 communication modules1

 

SCHOOL OF COMPUTING WITCHCRAFT AND WIZARDRY

This is the second session of my computer programming class at Shishuvan.

The way we declare variables and functions in Python is called snake case. It means that you join words with an underscore (_), like this, snake_case. We had talked about snake case in the first class, and how Python is a snake, and we how we were talking to the computer in snake language. And everyone knows who can talk with snakes, Harry Potter!

We started the class with quick recap of what we did last time, that is variables, functions and lists. We then decided write a function that used lists.

>>> def add_marks(marks):
       return marks[0] + marks[1] + marks[2]
>>> add_marks([20, 30, 40])
90

The kids understood this alright. They recapped how we use indexes to address elements of a list, and how the first index is always zero and not one. Then I added another element to the list:

>>> add_marks([20, 30, 40, 10])
90

I made them re-write the function for summing a list with four elements. There had to be a better way to do this, and we quietly introduced loops.

>>> def add_marks(marks):
      total_marks = 0
      for mark in marks: 
        total_marks = total_marks + mark 
      return total_marks
>>> add_marks([20, 30, 40, 10])
100

As expected, there was a flurry of questions

Repetition and Induction

This is when it struck me that the kids were understanding what the function is doing, what they were figuring out is the how. They were learning by induction. And isn’t that how we learn anything? By repetition and induction. As humans we are hard-wired to mimic other people and then we bring in our own variations so that we start learning what we are actually doing.

That was what these kids were doing. They had no idea what loops were or what the for statement did, but they kind of, got it.

They had soon typed it out and then asked a whole bunch of questions, like about indentation. Like why the return statement needs to be out-dented and other things.

I challenged everyone to make a function that returns the average of the list. And someone did actually come up with this:

>>> def make_average(marks):
      return add_marks(marks) / len(marks)

This was super cool. They could now write functions that called other functions!

Working with Strings

To reinforce loops, we did another example, this time, we added strings. I first told them that we could add strings like numbers with a few examples and then we made a function.

>>> def say_hello(students):
      student_names = ''
      for student in students:
        student_names = student_names + ' ' + student + ','
      return 'Hello' + student_names[:-1] + '. How are you?'
>>> say_hello(['Harry', 'Hermione', 'Ron'])
Hello Harry, Hermione, Ron. How are you?

As you expect, the were already starting to make their variations, in function names, student names, the output text. Repetition, induction, then variation.

Since the function got longer, many students were getting a bunch of error messages, and this was a good way to learn reading them. They were mostly related to typos and passing strings without the quotes, but this was great too, because they were starting to learn nuances, like, you can’t make spelling mistakes, strings are different from names and commands.

Wizard.py

Finally it was time to teach them Python modules. We copied some of our functions into a text editor and then we called the file “wizard.py”. Then we imported the file and called the functions.

>>> import wizard
>>> wizard.add_marks([20, 30, 40])

This was also real cool, because now they realized that they could “teach” the computer a bunch of tricks and the computer can remember them.

I asked if they were feeling like wizards already, and a few hands shot up!

Conclusion

This session went of pretty well too. We have already started to see a lot of variation in the kids. Some kids were just zooming ahead, they understood the repetition-induction-variation system. Many were afraid to try, and this system works really well only if you feel its okay to fail. For most of us, the cost of failure is very high (exams!) and that means that we end up becoming dumb followers and not-trying. Some of the challenges would be to get these kids to try out different stuff and fail.

Since we are already in Harry Potter mode, in the next class we have decided that we are going to make a sorting hat and divide everyone in groups! Lets see how that goes.

TEACHING PYTHON TO SCHOOL KIDS

rushabh meha python workshop

(Rushabh leads a software product company that publishes a free and open source web based ERP for small and medium businesses – ERPNext. They have built the product from scratch and the product is being used actively by many businesses across the world.)

 

 

 

“Call of Duty”, “GTA Vice City”, “Minecraft”, “Candy Crush” the kids were shouting when I asked them what were their favorite computer games. What else did they do with their computers? I asked, “Download movies on torrents” someone shouted.

This was a group of 30 kids of age 12–14 that were attending a session introduction to computer programming I was a part of, at my daughter’s school, Shishuvan. The school had decided to start a computer club and a bunch of volunteers including me, had happily agreed to teach some Python programming to kids. Having learned programming at the age of 11, I knew they should be able to grasp the basic concepts.

After the warm up, we quickly fired up the Python shell.

Let’s Talk

“I am going to teach you how to speak to a computer. We talk to each other in English, but we will talk to the computer in a language called Python. Don’t worry, it is like English and its going to be real easy”. Having done this kind of session before, I knew that not using computer jargon and throwing the kids directly into code works really well.

“Lets find out how smart the computer is. Lets find out if it knows how to calculate”, I asked. We started with basic arithmetic, addition, multiplication and division.

>>> 2+2
4
>>> 5 * 20
100
>>> 10 / 3
3

“That is wrong”, the kids immediately shouted.

Then I said, lets try this:

>>> 10.0 / 3
3.33333333335

That’s how we got introduced to Decimals.

Python is like English

Some kids were already trying things on their own. Since I had told them that Python was like English they were already typing things like

>>> who is sachin tendulkar
>>> what is my name

“The computer is not so smart yet, we will have to teach it”.

It was amazing to see how quickly the kids were trying to gauge the smartnessof the computer!

Then quickly we got down to calculating a percentage and I quietly introduced variables

>>> my_marks / total_marks * 100

They were tagging along quite well.

Teaching the Computer

Then I became too ambitious. “Watch this”, I said

>>> def what_is_my_percent(my_marks, total_marks):
      return my_marks / total_marks * 100
>>> what_is_my_percent(273.0, 300)
91.0

“Since the computer is not so smart, we will have to teach the computer a few definitions. The way to define something to a computer in Python is by usingdef”, I told them.

Immediately there was a commotion. “What is this colon?”, “What is def?” they were shouting. I felt that I had tripped. Water was drying from my mouth. In a moment of horror, I realized that, with that one example, I had introduced too many things

The kids were all up in arms, all of us volunteers were walking from table to table, explaining the eager queries everyone was having.

Thankfully after ten minutes or so we recovered, and the kids were beginning to understand. They had discovered they could teach the computer to calculate formulas. Someone even used the word “function”. Soon, they were experimenting with new functions to calculate areas, adding numbers and more. We also did a bit of lists before we decided to call it a day.

At the end of the session we could see that the kids where excited learn about programming and some of them were ready to do a lot more. The way they were modifying the instructions we taught them, and changing the context of the examples, showed that they had already grasped a lot of concepts. They were ready to dive into classes and objects next.

Concluding Thoughts

I had a lot of fun teaching Python and the energy was great. At the end of a couple of hours of shouting, I was refreshed! A diverse group of volunteers came together to make this happen, including alumni, teachers, parents and administrators. This is only the first step of what we hope is a long journey. Over the next few sessions, we are hoping to teach the kids web programming, databases and the ability to build whole applications that will help run the school.

It is very heartening to know that the school was willing to let kids learn computers in a non traditional way. The can-do spirit of Shishuvan was amazing. Standardized and structured education has been the foundation of the modern society but as technology is breaking down barriers, education is changing too. It was thrilling to be a part of this change.

This was made possible due to the openness and vision of the Shishuvan community, specially Lincoln, Neha, Premjibhai and Sarita. Alumni Darshan and Raj have been very diligent and the ideal bridge. There was great support from fellow parents Parul and Uma. Special thanks to Anand for volunteering to help me conduct the session. We have just gotten started, watch out for further updates

Mirror Mirror on the wall….

 

-          Lamia Bagasrawala, School Psychologist, Shishuvan School

As part of their Personality Development (P.D) Curriculum, students of Std. IX actively participated in exploring the concept of Beauty. Students began the session by discussing and sharing the ideas that are most commonly heard or showcased around us. They were then introduced to one of the less common views on the given topic. They watched the TED talk by Cameron Russell, a model who shares her insecurities despite being at the receiving end of socially defined “Beauty”. This was followed by a brief discussion and watching the Dove Real Beauty Sketches video. This astonishing and overwhelming video reveals how individuals tend to undermine their own beauty and how each one is beautiful in their own way. Students watched this video in silence and seemed surprised and touched at the end of it. Some of them could relate to the TED talk, while some connected to the experiences in the second video. Some were already beginning to question some of their existing socially constructed beliefs. As the students processed this information, they were asked to form groups, share their thoughts and each group was asked to present their perceptions about ‘Beauty’ in one of the following ways: A Beauty Product, A Visual Presentation, A TED talk format or a Song. Students presented their ideas through different modes. One group showed an existing TED Talk titled ‘Darwinian Theory of Beauty’ followed by a discussion around the same while another group showed a Cartoon image to begin a discussion and share their ideas. Another group created their own TED talk, couple of other groups wrote their own lyrics for a song and one group presented a famous saying that formed the basis of their presentation. One of the groups presented a Mirror as a Beauty Product to demonstrate that each one is Beautiful in their own way and that your beauty lies in the way you see yourself. All the presentations were heart-warming, informative and reflected the students’ thought processes. Students began the process of exploring their personal beliefs, the factors influencing these beliefs and identifying the impact of these on their own life. It was indeed a reflective and thought-provoking session for me and the students. The session was concluded with each student writing a message related to the topic of ‘Beauty’ that they would want to share with others. These messages, written on post-it notes were displayed on a chart outside their classrooms. Here are some glimpses of our exciting, stimulating and ‘beautiful’ session! Also find a student’s views on Beauty which he presented during the session.

Beauty

pic of student

Shiv Udipi, Std. IX Dhyaan

 

Beauty is a trait present in someone. You can call someone beautiful not only by his or her physical appearance but the actions performed by that person or the behaviour of that person. Beauty may be expressed in music, dance or art, etc. Beauty of a person is a good act performed by someone that makes others happy. Beauty is something that lies within and it is shown in some or the other way. Our life is full of beauty but we waste our time neglecting it. We have a full world full of beautiful things but it is we who do not recognize it and do not cherish it. Beauty is the uniqueness of a thing. We must not make ourselves feel inferior if we lack physical beauty because beauty lies deep within our heart and in our deeds.

OLYMPUS DIGITAL CAMERA OLYMPUS DIGITAL CAMERA mirror3 mirror2 mirror1 mirror 2 OLYMPUS DIGITAL CAMERA