Recent Popular Posts

Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

March 11, 2017

Deep learning...

Someone had recently asked me to give them an example of what I considered deep learning.

The STEM Land (@ Udavi) display that the children in the 9th grade had broken down and a couple of letters were not lighting up. A couple of children in the 7th grade had expressed interest to fix the display. I had walked them through how powering a leg of the display lights up one of the 7 segments (and the decimal point). They had been fascinated by being able to fix something and over a couple of classes went ahead and fixed it.

After fixing the board and seeing it work one of the children was interested in doing something more with the Arduino. What the 9th graders had done was the treat a digit as a unit and light up one digit at a time, etc without changing the essential message of what was being printed. But this child wanted to do more. He wired up the 7 segments to a separate Arduino pin and wanted to control them individually.

He managed to light up a 1 by end of a class. I mentioned to him that this will soon get out of hand if he did not start organizing the code (in a language he was learning) into functions.

Later that day one of my youth asked me to give them an example of deep learning in STEM Land.

The next morning B didn't have a class, but during lunch, he came by and asked me to show him what these functions are. I told him that it was similar to the setup and loop that are already present, but with any name he wanted and they could be called into action when needed, similar to the blocks in Scratch. His face immediately lit up and he said ok, I understand blocks.

He had an activity class after lunch and he sat down to implement what he had in mind. He ran into a couple of errors of syntax (defn of functions needs matching '{}', calling functions in C needs '()' ), but then he did not ask for me for about 45 minutes. Then he came to me and said that he needs some help in extending the functionality. I went up and saw what he had done and realized that he had made a single digit counter that went from 1 to 9 every one second. He had now decided to make a clock out of the arduino and had added a second 7 segment display to get the second digit of the clock he needed. I thought he would have missed the logic of the first digit continuing to run when the second was set, but he had got that logic right and implemented this as well. 

I could find nothing wrong with his program and I think was a little surprised how much he was able to progress in a single session starting from wiring up getting the logic of an entire set of digits right and moving on to the next logically. Perhaps, the issue is with the hardware and we are attempting to draw too much current from the USB and none of the displays were lighting up. The debug continues
...but it gave me an answer to what I presently consider an example of deep learning, taking a concept in an entirely different context from blinking light->fixing a 7segment display->individual control of segments and putting it all together to shift between digits in the hope of creating a clock with very little help from an adult.

Of course, there are not enough outputs in the Arduino to create all the digits of a full-fledged clock and I let him know, but it seemed he was happy with what he could get.

January 16, 2017

Training of Savarayalu Nayagar Government Girls High School @ STEM Land

A note regarding the teachers workshop last week with Savarayalu Government Girls High School. Their principal Hemavathi had visited STEM Land with 10 of her children and (the computer instructor from KV Jipmer) a few weeks back and spent the day here interacting with the children and seeing their work.

I found the girls were very thoughtful and identified three areas that they wanted to add in their school - fun, challenges like puzzles, creativity in doing projects from their experience at STEM Land.

Hemavathi is the general secetary of the Pondicherry Science Forum and a very respected teacher trainer in the government. She was thrilled with the motivation and self-direction of the children who she saw were able to work independently and effectively. In her visitor note she wrote that STEM land gives her hope.

She put this in action and this week she organized all her 20 odd teachers from different subject areas including languages, Social, Sports and music and of course Math and Science to come during the holiday to STEM Land for training. We prepared a 4 hrs module on teacher training including use of stewardship tools that look choice of working from possibility and fears and doing things differently. Initially the teachers were not sure why we were introducing the stewardship tools that we said benefited us as teachers and are useful irrespective of the area you are working on, however, they were able to put this in practice the very next session when we jumped into getting teachers who had been fearful of computers for 30-40 yrs to program with Scratch. 
The teachers were very engaged and delayed their lunch by an hour and a half to work. They also interacted with a few children during the breaks. Three 8 grade children (Punidhivel, Kabilan and Vignesh) and Yuvaraj (9th grade) also joined the teachers and it was wonderful to see the teachers open to learn from the children. Thanks Anand and Geetha for responding to the children's request and letting them express themselves, it made a difference.

The reflections at the end of the day from the teachers gave us hope of changes in attitudes both towards technology and how they work with children. One of the teachers talked about how she and other teachers had assumed that being strict and making children sit straight and control their movement was making children learn, but now she saw what the body language of a children engaged in what they were learning looked like and would like to see that in her children. She also felt that she could have learnt a lot more if she had not grown up in a culture of fear of failure and that she will be bold in her actions for the benefit of children. Another teacher mentioned how she has always been externalizing actions (as school and we) and she will now take responsibility for her work as she sees its for her growth. An elderly teacher remarked that he had seen many schools both high class for well off children and poor schools. But, Udavi was special, its a high class school for children who are from poor families.

Given the positive response of the teachers we are continuing the engagement with them with a visit to their school tomorrow. Hope our work here makes the lives of the 450 girls and the 20 teachers in Savarayalu more meaningful and joyful.

