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