May 222014

Sal’s third grade class had job interviews for doing chores around the class. The kids would do those jobs for Inghram bucks.  Inghram bucks can be used to buy a class party. Sal told me about an ice cream party they had. I was jealous.

Catherine and I go into the class every now and then and teach the kids programming with Scratch. After I heard about the ice cream party, I needed to get some Inghram bucks, so I asked the kids to tip me for the classes I’ve been teaching, cause that’s a job too. One kid wanted to give me a penny. He’s not on my list of favorite kids. And there isn’t even an Inghram penny.

With 23 kids, I pulled in $45.

This week, I found out that the end of year party was going to run about 100 Inghram bucks. tourDeCure

I thought of asking for another round of tips, but I wanted to make it more meaningful…and get more bucks too.

So I told them that for every Inghram buck that they gave me, I would match it with a real dollar donation to my Tour de Cure bike ride on June 8th. There is a diabetic in their class, so it seemed more relevant than my AIDS ride.

The kids asked me if they gave me $1000 if I would match it. Of course! What about a million?  That made me ask the teacher how much money they had at that point.  They said they were rich.  I asked if they were generous though.

Mrs. Inghram figured the average was $300…across 23 kids – that seemed doable. Some were thinking of giving me all their money, except then, they wouldn’t have money for the end of year party. Real issues now with Inghram bucks!

It definitely gave them something to talk about and discuss for the rest of the day. And I left there trying to think of more ways to get all their money for some reason. Somehow I felt like I was playing Monopoly.

I got a text after school. They gave me over $800.  A couple of standouts – someone donated $115 flat out.  Another one donated 80% of their money. I think I’ll be buying a lot of her wares at the open house product showcase, to make sure she’s got enough money to get to the end of year party…but I love the thought.

It was extremely touching. Of course, it would have been even more touching if they actually hit that $1000 mark they tried to scare me with in the morning. But in the end, we’re donating $911 (x2, with a corporate match).  Not too shabby for our little ride.

Jul 092012

Accepting your kid for who they are, or who they will become, is the biggest challenge of parenting, right?  Creating goals and expectations for them, explicitly or implicitly, is a recipe for disaster, yeah?  They are their own being, they should be able to do what they want to do, no?

I do just want Sal to be happy.  That’s my parenting goal.  I don’t care if he’s a successful artist or a struggling doctor, a chronic volunteer or a rat in a race.  As long as he’s happy and doing what he wants.  Happiness is elusive and constantly moving – many struggle to find it. So that’s all I wish for him – is to find it.

Of course, about that path to happiness, I’m slightly biased.  It goes against one of my management books that points out how as a manager, the traits and characteristics that lead to one’s success, does not necessarily apply to everyone else.  We all have different strengths and weaknesses and to manage properly is to adjust for everyone’s individual skill sets – instead of demanding they follow one’s own mold (came from a baseball management book that chronicled a manager who’s success as a player came from steals, so he forced his team to steal more, which they weren’t suited for).

I find programming skills helpful.  They’ve given me an avenue to express my creativity, they’ve kept me entertained for many years, lead to a lot of satisfying moments, and they have fed me well.

So of course, I think Sal should have some decent programming skills.  I think it’s easier to pick up other skills, if one has the foundation that disciplined programming gives you.  Programming makes you break things down, to pick out patterns, and once you start seeing them, you just can’t stop.  It will shape the way you view the world.

Even if he goes on to be an accountant, or a dancer, or a fisherman, I still think that having a mind trained for problem solving and pattern recognition will be an advantage.  I’ve tried to lead by example.  To show Sal that programs can be written to solve problems for us, to make our lives easier, to put a more practical spin on things so that he sees applications as more than video games.

It’s been an interesting journey.  First, I started with the competitive approach and tried to convince him to program because once you know how to program well, it’s easier to understand the AI that a video game utilizes.  But he was still struggling to come to grips with how own strategies for playing games, much less, trying to understand the strategy of others.