(for STEM Land team - Arun, Bala, Muthu, Naveen, Pratap, Ranjini, Sundar, Sanjeev, Vaidegi)

July 03, 2016

From '15 does not have a square root' to 'what is the square root of 0.05'

After such a long break I though I will start with something simple. A couple of questions from children. A couple of weeks back one child said 15 does not have a square root (only 16 does and that is 4). I wondered what kind of creatures children thought surds are. I had done some square root work with 10 graders using graphs and it seemed to give them some idea that these are also numbers of some sort a month back, but it was a passing comment and I let it go.

Recently, a volunteer started coming into STEM Land and I asked him as I ask all adults to work on some projects to inspire children. I suggested creating some sort of graph in scratch for children to see the squares of non-whole numbers. He started it and got as far as creating squares for whole numbers (similar to what the 7th graders with Sundar did last year) and then gave up, preferring to use his time more productively by finding children who wanted to be taught.

Anyway, another week went by and I decided to take up this project and made a rudimentary squaring version with visual boxes (my hope is always to make something functional, but so terrible that anyone who sees it will want to modify it :-)). I went in yesterday and showed it to the volunteer. One child came by and asked what we were up to (never underestimate the curiosity of a child), I showed him, then another, then another kid. They played with it for some time. Then I modified the program to calculate a square root. This seemed to garner a little more interest. They started playing with the program and one of the 10th graders had an activity class and connected it to the graphs he had drawn and started explaining it to the younger kids. My work was done and I walked off leaving the computer to them.

Towards the later half of the session one girl came to me and asked me what the square root of 60 was. I walked her through my guess and she concurred, but murmered something about off screen. A little later she came back and asked me what the square root of 0.05 was. Hey where did that come from? She explained that she was tying to figure out how small a figure she can get and saw the really small square of just 4 of 1/100 and she triggered the software by asking it to calculate the closest square to 0.05. 
I went back and put 60 into the program and realized she was testing where the program ran out of space to fill the boxes. Boundary conditions, interesting...

[Thanks Swathi for suggesting graph notebooks and that areas up to 2 decimal places can naturally be represented in a graph notebook.]
Boring digression from the story:
If we look at a regular graph sheet it is divided into large 1 cm squares. Within these the squares are split vertically 1 mm lines and horizontally in 1 mm thin lines. There are also helpful guide lines at 5 mm that are a little thicker than the 1 mm lines. These lines divide a single square into 10 vertical pieces (0.1) and 10 horizontal pieces (0.1) and together into 100 smaller 1mm^2 squares. The big square is whole and a smaller square is 0.01.
Here is a picture:

Children are comfortable with decimal numbers on the scale. They can easily mark out 5.4 cm on the graph paper and soon realize that its 5 dark lines and 4 light lines. 
If we marked 5 cm in both x and y axis and completed the square we will get 25 full squares. No surprise, area is multiplication.
The same happens if we mark 5.4 cm in both x and y axis. What is the area of this? The following image may be a helpful... 25 big squares (=25), 4 rods x 5 (4x0.1x5 = 2) vertical and same horizontal (=2) and 4x4 (1/100) (=0.16). 

Now playing with modified program of a square root.


Here are the programs to play, break and make something better!
Squaring program     : https://scratch.mit.edu/projects/115474246/
Square root program: https://scratch.mit.edu/projects/115470991/

October 02, 2015

Completed paper on children learning using computers

Many things have kept me away from blogging. This post is about the first, refining a paper that has been accepted at epiSTEM6. epiSTEM is a biennial Conference Series, to Review Research in Science, Technology and Mathematics Education conducted by Homi Baba Center of Science Education and IIT Bombay.

As Heidi Watts who helped me rethink the paper put it the paper now is about how children learn rather than about mathematics or computers. It has case studies on how children have learnt by trying to explain something to the computer through programming. 
Thanks also to Vaibhav who proof read the first version that got accepted, but both he and I knew it wasn't up to the mark then :).

Below is the abstract. Here is the link to the paper.
Using programming with rural children For Learning to think mathematically
Sanjeev Ranganathan, Bala Anand, Sundranandhan Kothandaraman, Vaidegi Gunasekar
Aura Auro Design, SAIIER (Auroville, India), sanjeev@auraauro.com
Is it possible to use computer labs in a rural setting that encourages reasoning, visualization, abstraction in children (as envisioned in NCF 2005) while at the same time addressing curricular needs?
This paper addresses the question through the use of programming in two rural schools including integration of curricular areas for fractions, cube roots, algebra, compound interest, data handling, geometry, etc.

We explore three styles of instruction - projects for children to demonstrate their understanding, challenges to visualize abstract concepts, and games created by children themselves for mastery.

August 16, 2015

On work and play...

At an educational meeting we went about making a distinction between 'work and play'. The closest I could come up with was that work was an activity being done that is useful for others and play was an activity not meant to be useful. Of course, I knew it was flawed, self-work is useful for others intangibly and for professional cricketers play is actually work. Of course this doesn't start to capture where work and play seem all mixed up! I could not define it in terms of enjoyment as there have been many times when I enjoyed myself being at work and at play.

