Friday, August 14, 2009

Free Software to the Rescue

Due to a series of delays and mishaps, our planned two week program has turned into a one week program. Douglas warned that the existing bandwidth would not be sufficient for our needs, and when I arrived here on Sunday and got a time estimate of 2 days 10 hours on the first machine I tried to update, I knew that he was right.

So Monday morning it was a trip to San Salvador to upgrade the bandwidth. We asked for a 1 Gigabite rate, and were assured that it would be ready by that evening. It wasn't. In fact, neither Internet nor phone -- since the same cable provider is supplying both -- worked at all until a service tech came to the house on Wednesday.

In the mean time I managed to get myself sick -- something I seem to do at least once on every visit to Central America. That meant that Thursday was spent in La Nueva Conception visiting the clinic and getting medicine. I'm starting to feel better now.

The last complication was getting the router to work. The cable modem seemed to refuse to give it an IP address. It is a Linksys WRT54GS ver. 7.2 router. After talking to Douglas, I confirmed that the cable modem needed to be reset each time that you connect a new computer to it. Using three machines, I could confirm that the process worked. Each one would get an IP address if I:
  1. Connected it directly to the cable modem.
  2. Reset the cable modem.
  3. Restarted networking on the host machine.
I still don't why it didn't work, but the solution I finally found was to change the software on the router. Installing dd-wrt instead of the vendor's original software made it work like a charm. Free software to the rescue once again!

Monday, August 10, 2009

La Cooperativa Juan Chacon

"La Cooperativa Juan Chacon" was formed by demobilized combatants of the Salvadoran revolutionary army in 1994. As part of the peace process between the FMLN and the government of El Salvador, each of the 33 families that joined together to form the cooperative were given a small parcel of land and materials needed to build a house.

The decision to form the cooperative was an act of courage. None of the members had experience farming, or the first idea how to go about forming an agricultural cooperative. For most of them, being revolutionary soldiers was the only life they knew.

Dinora, the president of the 17 member coop council, has the kind of amazing personal story common among the coop's members.

The army burned down her small house in the mountains of Chaletanango when she was 6 years old. From then on she lived with her family in the forrest, continuously on the move, avioding aireal bombardment or capture and murder at the hands of the army.

From the age of 11, she was stitching up wounded combatants in the make shift mountain hospitals of the Ejercito National para la Democracia (END). Her teacher was a Spanish Psycologist named Maria del Pilar, effectionately known as "Maria Bruja" because the hide out hospitals she set up were never discovered by the army during the entire course of the war.

In addition to her work in the hospital, Dinora also worked as a communications specialist. She stands 5 feet tall. I couldn't help but smile when she told me how light she felt after the demobilization, no longer having to carry her hospital equiptment, her radio, and her rifle around with her.

Canton Los Chilamates, where La Cooperativa Juan Chacon is located, is unusual in El Salvador in that you can safely drink the tap water. This tremendous contributor to the health and well being of the community is thanks to a water system that includes a 390 foot deep well, a storage tank complete with a clorification system, and the system of pipes that deliver the
water to each house in the community.

Understanding how this water system was created in a community of very limited resources provides a context for understanding much else about La Cooperativa: it was made possible by the increadible level of organization in the community. A series of donations from NGO's raised the $100,000 needed to purchase the materials. The work of laying the water pipes was done by the community members themselves. The process required both advocacy and hard work.

I'm inspired and grateful to be here.

Friday, July 24, 2009

ISO-8859-1 to UTF-8 file conversion...

In an effort to get all the educational materials ready for the classes in El Salvador, I've found myself battling on two fronts today with character encoding not working. Fortunately, both problems turned out to be easy to solve, and both turned out to be the result of having ISO-8859-1 when what I wanted was UTF-8.

The first one was that the Spanish translation of materials generated by sphinx did not render properly on the Open Book Project site, even though the exact same materials rendered fine when I viewed them on another website.

I filed an ibiblio trouble ticket, and within an hour Donald Sizemore fixed the problem:
ibiblio's DefaultCharset is still iso-8859-1 - we tried to change it to UTF-8 during our last major upgrade, but it broke too much of our older content.

I've changed the DefaultCharset setting for openbookproject.net to UTF-8 and the page looks good to me. Check behind me? You may have to hold down Control- or Shift- and click Refresh in your browser to pick up the changes.
Cómo Pensar como un Informático now renders characters just fine on the OBP site.

A bit later in the day I began working on helping Gregorio Inda with his translation of the GASP Python Course. When running sphinx-build on the launchpad checkout of his latest work, there were over 150 warnings from one file, one for each accented charater and inverted question mark in the file.