But then, we started talking about designing our own games.  And we would pick apart aspects of games we played and identified what we liked about them, and what we didn’t.  We started playing meta games, discussing the games at a higher level and he’s already feeling some of the excitement of playing a game he’s designed and built.

I think I’ve won the war – he gets it.  I’ve showed him how to use flags as variables to represent states in a game and he’s made that his own, by using different shades of red in the Gobo’s costumes.  We had an issue when the characters ran into each other and the bad guy ended up hurting himself because he ran into a Gobo (in any state).  I took a nap while Sal debugged that on his own.  He came up with states, but represented in the Gobo’s colors instead of as a variable (kind of abstract still). Darker red is a fighting Gobo.  Lighter red isn’t.  One color hurts more when you hit it.

“Plus, being more maroon-ish makes you look meaner!”

So that’s fantastic.  I should be completely happy.

Except for those sneaky goals and expectations that we’re not supposed to have.  His games lack a bit of strategy.  Not much choice in them.  Atari had their 40th anniversary a couple of weeks back (they are a few days older than I am) and they gave away their iPad games for free that day.  I downloaded a lot of them, to use as examples for Sal and I over the summer.  I figure he should be able to crank out games that were considered state of the art 40 years ago as a 7 year old today, right?

We implemented parts of Battle together.  Simple game.  Two guys moving opposite directions on the screen and they each have a bullet they can shoot at each other.  To make it more interesting, let them vary their speeds a little bit.  As simple as that game is, Walter and I used to play for hours.  Straight up duels.  Mind games.  Games so easy, you’re frustrated that you could lose such an easy game, so of course we need to play again.

But it had strategy.  It wasn’t just repetitive tapping to work your way through a ladder of achievements and (virtual) goals.  Carcassonne has many of the same qualities.  Simple game, lots of strategy, people taking very different approaches.  Sal told me he’d be more interested in playing Carcassonne if you could level up the Meeples.  If they could earn more hats, or outfits, or shields, or colors, or some other virtual goods, he’d be more into playing the game.

I’m hoping it’s just a phase.

But people rightly point out to me, that the more successful/popular games all have that customization aspect to it.  Farmville isn’t a strategy game, it’s a tap and collect game. Pokemon’s slogan tells you it’s a collector’s game.  There’s something to that type of game that is appealing, so it’s just natural that those would be the types of games Sal would want to make.  As you can see from the screenshot of the Gobo costumes, his have a wooden sword, a silver sword, a gold sword, and a platinum sword…

Those were other additions Sal made while I was napping. Updated: Here’s him describing the swords – platinum is my favorite.

So bless that little dude for getting up early on weekends and dragging me out of bed so we can go program together…I just need to get over the fact that his dream job might end up being at Zynga.

Jun 222012

I had heard this afternoon, that the kid was developing a Pokemon game in Scratch while I was at work.  I was interested in seeing how he was coming along on his own.  The message passed along, was that he was done, except for help with the health counters.

I was pretty impressed when I got home.  Of course, I’m biased.

He already had motion down.  The different characters were each listening to a different set of keys for motion.  They were passing messages even (though nothing was listening to those particular messages, the framework was there).  He had a set of health counters and different backgrounds for final game states.  He had the characters and two costumes for them.  But he needed help with the actual battle.

In our ninja game, the objects knew when they touched each other, so he figured that was going to be the same here.  I had him describe it to me completely, since this was core to our game.  I liked that he said he was going to use a strategy that he picked up on while inspecting the logic in a pac-man example program.  When pac-man hit a colored wall, he would stop – so that was another example of object collision.

“When bulbasaur goes over and touches abrock, then abrock is hit!  Wait. No! How can we tell who is hitting who?”

We had a good laugh at that.

After a bit of conversation, it was decided we needed another costume, to define attacking mode.  Which, actually, fit in nicely to the Pokemon character themes.  New keys controls were added.  VineWhip and Poison Dart attacks of course!