An incident with the children helped me understand this distinction differently.

While creating an animation of the Earth going around the Sun in an ellipse (with the Moon rotating around the Earth) the children had use the computer to create the solution for ellipse equation they got from geogebra. It was all done and they had created the following animation. 
(If you are having trouble viewing animations please update your flash player).

Here is a short clip of the part where children noticed that the earth was rushing past at the top extreme in the program that they had created.




I had felt that being able to solve a complex algebraic equation was enough of a challenge and the children had already spent a week on this project and would want to move on, but the glitch really bothered the children, they were unsatisfied with what they had created. This created an opportunity for conversation about slopes and how things were changing differently when solving in one part of the curve, but faster in the other part of the curve. That we needed to compensate with more points where things were changing faster. It took another three days till the children were happy with their work and it looked like the one below:



On reflecting on the incident I learnt that its play when you do something that you don't have to. Of course this definition seems obvious when you are at 'play'. But, it applies equally to 'work'. The moments where I felt I had done something special were the moments when I did what I had to, but pondered over it and did something more. There were already solutions and I didn't have to do more, but I made work play and kept going. 

It helped me connect to the idea of the next right answer, the pursuit of excellence in getting an answer and continuing to look makes work play.

What a world we would create if all our children could make their work into play.

August 02, 2015

Copy-Paste (the hard way)...

The children had been thrilled with being able to animate the moon going round the earth and wanted to show the solar system with the earth going round the sun. 

Thanks to Arham I had recently seen a video called Earth's motion around the Sun that indicated some of the complexity from the simplistic info that children had:
https://www.youtube.com/watch?v=82p-DYgGFjI

We looked at it and the children felt that it would be interesting to get an object to move in an elliptical path and replicate the earth going round the sun.



The circle was more or less straight forward with moving and turning in each step, but an ellipse...I talked to them of using Geogebra to draw the curve they wanted e.g. an ellipse and then "copy-pasting" it in scratch. Of course the issue was not drawing a shape, but to get an object to travel along the curve so it needed to be true to the curve.

I started with a simple case if x+3 = 5, we went over the story and I reminded them that the answer was not important, it was a trivial case and we were trying to get a method that would help the computer do a repeated simple task till it reached a condition. Also to have a simple condition we changed this to the expression x+3-5 and substituted values of x from -3 to 3 to find when the value of the expression goes to zero giving us the correct x.

We then attempted to solve 2x+3=6 i.e. 2x+3-6 and check when it becomes 0. But, it did the following:
For x=-3-->-9 ; x=-2-->-7 ; x=-1-->-5 ; x=0-->-3; x=1-->-1;  
      x =2-->1  ; x=3-->3    ; x=4-->5    ;x=5-->7 ; basically missing 0. What would then be the way of capturing where the answer lies. The idea that came to the children was that the result of the expression changes direction. Naturally, the last result will need to be remembered, but how do we check if something has changed direction. 
I asked them what they had learnt from integers that might help them do so crisply.They could not quite figure out how to go about it and when they couldn't quite connect after struggle I guided them into the product of integers and checking if the result it positive or negative. Of course here we get the closest integer number, but if the equation is large even though we don't have the decimal parts the curve looks good enough.

We then moved to a real equation x+y=3 and for each value of y we swept x...Once it worked for a line we just moved to the curve and only needed to handle the boundary conditions. 
    

July 24, 2015

Hmm...upgrades...

When you get around to doing something the second time...there is always something new that happens to keep things interesting.

Last year I had worked with some 7th graders on integer subtraction by making something move from its current position to a target position. Here is a note on the same


"Children initially tend to understand negative numbers in integers as a loan. However, even a simple situation like 5-(-5)=5+5=10 becomes hard to comprehend. A number line is a better visualization for introducing negative numbers. This happens implicitly when using Scratch as it incorporates the Cartesian coordinate system. A character (sprite) when placed at (0,0) is at the center of the display. Changing x with a positive number takes it to the right correspondingly changing x with a negative number takes it to the left.
As children use a change x function they get a handle of the integers. In time they get curious and check what happens with change y with integers to get a sense of the Cartesian system.

As the children felt more confident they created a simple game with integers: the user needs to give the number to add to take a character from a start location to a target location. Though initially the children put numbers and situations they already knew e.g. two positive numbers start:5, target:10, to add:(10-5)=5. The program would then move from the start to start+to add and check that the result is the target. Once the children are comfortable enough to randomize one and then both the starting point and destination, all possibilities of subtraction scenarios arise e.g. start:10, target:5, to add:(5-10)=-5. They also clearly see the need to move left to get to the target. Similarly, start:-5 target:5 to add:5-(-5)=10 also makes sense as the target is to the right of the object."


The emphasis last time was a bit on programming and getting the strings and numbers to match up well. 

But this time the children were implicitly unconvinced about the motivation of the character (in one case) the crab to move. The crab must have had a reason to have a target, right. So they came up with their reasons. The crab was tired and wanted to sit on a rock!