I couldn't figure out what was going on, since sheet 1 looked the same as sheet 2 to me and didn't report any errors. A colleague suggested comparing the two files using the unix file command, and sure enough that revealed the problem:

$ file *
1-intro.rst: UTF-8 Unicode Java program text
2-tablas.rst: ISO-8859 Java program text

ISO-8859 is haunting me today! Fortunately, this web page told me what I needed to do to fix the problem:

$ iconv --from-code=ISO-8859-1 --to-code=UTF-8 2-tablas.rst > temp && mv temp 2-tablas.rst

Problem solved.

Wednesday, July 22, 2009

Where do all the geek girls go?

Teaching Summer enrichment classes at ACC for the past two weeks and 3 days has already been a fascinating experience. It's been years since I taught Summer classes, but what I discovered the last time I did it still holds: students volunteering to spend some of their Summer learning tend to be more highly motivated and skilled then their average counterparts in similar classes during the regular school year (duh!).

I am teaching "Creative Computer Exploration with Scratch" to 4th, 5th, and 6th graders from 8 am to 12 noon, and "Games Programming with Python and GASP" to 7th, 8th, and 9th graders from 12:30 to 4:30 pm. Each session runs two weeks, and there are two sessions during July, so we just completed our 3rd day of the second session.

I'm sure I'll be reflecting on my experiences with these classes for some time to come, particularly as they relate to the creation within Arlington Public Schools (APS) of a computer programming pathway -- a sequence of educational experiences for APS students beginning in elementary school and ending in programming careers in Industry. One of the reasons I'm so happy to be teaching these classes is that it gives me an opportunity to impact the early stages of the pathway, which until now I have not been able to touch.

What I want to focus on here, however, is one question, simple to state but elusive to answer: Where do all the geek girls go?

I've been a CS teacher for 13 years now, and I'm acutely aware of the assumption permeating my field that computer programming is a "boy thing". My typical class of 25 students over the years has had at most 2 or 3 girls in it. That has never varied from year to year, and I've seen no recent trend suggesting that it is changing. The attendees at the annual Python conference have a similar gender imbalance among participants, but there I have noticed concrete signs of improvement over the last few years, with more (albiet still very few) women programmers showing up each year.

Despite a keen interest in understanding the causes of this gender inequity and a strong desire to do whatever I can to address it, I have yet to figure out an effective approach. Teaching the Summer enrichment courses has given me new insights into the issue. Here is what I've observed:
  • The number of "geek girls" in the Scratch class (11 of 30) is much higher than in the Python class (4 of 30), suggesting that the geek girls drop out somewhere between 5th grade and 7th grade.
  • The girls in the Scratch class are true geeks in every sense of the word (and in case you haven't figure it out by now, I mean that as the utmost compliment): they have the same interest in problem solving and desire to make a computer do their bidding as their boy counterparts. They also have many of the same geek quirkinesses I've come to expect from the students with whom I work.
  • The girls are awesome programmers. Here is a program that 4th grader Rachel made after three days of using Scratch. I would say the girls have been better programmers on average than the boys, in part because they seem more mature and have longer attention spans.
  • I have noticed differences in the kinds of things the girls and boys want to work on, with boys more interested in games (with lots of bombs and blood and stuff), and the girls more interested in telling stories. No hard and fast rules here. Some of the girls made games with plenty of gore, and some of the boys made stories, but there were clear and noticible differences on average between what the boys and girls chose to do.
  • The girls in the Scratch class seem to be having lots of fun. Several of them spent hours at home working on their projects and learning to use the XO computers we gave them to use during the class. While I didn't do a survey, the evidence that the girls found their work with Scratch and Sugar to be enjoyable and engaging was unmistakable.
So..., where do all the geek girls go? Why don't they continue building on their enjoyment with Scratch to go on to higher levels of computer programming? I don't have any answers, but I do have a few ideas:
  • We haven't been doing Scratch for very long, so we may help open up new opportunities for geek girls by offering this early programming experience.
  • Scratch lends itself to the kinds of projects the girls seemed to find interesting. It permitted them to use their programming logic to become story tellers. The Python class does not support this kind of problem solving very well at all, particularly the way I am presently teaching it, where the focus is on programming games. The Sugar project, which is developing Activities in Python for story telling, may provide help in this regard.
  • We may have particular cultural expectations to overcome, which tell girls, even geek girls, that it is not cool to be involved in computer programming once they reach the middle school years. I've noticed that this cultural expectation does not seem nearly so pronounced in the immigrant and African American student populations with which I've worked, so it may just be historical baggage we have to overcome.
  • A large part of the historical baggage keeping geek girls from pursuing their interests may just be a matter of unlocking the clubhouse door. I've seen instances of boys actively attempting to exclude girls and make them feel unwelcome throughout my years of teaching computer programming. It is certainly the case that part of the effort to include more girls in computer programming classes involves a good old fashioned battle against sexism.
I've got a lot to think about from my Summer experiences teaching Scratch and Python. I am eager to see what I learn teaching the same topics in rural El Salvador this August.

Stay tuned...

Friday, July 17, 2009

XS Progress

The most exciting new from yesterday is the work Josh did on the XS server. Since he posted about it on his own blog, it will suffice for me just to link to that here.

When he showed me how we can use Pigeon to view connections to our jabber server, I was thrilled! I've given Josh the task of becoming one of the world's foremost experts on the XS. Since there are only a handful of people who have ever set one up before, that lofty goal may be within his reach ;-)

