Wednesday, August 12, 2015

Learning some programming (Scratch)

To make room in the schedule for an extra hour of CS Unplugged, I cut the two Scratch lessons from last summer down from 90 minutes to 60 minutes.  I based the first Scratch lesson on the video course Scratch 1 provided by the curators of http://learnscratch.org.  TechKobwa students are more adept at reading written English than understanding spoken English.  I therefore started with a written transcript of the videos that we had created for last summer.  It had already been modified to use Scratch 2.0.  For this year, I also modified the order in which topics were introduced to give a quicker overview and encourage more experimentation, and added a lesson on changing the back drop. 
A teacher started by leading the students through the first couple of lessons, and then let them proceed at their own pace to read instructions and try things out.  Family leaders circulated through the room to answer questions.
The second Scratch lesson was delivered entirely by teachers with the help of family leaders, as I was teaching the fourth CS Unplugged lesson with half of the students at the same time.  They followed instructions for programming a simple show with two acts.  The teachers tell me that the students had a lot of fun with this lesson.   
The instructions for the lesson started out very detailed, as illustrated by the first few pages of the handout shown below:



Instructions gradually became less detailed.  The lesson left lots of room for extensions--addition of entirely new acts and embellishments of the two existing acts.  
For some reason, we don’t have any pictures of the Scratch lessons with students—maybe because all hands were to busy helping students and having fun with Scratch themselves.  This photo is of me introducing Scratch to the teachers during TOT. 
Unfortunately, several of the teachers are at schools that lack the infrastructure they would need (enough computers and reliable electricity) to teach Scratch at their home schools.  This was the rationale for spending more time on CS Unplugged lessons and less on Scratch, even though the teachers and students both had a lot of fun with Scratch. 

Of course, besides being fun, the Scratch lessons reinforced many of the algorithmic concepts they had learned about earlier in the week.  They could very concretely see that each sprite carried out a sequential algorithm; but that events allowed them to execute in parallel.  They also became very familiar with the concept of repetition.


Presenting the Mission Innovation project



Hands-down, my favorite part of Camp TechKobwa is listening to the girls present their research projects.  Both years, throughout the week, I watch a rather rapid metamorphosis take place.  Many girls, who upon arrival barely audibly spoke and when they did it was at their shoes, transform into confident young women discussing major world problems, and more importantly, their ideas for solutions.  I could not be prouder of them.

Every group’s presentation was very good and many were outstanding. 

I wish I could remember all the project ideas but some of their ideas were:

  • Creating an anti-malarial soap and using the internet to advertise it as well as conduct analytical models to improve the formula. 
  • Creating a bio-informatics chip that could detect when someone was bitten by a mosquito, assessing if the mosquito carried malaria and notifying the person and their doctor.
  • Creating a mobile phone app so that a person could touch their finger to the screen and receive almost instantaneous results for a malaria test.  Similarly, a notification could go to their healthcare provider and civil authorities for tracking.
  • Increasing tourism by inserting Rwanda tourism ads when various search word combinations were used.
  • Using sensors and analytics to understand the most critical places to prevent soil erosion and suggest optimal tree and vegetation planting configurations.
  • Using the internet to create a website with planting information and using SMS messages to remind farmers of the most effective techniques for soil erosion prevention, and doing this associated with various cultivation activities.
  • Use analytics to determine the best high yield crops for various parts of Rwanda, identify various planting requirements and share information more expediently between regions by using the internet.
  • Consolidate and improve online booking for hotels and tourist activities.
  • Introduce robots to assist in customer care where there is a shortage of skilled workers.
  • Introduce cameras with analytics to identify key sections of roads requiring improvements.  Provide travel time estimations via a website and mobile application.  Use analytics to determine optimal highway placement and road construction.
  • Create a machine to measure rainfall and trigger an alarm when the rainfall level reaches a critical point for causing soil erosion.  The machine can then begin to work at suggesting anti-soil erosion steps that should be taken.
  • Introduce location based services for promoting tourism to mobile phone users based upon their location within Rwanda, suggesting nearby attractions that might be of interest.
  • Introduce mobile money, online payments and visa card payments for safe money transfer of school fees from parents to the educational institution.
  • Use the internet to build a clearinghouse site for scholarships to help fund school fees.
  • Create a solar-powered radio and mobile phones that can be recharged by water to increase ICT access.
  • Have more camps like TechKobwa to increase access to ICT. (A personal favorite, but "no", I did not plant the idea.) 

Not only did the girls have many great ideas, they enthusiastically expressed them and handled questions with grace and confidence.  Furthermore, many fellow campers asked tough questions – another sign of self-confidence.  Of particular note is the fact that the girls presented, asked questions and fielded questions in English versus their native Kinyarwanda.

I am excited that such confident innovative leaders are emerging to help us tackle some of the world’s grand challenges.

I wish I had pictures of all the groups giving their presentations but here are a few:






Tuesday, August 11, 2015

Learning How Computers Represent Information


The third and fourth CS Unplugged lessons were about representing information.  We gave students abbreviated ASCII tables and they collaboratively decoded a brief text message – the TechKobwa motto “Girls love tech”.  Of course, several of them also took it upon themselves to decode my t-shirt. 


The rest of the third lesson was on representing numbers in binary, following the CS Unplugged curriculum.   I created two ‘flip boards’ as visual aids—one with binary dot-cards affixed to the board and construction paper cards that could be flipped to reveal or hide the card underneath, and the other with 0-cards affixed to the board and 1-cards that could be flipped to make any 5-digit binary number. 



Starting with the former, we gave the students binary “dot cards” and started them off counting up from 0 (all cards face down).  Most caught on very quickly.  A few required some extra help from their family leaders.  All counted from 0 to 31.   






 Then we substituted the dot board for the 0-1 board.  We also found it useful to add a strip showing the powers of 2 beneath the board positions to remind them of the position values.  Students were quickly converting from binary to decimal and back again.  Several volunteered to demonstrate their algorithms for doing so on the board.


















The fourth CS Unplugged lesson started with a review and then dove into representation of images.  We passed around copies of the TechKobwa girl at different magnification levels to introduce the concepts of pixels and resolution.  These concepts were all the more real when used to explain why our Skype session from the afternoon before had been blurry. 















I simplified the “Kid Fax” from the CS Unplugged curriculum a bit so we could easily transmit images to Louise.  We first transmitted the resolution and then the run lengths for each row, inclusive of the length of the last run of white pixels, if any.  After walking through our run-length encoding of a simple 5x6 letter “a”, the students decoded the first “Kid Fax” to see the image it created.  Then they transmitted it to Louise, who was sitting with a blank graph paper outside the classroom where she couldn’t see the image, by calling out the series of numbers.  Each time they called a number, they waited for an “ack”.  When done, they were happy to see that she had exactly reconstructed the image from their transmission.



We ran out of time to decode the remaining “Kid Fax” images.  But I noticed many students working them out in their free time, curious to see what image they would find.  We sent the teachers back with materials for expanding this lesson to include representation of color images and creating their own images.

The lesson on image representation was a new one for TechKobwa this year.  Given the enthusiasm, it’s one we’ll want to expand on in future camps.