There were other stories of a diver catching a fish, of a cat catching a mouse, someone looking for a key, etc). The character was at the current location and there was a visible target that the children could see is behind or ahead of the character. This helped them re-look at the result they got to see if it made sense i.e. positive number means the rock should be in ahead and a negative result is a rock behind me.

April 20, 2015

If I had wings...

The work with the children in Udavi 8th Grade for their end of the year story called 'if I had wings' felt quite complete. I have already put a note on what I saw in the children when they were looking at their work and about their work itself.

Preparation: For the class project with the 8th graders on if I have wings we first set up the computers to be networked so they could save their data in one place. This helped us back up their files track their progress from one place.

Pairs: I noticed that the boys and girls don't seem to work much with each other and asked the boys and girls to pair up. I also asked them to plan what they wanted to accomplish as the time was short. They were also required to come up with quality criteria.

Day 1:  The class came up with the quality criteria to look at their projects through consensus:
Understandable,  Colorful, Creative, Beautiful, Proper Language, Interesting and Teamwork.

We also had the following agreements - discussion within the group is fine, but disturbing other groups is not ok. If technical assistance is needed you raise your hand. The classes had a little hum going like a bees bussing, but it never got too loud or noisy.

Sundar and I were providing support and we had asked the teacher also to join the children in making her own program.

The technical instruction of the day was on linking to the central computer and to Open and Save files over the network. This itself made a big difference to the children in the project. There appears nothing dampens enthusiasm as the possibility of destruction of your work and being able to build on their work gave them a sense of purpose.

Day 2: The children felt confident that they could get what they wanted to done and we opened up the space for them to access the internet and download images that they might find useful for their project and not limited to images in Scratch.

The instruction of the day was a demo of Gimp, contiguous selection which could help crop backgrounds quickly and help them use characters downloaded from the internet.

There was also instruction on not using the green start flag and using an event instead. All events were named with unique names by using the first two letters of both the children in the group. Similarly all sprites and backgrounds were named by adding the 4 letters to the end to avoid clashes when the programs were merged.

One of the groups went overboard and even named their character in their story the same name as their code names.

Day 3: To bring back focus on the project as some groups were drifting we had a session on feedback for growth. Each group watched what the next group had done and offered increase, decrease and retain feedback on the quality criteria.
There was some concern among us teachers that there is nothing to show yet.

Before the next class we looked at 2 groups who were really struggling and put a few lines of code giving them an idea of how to go about animating.

Day 4: They worked, we supported and kept shuttling around groups. 3 groups were satisfied with their work and called it done. 5 groups were not done.

We agreed to have a Day 5, but decided that the groups who were done would have to take it to the next level and start working on combining files with us.

Day 5: We started combining the files and came up with a much larger list of to dos in individual projects to make merging possible:
1) Append name of sprites, backgrounds with unique name for each group (we used the first two letters of the two children in each group)
2) Make each sprite hide  when the green flag is pressed
3) Each sprite is message driven and each message has the unique name followed by 1, 2, etc.
4) BG changes are also within the sprites (using change background)
5) Make the begin position of each sprite explicit

6) Hide when done

We were able to combine the three projects that were complete and we asked the children to go ahead and join the remaining groups supporting them through this code review and making the work of merging easier.

Day 6: We showed the children their combined work, they did a self assessment for themselves and we also did a survey for the children.

It was interesting to see quite a few children in the survey point to teamwork as a big learning for themselves another was getting what they set out to do done.


April 19, 2015

Wake up, Sanjeev...

Towards the end of the year I was invited by the English teacher at Udavi to do a session for closing the year with the 8th graders with making their stories in scratch.I had worked extensively with technology with the 7th graders for Math and this reflected in their abilities to program and create their stories in English, but a similar project with the 8th graders had not felt complete. She offered 4 classes (of 1 hr 20 min each) to get something whole done. The schedule was very tight and we went over what were our priorities they were to support children in their organization, concentration, determination to get their work done and teamwork. The theme of their work was 'if I had wings' and we wanted them to be able to dream and see it materialize.

The days flowed beautifully and we needed one extra day for 5/8 groups to complete and we working with the 3 group of students who completed to look at what it would take to merge the projects into one class project. The children started to look at reviewing the code to merge the projects.

The next class we looked at the combined project of all the children. It was a 4-1/2 minute animation that had no sound. We started watching the animation. About a minute into the animation I had a Wake up, Sanjeev moment. These are moments that you have when as a teacher something tells you to sit up and take notice about something happening in your class. I realized something magical was happening. The children were concentrating and looking at their work and the work of all their classmates as one drama. Children from the generation that have seen television at it loudest, flashiest and who are often seen as having too much noise were in full concentration in complete silence. Luckly, my wake up call came early enough for me to take a few photographs and then go ahead a record 40 seconds of the magic.

Here is the video of the children watching their work...



and here is their work:




Here is a note on the process we followed in the five days and how it was one of the times when things just flowed and fell in place.

April 07, 2015

A simple square rooting game