We worked on all the logic for VineWhip and once we were able to consistently destroy Abrock, we went about giving him a poison dart attack himself.  Many more messages, new states inspected, and some tweaking to avoid “infinite” attacks and what happens when the two guys attack each other all happened as we made our way towards the final product.

As bedtime was approaching, he wanted a new character added.  We’ll see what happens tomorrow.  I’m looking forward to it.

Update: Catherine just came back after putting him to bed.  She says he’s got two more features he needs to add.  And they both take a day each.  I’m impressed with his ability to estimate and add buffer into his estimates too.  Under promise and over deliver!  (Or, we might just have a lot of Scratch in our immediate future…)

May 302012

It’s changed for me a lot over the years.

For a while there, it was a huge amount, something worth saving several birthdays and Christmases for.  Then it was my credit card limit.  And then a bankroll for a weekend in Vegas.

I’ve been really lucky that the scale has changed a bit for me, and now in Vegas, $200 becomes interesting when buying a 4 or 10.

But the happiest $200 has made me, has probably been this past week, when we got our LEGO WeDo set.  As I mentioned earlier, he had guilted me into teaching him to program.  I’ve been researching ways that were more 1st grader friendly, because there are a lot of concepts that go into the NXT kit that he doesn’t yet have.  And I found the WeDo set.

It’s designed for classroom multi-set interactions, but I think it’s going to do us just fine.  We have enough spare parts to simulate the other kits, though we might have to shell out a few more bucks for another motor and controller.  So far though, with just the include parts, we’ve had a lot of fun.

Within 10 minutes, Sal had built the first kit, was explaining to me about crown gears and pulleys and how to change directions of rotation.  Then we started programming the motor and two minutes in, Sal was tickled by his infinite loop.  A few more minutes in and we had some kooky birds dancing and chirping with an excited kid hopping around in his seat.  We explored some of their “getting started” tutorials on the various components of the kit – an intro to the worm gear was one Sal was really interested by. Then we built the monkey beating on a drum.  And talked about its design and wondered how we could adjust it to make the arms alternate instead of beat simultaneously.  A minute later, the monkey was beating the drum twice as much. If it ended there, I wouldn’t have felt ripped off.

Since then though, we’ve had a couple of Sal’s friends over on separate sessions to build other example projects in the kit.  The spinning top became voice activated.  And taught us hands on about the power of gearing up for speed.  The lion’s roar, when replaced with a kissing sound, got giggles all around.  When the lion’s body “exploded” (due to turning his legs too far with the motor) there was a nice little experiment process to fine tune the motor settings.  And the alligator, with his pulleys, taught us how the hardware effects behavior just as much as the software – his jaw’s design wasn’t going to explode with a few extra turns of the motor.

All these little design features are great and the fundamentals that I want Sal to have in his toolbox for when we move onto the NXT kit.  Each project takes about an hour to build, play with, program, re-program, and discuss.  So it’s not too long where either kid gets bored and there’s always pretty immediate feedback.  If it ended here, I would feel like I was ahead.

But the kicker for me was that the Scratch environment integrates with the WeDo USB hub.  It’s good to know those MIT folks keep in touch with each other. So, once we outgrow the WeDo programming language (it doesn’t have conditionals!) we’ll just step naturally into the Scratch environment.  There’s this video I saw where the kids were using the tilt controller (hidden inside a LEGO submarine) to control…a LEGO submarine in the Scratch environment in a side scroller game.  As you tilt the real LEGO submarine the sprite on the screen (photo of the LEGO sub) rises to avoid the octopus.  But watch out for that shark – so you need to tilt the real LEGO sub down…

I haven’t shown Sal that video.  I want him to come up with that connection – that we can use the sensors in the LEGO kit to control the characters in the Scratch environment – on his own.  I’ll lead him right up to the edge, but I want him to feel the excitement and thrill of making that mental leap for himself.

And hopefully, he’ll be so swept up in all the possibilities, that he won’t see me wiping away my $200 teardrop.

Feb 262012

