That is delightful. Although I don't know if programming will ever lack frustration. Most of us trudged through it. Hopefully the perceived benefit will outweigh the frustration, as it does for most of us "programmers".
Sarah Allen wrote:
Report from the field on my ongoing adventure teaching Ruby and Shoes to a 4th/5th grade class of 28 students.

I started with a demonstration of red, green, blue color: 3 flashlights with colored gels over the front, mixing red + green to get yellow + blue to get white. I talked about how last week we made Shoes draw a colored rectangle on the screen. The screen is made up of lots of little dots. Does any one know what they are called? one hand, correct answer: pixels. Then I described how each pixel is a little light, so when we make colors on the computer, we are making colors with light, which is quite different than making colors with paint. Then we turned out all the lights and it got really fun.

I asked them first what did they think happened that made a white light come out as a blue light when I put the gel over the front of the flashlight? (lots of theories of magical color transformation and after a few tries, I supplied to correct answer) when you mix red + green paint, what do you get? (several tries before one of them got the right answer: brown) I told them light mixes differently than paint, which we call additive color, as opposed to subtractive color. Then with the help of my two assistent we demostrated color mixing, It was way cool.

Fewer setup problems this time. I had 3 extra computers set up and still ended short one and ended up once again abandoning my idea of coding demo since I gave the "teacher" computer to a pair of students. I ended up writing code snippets on the board and spending more time with each group of 2-3 kids helping debug syntax errors and giving little impromptu explanations of what was going on.

I'm torn between how much time to spend explaining concepts (since they are always antsy to get onto the computers) and how much to let them wing it (which then is frustrating to them because they don't know the rules.

Many of them seemed to have a hard time with the parameter syntax. Syntax errors that were hard for the kids
: width = 40
: width => 40
:width 40

also, I don't understand:
Shoes.app do
    backround black
end
-> does not produce a syntax error, just a blank canvas, why?

I also avoided explaining why the "top,left" of a star and arrow is in the middle -- seems like broken semantics to me.

I think there must be an easier workflow than what we've been doing: write app in notepad++, save to desktop, double-click shoes, click "open an app" -- does anyone have a workflow where you can run Shoes directly from the editor? it would be nice if the shoes window with the errors had a "Reload" button and keystroke, likewise with the Shoes window.

Also, they wondered: why is it called Shoes?

At the end of the class I asked them to raise hands to answer: who thought it was fun? (about 2/3s of the class) who thought it was frustrating? (maybe 40%) who thought it was fun even though it was frustrating (about 1/3). I really don't know what impact this has, but I will forge ahead nonetheless. The teacher seems to think the lessons are great and the kids report having more fun than it looks like they are having. I do feel like about half the class is starting to "get it." Not sure if that is a lot or very few after 1.5 hours of programming experience.

Today I was still following my original lesson plan: http://github.com/railsbridge/teachingkids/blob/de9dc5444e4aa69de656739510353abebf625ff4/md/Ruby_Programming_and_Shoes.md I think I'll change it next week to add some interactivity, unless I veer in a different direction, since my RAD dorkboard arrived and I may switch to making an LED blink!

Thanks everyone again for your support. And special thanks to why for making Shoes.

Sarah
http://www.ultrasaurus.com



Reply via email to