At Isai Ambalam a couple of the children I was working intensely with programing graduated, it left a small class of 6th graders and a couple of 8th graders. The youth with AuraAuro took up various classes including my 6th grade. I was left shuttling between classes and the 8th graders. The 8th graders who are still here are not ready for their next grade both in language and math. Taking a leaf from my being independent book they were keen on taking the initiative and learning on their own and asking for help when they needed it. They were working on squares and square roots for a week on their own..., but I realized that they were not quite getting the sense of the numbers. They were doing much drill, making mistakes, but unable to notice their mistakes or having a ball park estimate. 

They are hesitant to program themselves and had relied heavily on their partners who had left school. I asked them if they wanted to the computer as a calculator...they readily agreed (ha!).

Looking around and starting visualization
The sixth graders were drawing the representation of linear expressions like 5x+10 (and then changing the constant or the slope and getting various staircases for positive values of x. I asked the 8th graders if they would like to use scratch as a calculator and do the same for x^2 = x*x. They plotted it along with the linear curves and soon realized the much faster rate of its growth to exceed the screen size. They felt that x^3 should perhaps increase even faster and went ahead and implemented it to find out.

We talked about the possibility of using the computer to find the square roots of numbers by repeated calculating x^2 for numbers starting from 1 and stopping when they reached the numbers as given in the book.

Starting to look at the consecutive squares
We made a very simple program which started with x=1 kept incrementing x it by one and calculating a square (one multiplication per second). Scratch can automatically show the variables of your choice making it easier since we didn't need to program the printing.

They started looking at the results of squares of numbers and basic internalizations that the squares of numbers do increase as numbers increase and start to notice a few basic squares that they knew.

Efficiency of calculation
As we got to 4 digit numbers the time taken by the program was quite a lot and I asked them what could be done to speed up the program without changing 1 multiplication per second. My argument for the constraint was that that much time is required to register the square of a number and I did want them to connect a number to a square.

It took them a little while, but they concluded that we could start with squares of every 10 numbers 10, 20, 30, 40, etc and stop when the number was overshooting, go back one level and then increment by 1 to get to the result.

This reduced the square of 69 from 69 seconds to 7+9=16 seconds. They also started getting a clearer understanding of the ball park of the squares since these were the same as the squares single digit numbers in 100s.

Guessing the result
This brought us to the most interesting part of the book that talked about how you could guess the square root of a perfect square (of a 2 digit number). It talked about getting the 10s place of the number. They could see this from the program the optimized code a number like 2209 needed to be in the 40s as 40^2=1600 and 50^2=2500. It was then a matter of which of the 40s gives the result. 

This brought us to the ones/units place and the fact that there is a clear mapping (two to one at times) between the units of the number and the units of its square, e.g. 2/8 have 4 in the units place, 3/7 have 9, 4/6 have 6, 5 is just 5 and 1/9 have 1. 2,3,7,8 do not come in the units place of a perfect square of an integer. 

Looking at 2209, it could have a square of either 43 or 47. The next choice is determined by whether it is closer to 40^2 (1600) or 50^2 (2500).

Permeating
The fun with being able to guess something marginally larger than they thought they were originally capable of was that they showed what they could do to the 6th graders who were promptly curious on how this was all done and learnt it too.

This gave them endless fun of resolving the solution and pitting themselves against their program and getting the solution before it did.

January 10, 2015

Finch flops @ fair

As I was recovering from Dengue I was still weak and could not travel to Udavi. I had however received the Finch robot as a gift from Gaurav. It had been a lot of fun to use it and program it for a task (drop a paper ball into a basket) at the Isai Ambalam school. When Poorna school children visited Isai Ambalam they also had a lot of fun programming the Finch to do such a task.

Udavi school organizes a school fair a day before Christmas and some of the children from Isai Ambalam had gone for it the previous year. This year they were asked to put up a stall and the children decided that they would do a stall with Finch. Given that it was the coolest gadget, we already had it made and just needed to show up. Of course in the dry run of designing a challenge and making it happen with teams in the class it took us half an hour...I took the precaution of going to Udavi a couple of days and introducing working with the Finch. My class at Udavi was even upset that I was letting the Isai Ambalam children set up a stall with Finch, instead of them.

D-day the children put up a stall with the game of asking people to program the Finch to start in one location and park in another while avoiding hitting obstacles. People were happy watching the Finch demo, but not many were biting. Only the children from Udavi who had worked with me gave it a try. Some were curious and watched, but very few were in the frame of mind to give it a shot. Soon the obstacles were removed, the problem made simpler, yet the crowd stayed thin watched a demo and walked away. 


Arham had also come to the fair and I was walking around with him trying out various games - dropping a coin in water to a target, tossing a ball to pass through a hoop, kicking a football through a tire, tumbling a tower with balls, rolling a table tennis ball on two ropes and dropping it into the bucket, hitting a ball coming out of a pipe. I walked back to my team after an hour to realize that they looked exhausted and it was because of lack of interest and the effort it took to write in the program.


I realized that most of the games that didn't involve luck involved prediction...watching something happen and trying to correct to make something else happen. It reminded Daniel Wolpert's very interesting TED talk about how our brains evolved primarily to help us move dexterously through prediction (its a fun talk, well worth the 20 minutes). The ease of prediction and correction was missing in our game and hence not in sync with the rest of the fair. What was fun and exciting in a "serious" classroom setting had fallen flat in the light of "real fun". 

An hour and quarter had almost passed (in a two hour fair) we needed to change the game drastically. The new game was this, a random program was written to make the Finch move around a bit. As a user you needed to predict where to place the Finch in order for two wheels of the finch to come on the parking pad. You had two attempts. Once someone solved the problem the program was changed. 
Having to choose location and orientation alone seemed doable and a fair crowd built up at the stall. You could wait and watch someone did to have a better shot at solving the puzzle, but you took the risk of someone solving it before you.

While most games were running out of steam since children and people had already tried them the Finch stall was heating up. The stall running about 15 mins after the fair stipulated time and children played even though the center where tokens (we gave out on completing the challenge) were exchanged for gifts, had closed.

The fact that the game was salvaged in the end seemed to have stayed with the children as they seemed pretty happy with their stall and wrote about how successful it was once we changed the game. A few Udavi children who had stayed till the end asked me to book the game for them for the next years fair.

December 20, 2014

English stories and their scratch avatars

Delivering a good English program is a challenge in most rural schools. To make it a creative exercise at Udavi children are asked to write their own stories. I have already been working with scratch with the 7th graders and with their English teacher we decided to give our time in the holidays for children interested to create their scratch avatars.

The creation of stories into scratch makes the children convert the story into a drama and they need to choose what they want to communicate through the characters and what they want to communicate through a narrator. It also allows for children to work at various levels from those who want to do elaborate animation to those who want only characters to talk alternatively. The aspects of logical thinking is highlighted and some children did have issues when they had more than two characters and they needed to track which character is speaking and how long the other characters need to hold their silence in order not to overlap.

A further complication was when the backgrounds and scenes changed and they needed to time these also right. This got further complicated if they changed the sequence and added a few seconds to read a specific text as all timings after that would change. A couple of students found their story too complicated to implement with timing and were able to learn and use the power of Scratch being an event driven programming language and broadcasted messages when certain events were complete to keep timing manageable even with a large number of characters.

One of the more elaborate stories involved a cat that made machines, got transformed into a half-cat and half-boy, saved the world from a monster, went to sleep and had a dream about an alien attack, then waking up and seeing the dream become a reality and then defeating the aliens. No really, the story exceeds my capacity to make things up:


The 8th grade tried to use the same two characters and have adventures that went to different places. One such story had a very elaborate backgrounds that were hand crafted by the student.


I tried to put a process of students typing in what they wanted to enter as conversation text in the hope that the spell checker will catch something for them and help them learn English. Unfortunately, in the excitement of making the program new dialogues were added and old ones removed resulting in a fair number of errors. However, by and large the idea that they were creating a sort of product was in the students mind and they also made a presentation to the coordinator of the school. Most children were happy that they had something to present.


About 80% of the class who came in the holidays and started the process were able to complete their projects. Here is one in which the child struggled to complete and put in extra time to complete the story.







December 16, 2014

The finch robot : Programming (1)

Programming with Scratch has been getting more interesting with interacting with the real world with the makey-makey that was able to let the computer receive signals from bananas and vegetables. Gaurav's gift of a Finch robot gave a way for children to control something that happens in the real world.

The setup on Ubuntu 14.04/Scratch 2.0 worked with the given guide. 

I explained and demonstrated the sensors, played with its nose light and then we got down to making the finch move. In the initial exercise I was trying to get the children to move the finch around in a certain order, but what made it interesting was to try to move a crumbled paper ball around and put it in a basket without the Finch falling off.

The finch has two wheels that are controlled independently with (two) motors. The only input possible is a speed from -100 (backward) to +100 (forward). In order to rotate an object, for example, you need to move one wheel faster than the other. Also, since we had not figured a direct relation between the speed and a specific distance there was some guess work involved in the time that it needs to be done for.

The phases involved in solving the problem involved in drawing out what they wanted and what speeds in which wheels for how long will be involved in doing so. The wheels were a little wobbly and even when the two speeds were exactly the same the finch had a bit of a drift to one side. But, that just added to the challenge :).