We did some more programming over the weekend.

I was wondering yesterday, as we were going through it, how much of it he is getting and if I am letting him grasp enough of it, or if I am rushing him through it due to my impatience.

Today, I got a bit of a hint towards that, because we needed to add buttons.  Which don’t really exist in the Scratch world, except as their “sprites” and so every button is an “actor” in a sense.  So we started making buttons as sprites and I was explaining to him how they need to have two costumes, a “selected” costume and a “notSelected” costume.  And we colored the two states of the buttons differently so one could tell when they were in each state.

“It’s like you have this all planned out, Dad” he commented as he went through the repetitive process of putting the same set of actions on each of the buttons.

And I laughed and said that I’ve been programming for most of my life, so I am able to see problems earlier.  But I’m conflicted between making the process seem like a natural conversation and having dedicated design sessions with him.  I think that this stage, we want things to flow and have quick, fast iterations and not be weighed down by “lectures”.  Though at the same time, I want to avoid spoon feeding him solutions and make sure that he’s able to learn how to see problems and break them down.  Though I don’t know how to do that explicitly, so we’re going with a leap of faith on implicit learning for now.

Since this hit my soft spot, I changed the subject and told him that our implementation already had a bug in it that I could see.  I asked if he could see it and he couldn’t.  If he could have, I probably would have annoyed everyone with how many times I’d tell the story bragging about his ability to see that changing the state of one button necessitated the states of the other buttons to be updated.

Though he had fun discovering the bug by running the game.

And we had a lot of fun (I think) writing this last game.  And the part he thought would be the hardest, actually took less than 2 minutes.  Programming the “hard” mode of our game turned out to be pretty easy.  I think that aspect of the program tickled his soft spot for word play.

Anyway, to be safe, I think we’ll design our next game (tic-tac-toe?) on paper first.  To go through some of the design process.  I think he’s taking for granted how easy it is to design an application with me as a tour guide.  As we played some other rock-paper-scissors games on Scratch, we felt ours matched up rather nicely.

Though we’re completely biased.  And Sal’s willing to give you a bajillion dollars if you can beat our game in Hard mode.  Good luck.

As a final point, he did understand the abstraction between our internal representation of a rock (1), paper (2), and scissors (3).  We took a walk after we hit a big conceptual design flaw in our program (in “easy” mode, our first mode we wrote, we programmed the computer to always play paper – our result screens were based on that.  So when we wrote “medium” mode, where the computer plays randomly, the results screens weren’t handling the computer’s new freedom of choice.  That change demanded a dog walk) and on the walk, among other things he was talking about, he mentioned the desire to make a elemental based version of the game.  And we found it on Scratch.  Where fire, water and ice battle each other instead of rock, scissors and paper.

So we talked about what we would need to change in our program and it was really only the “costumes” of our sprites.  Internally, our program could still call things rock (really the value 1) and just draw it as fire – and the game would be the same.  We could even just have it as a choice for the user – if they would like to play Rock Paper Scissors, or Fire, Ice and Water.  I was pretty pleased that the idea clicked so fast.

But to test it, when we design tic-tac-toe on paper, we’ll try and use math only to sum up the rows/columns/diagonals to check for a winning condition.  Or maybe we’ll come up with a better way.  You know, cause it’s not like I’ve got it all planned out already…sheesh.


Aug 032011

Sal’s in a writing program.  $25 bucks a day.  I was against it at first, thinking it was too much academics for the summer.  But it has actually been a very good class for Sal.  He has found that he “likes writing the ideas in my brain”.  Catherine was right about this class.

Plus he came back with this gem today:

If I could be a wizard for a day I would be…

…happy.  [First, I would] put a mind control on my mom to flush her self down the drane.  I can play video games all day with owt her telling me to stop.  Next, [I would] get my dad to tech me to turn on the game.  Finally, I will flush my dad down the dran.  Then nobody will bother me win I’m playing. Being a wizard would be awesome.


A bargin for $25, right?