GASP Python Course

This first two week session of our Summer enrichment program has provided a great opportunity to use the GASP Python Course with real students. Sheet 5 needed major surgery to be usable, which I completed last night just before midnight. On the last day of the class, we will take a stab at working through sheet 6, which develops a version of a Pac-man like game called chomp.

This weekend I'll be contacting Gregorio Inda, who has kindly offered to help translate these materials into Spanish. I hope to have some of them ready in time to use in El Salvador.

Wednesday, July 15, 2009

Exploration continues...

Most students continued exploring Sugar Activities yesterday, while a few others expressed a desire to return to Scratch. Here is what 11 year old Satya had to say:
One of my favorite programs on Sugar is the Scratch program. On Scratch, you can create short videos and share them with other people and vise versa. You can also animate stories or make cartoons. Even though Scratch is great, there is one thing I would do to make it better. I would have created Scratch so that you can type your own short commands, have the computer recognize them, and follow that - versus you having limited choices on the moves you can make. This Summer, I became interested in Scratch after exploring a XO I got for Christmas last year. Thinking the computer was slow and boring (seeing it had no computer games) it was cast aside and not used. but classes at the Career Center showed me what Scratch is about and how fun it can be. It has inspired me to want to grow up and become a cartoonist. To simplify it: Scratch is Magic.
The problem is that to use Scratch effectively, you need to be able to download other people's Scratch programs from the http://scratch.mit.edu website and take them apart, modify them, and remix them. Despite days of trying, we have not been able to find a way to download a file from Sugar's Browse Activity to a place where Scratch can find and open it.

With that in mind, I'm moving the students interested in Scratch off the XOs and onto a regular Ubuntu 9.04 desktop. I thought about just focusing more on Turtle Art and Physics 2, but since Sugar lacks the very powerful ability for learners to easily share their creations through the web, it made more sense to return to Scratch.

What Sugar Should Learn from Scratch

It seems to me that there are two very powerful, but at the same time different kinds of sharing that make discovery learning work:
  1. Direct, immediate, peer-to-peer collaboration: Sugar is quickly becoming the best learning environment anywhere to support this kind of sharing. It is what Sugar was designed to do, and it does it very well.
  2. Learning by investigating previous practice: Scratch does this better than any learning environment I have ever seen. Anyone interested in what Scratch can do can simply visit the Scratch website and see thousands of programs written by others. Find one that you like, and you can down load it, look at how it was written, change and remix it to suit your needs (and then upload your changes so others can see them too). Other users can post comments about what you've shared -- what they like and didn't like, other things to try, etc. It also permits a one to many sharing in a classroom environment where each learner can take the floor and show what they have done to the rest of the class. Anyone in the class can easily grab what they see and explore it themselves.
Sugar does not yet support this kind of learning well. If it did, I think Sugar would become the most compelling learning platform in existence. With that in mind, I suggested on the #sugar irc channel that Sugar Labs, DC might be able to make that challenge its main focus. Here is the conversation that followed.

Tuesday, July 14, 2009

The Experts Weigh-In

We started the day yesterday by showing everyone in the Scratch (now really more Sugar) class how to install new Activities from the website. Everyone then had the session to explore the available activities. Here is a list of Activities that were tried and rated by our crack team of experts (since no one is better able to evaluate how much fun a learning Activity is than the learners themselves):

  • Tux Paint +
  • Physics 2 ++
  • Breakout +
  • Colors +
  • Bounce +
  • Micropolis -
  • Horse Game -
Yet to be rated Activities include:
  • XoIRC
  • Cartoon Builder
  • Joke Builder
  • Food Force 2
  • Pac man
  • Bridge
I also had the time to finish Sheet 5: The Robots are Coming from the GASP Python Course. Today in the Python class we will finish that sheet, and move on to Chomp for the rest of the week.

I can't describe what a thrill it is to be laying the tracks just before the train arrives! ;-)