I split the students in groups of 3 or 4 to allow for discussion and team work. The game was to be able to do it in the least number of attempts. I noticed that groups were not that keen on observing what another group was doing as they wanted to only follow their own program to avoid confusion. But, since my purpose was for them to start predicting the outcome I provided an incentive of an extra attempt if a group predicted the outcome accurately. This got the groups interested in examining each others work as well.
After a couple of attempts the children started to really get into the idea of predicting what a set of instructions is going to do and how to go about solving the puzzle. The reality of a paper crushed into a ball is that it didn't always move with the finch and kept things interesting. Its interesting that while children keep track of the number of tries, etc none of this really matters and the first time a ball falls into a box the children want to do the next puzzle.

The ideas of rotation, positive negative numbers, speed, timing were reiterated. In addition problem solving by prediction, verification and correcting what they were doing and the idea of learning from what happens rather than it just being right/wrong was an aspect looked into.

November 02, 2014

Makey, Makey (4): Water level detection

With the 7th grade at Udavi I revisited the Makey, Makey a week later. I asked the ones who had used it earlier to demonstrate it to their friends who had missed it. The recall wasn't perfect and it gave a chance for them to debug.

Then we took it a step up and asked a different question, what application can we use the makey, makey for. Since it is able to detect the resistance of water we used it as a water level testing and then things got really interesting with them experimenting with their bodies in series with the water, etc.

Here is a video of the class that you can look at even if you have no clue what Makey, Makey is!



October 19, 2014

Makey, Makey...(1)

At Isai Ambalam school we had set up the computer center and this year I was looking at how to best utilize this for the older children (6th and 8th graders) at the school. We have been working with Scratch programming for math concepts and more recently for creating games with English.

Regine is volunteering with us at the school and observed some of the classes got a very interesting gadget called the makey, makey from her friends to see what we could do with it in the school.

The idea of makey, makey is so simple that it adds to elegance of thought to come up with it. It notices if a circuit is complete and sends a signal to the computer that it knows well - the space bar, left, right, up, down arrow keys and a mouse click. Not very interesting in itself, but the subtle part is that it can detect even a large resistance closing the circuit. This makes it possible for it to detect a human body, a banana, a leaf, etc to close the circuit and lets it interact with objects from the outside world not associated with the computer.


The picture above is me playing a drum and a guitar string with each banana using Scratch.

Technically you need to hold one wire in your hand and play with the other hand. 
But, in our class the grounding of the computer room was quite good and since we leave our footwear out we were completing the circuit by simply letting our feet touch the ground. this meant that anyone could just touch the banana and get a space registered which meant in scratch could make a drum beat.

Of course the children were not convinced that it was the ground completing the loop and they pulled up their feet sitting on the plastic chairs and checked. Luckly the internet had been shut down due to heavy rains and we have to open scratch and create our own programs, choice of music and notes.
Once the kids were comfortable with what they were doing they asked the other teachers to come and try out the musical instruments.

Now, we will build on it and see what else is possible. One child has promised to work on a burglary alarm, another is making a full piano, lets see.

July 20, 2014

Taming Frankenstein

As I progressed towards getting children proficient with both positive and negative numbers the 'target' game got tuned further. I allowed students to put the starting number and guessing the number needed to get to target and as part of meta-cognition test I asked how many children felt they were proficient with integer arithmetic 6 children stood up immediately. Most others were able to do 'sums' on integers, but the idea of subtracting the starting point from a target worked ok in their head with questions like 5 going to 10, -11 going to 7, -17 going to -35 got messy.

With a few commands we transformed getting a user number (which some children were sticking to 'simple' numbers) to a random one and putting in a count for correct numbers. The twist was that the count was zeroed out if you got one wrong. I asked children to show their proficiency by getting to 10. Time not being an issue. Every 5 minutes or so the room will have an aaagghh, oh no as children made progress just to be shot down before they could get to 10. I decided not to tell the children about Frankenstein, but they felt that they had created the game and should be able to beat it. Arc was able to beat her game and was quite pleased with herself. Lets see if the other kids get the same high tomorrow.

Teacher Note:
I've made it a little simpler with +1 for a correct answer and -1 for an incorrect one. A list tracks all the problems where the child was confused so you can look at it in detail once they are done.



July 10, 2014

Making a game...

I had a discussion with the computer instructor comparing teaching children programming (scratch) vs Openoffice in 6th-8th grade. We noted that it is possible that the office tools may have a role to play when they eventually graduate and look for work. We talked about how long it really takes to get a basic hang of what can be done with office and as children what application/interest they would have to build on it. The discussion helped me realize that Scratch allows the children to create something that can interact with them/others vs only present.

I started working on this by making the basic program they were working with interactive. Check teacher note for more details on integer addition.


The children felt the characters they had created real. They were able to relate the movement of their characters from the center of the stage to the left and right in terms of the number line and didn't get all worked up as the previous set of children I had worked with regarding negative numbers.
 

The kids seemed to be enjoying themselves punching in numbers and checking if they got it right. I asked them if they were really enjoying themselves and they said yes. But, there was no uncertainty or serious challenge and I want's sure if the children were enjoying themselves or if they had found a comfort zone. It was time to stretch.

We made a game out of it by allowing the user to enter a number and then have to reach a target randomly chosen by the computer. This allowed for having to think through where they were and where they needed to go and calculate accordingly. It seemed challenging, perhaps, too challenging for the younger children. When we did a self assessment the elder children felt their best work was to create the games and the younger ones kept talking about wanting to master the game.

In one of the classes, I helped them add a timer. Though they were troubled by the timer when the played the game, they simply could not take it out as they had created the game and it was a cool feature. Creating the game and playing with it were valuable complements to the discussion we had in class regarding integers, in specific negative numbers.

Teacher note:
For addition of integers the interactive program places the character at x=0. The user provides the first number and it moves that many steps and then the user provides the second number and it moves as many steps.

In one grade I introduced negative numbers initially with story of
5-10 where you had only Rs.5 and needed to buy a chocolate for Rs.10 and needed to take a loan from the shop for the same.
We then slowly drifted to Scratch. It was interesting that children are able to see scratch as something real that they control. The children all use their own characters and objects so I guess when I starting talking about what does move x 10 do the children had no issues talking about how you move right by 10 and that move x -10 says change direction to what you were moving before and goes left instead. 

I was careful to position a negative as a turn around (change direction) rather than left as it gave me the option of introducing a double negative as going right.

July 07, 2014

Phone number of a computer

The children have learnt to program with scratch at different speeds and as part of different groups. Some learnt it over the summer. Some children were in a different grade before being part of the multi-grade classroom (15 kids from 6th to 8th grade) and they have all used different machines. One of the issues that cropped up was that a child wanted to use only one machine since the child would have its work on that machine. I had used sftp and other such protocols, but was not sure how to set it up. Also my time beyond the classroom is limited and I am unable to be a sysad. I checked the minumum needed for a file transfer was to start listening to port 22 and this I did.

I thought the children would find it fun to think of communication across machines. I started with a analogy using cellphones. What if you called someone from another person's cellphone and then wanted to save it on ones own phone. The first solution was that one person can read out and the other can punch it in (I wonder if that is indeed the fastest!), within a second another kid suggested that you can SMS the number. Well, the village kids growing up in this connected world age find the cellphone quite intuitive (memo to andriod - you should not need to install an app to SMS phone numbers!)

We then started talking about what is needed to make this happen. We should know the phone number to SMS to, there should be a network and even one that suggested that there should be a battery in the phone. Since the kids brought up batteries we started talking about the SIM card and what functionality it could have. e.g. What happens if the SIM card from a phone is removed? What happens if the SIM card placed in another phone? Again, its amazing how much kids know about cellphones.

We then talked about how cellphones communicate to each other. The kids immediately brought up 'tower' and then how it goes to a satellite and comes back! Ok. Well what if two phones were close by, would they need to go out of their way? We then talked about networks that are connected to each other and at times when no physical network is available signals needing to take off.

I mentioned that the internet is one more network and pointed out that much more can be done other than going receiving data from the internet. We could also send information, including transferring files between machines. I proposed that it was like making a phone call. You needed to know the number of the person who you were calling, they would need to pick up, but then since these were machines talking not people there would be additional checks and balances.

I had installed Filezilla on one of the machines and tried to transfer to the pseudo server. This had worked the day before. I had, however, not had the time to install this on the other machines. The first step then get the children to go through the process of installing filezilla (minus root password). 

The next step was to figure out how to give filezilla the phone number of the computer. We did this and then entered additional data like the login and password (the information they need to log into machines).

The first try did not work and said that there was no response. I realized that having turned on the ports once the previous day was not enough and I turned it on again. 

Then was the issue of getting the passwd exactly right. This proved a little tough as it needed to be verbatim and the approximations children make to instructions of the teachers simply did not work and voila they were in.

The children seemed quite excited that they could transfer files between machines and one of them even looked up at the big monitor (connected to the pseudo server) expecting a visible reaction from the machine having transferred his file.

For closure of this experiment I went ahead and let each group of children who transferred files to present some of their work on the big screen to reward their work and prove to them that the files actually did get transferred.


Of course, we will move to a more permanent solution of mounting a drive on all the machines, but it was fun to enjoy the journey and not only the destination.

June 24, 2014

Learning math through programming

Trying to teach math and logic through programming seems to be getting the results. The kids are thinking of the concepts they want to display (through a project) and at the same time learning to keep things simple and manageable and at the same time learning the nuances of programming in scratch (e.g. using stamp instead of a new sprite each time).

The fraction function I created was used by a couple of students at Isai Ambalam to create a small project in which the result of addition with numerator and numerator and denominator and denominator was shown to be incorrect graphically and then corrected.

I felt it was pretty neat and worth sharing:


I have decided that this year with the 7th graders its really worth spending the time upfront to teach them the basics of programming to reap in the benefits later. With the kids at @ Udavi we worked on getting a handle of handling integer addition (with positive and negative numbers) by moving the sprite with as many steps (in x direction) and displaying the current location. This gave quite a few children a visual picture of the negative steps.
Interestingly, one of the children found the limitation that an object when asked to move by steps will refuse to exit from the stage. This placed a lower and upper bound on the numbers that could be dealt with in this fashion in scratch (-268, 267). Here is a slightly modified one in which you can type in inputs instead of changing the numbers each time.


The trick I guess is to keep coming up with a challenge that can be interesting and be useful to learn a concept. It also helps to remember your primary responsibility is to help learn the concept and the secondary responsibility it to help learn programming, so you know when to intervene. 

Here is one that I made up with the 5th grade (I did most of the programming) to give some variety for them to talk about the multiplication and two division stories.