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.

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.


Feb 222012

I knew I had written about the song The Dollar before – I just didn’t realize it was so long ago.

We had our Dollar moment a few weeks ago.

I have taught some LEGO robotics courses for the DMA a few times.  I’ve enjoyed it each time, but always left feeling a little guilty.  Parents could have saved 2k by just buying the kit and doing a little web searching and playing with their own kids, instead of having me do it.  But time and interest isn’t always there.

It hit a little closer to home last year, as I was dropping Sal off for his own 6 year old robot course summer school.  They had some interesting kits, but were a bit pricey on eBay due to being discontinued.  The replacement Mindstorms kits for kids wasn’t interesting to Sal though.

Especially after he went to the last day of the course I was teaching later in the summer.  He really liked tweaking our full on NXT robot to compete with the other kids in the course.  He wasn’t interested in downgrading to the elementary school version of their robotics kits when he had played with the big boys.

Still, when I threw out the option to have me go teach the class this year in San Diego, I thought with LegoLand there, it’d be slam dunk with the little guy.

“I want to do that!” he said.

It was going how I expected, but the phrasing was a little off.  The way he said “that” seemed odd to me. So I probed a little more.

“I want to goto your class!”  Not goto the beach and maybe the Wild Animal park, while I teach the class?  “No, I want to do the class.”  All day?  “All day!” Every day?  “Every day” he said with a huge grin.

Well, that wasn’t going to work.

Bottom line, I got my kid asking to teach him the stuff I’m teaching other kids. How could I focus on the other kids more than my own?

So this summer, I’m not teaching a DMA course, but instead, trying to figure out how to teach a 2nd-grader-to-be how to program.  We’ll use the NXT kit I think, but I really think I’ll get more bang for the buck from the Scratch programming environment.

He’s played around with Scratch with his mom some afternoons.  They had a game where you had to touch the ninja to score some points, then the ninja would jump away, and you’d have to go mouse over him again.  Sal was really proud to tell me about how he had written a bug – since the game didn’t really end.

It’s a little sad, when one’s son’s way of mimicking one is by creating bugs.  Says a lot about what he thinks of the quality of my work, huh?

Anyway, shameful example aside, we have talked abstractly about how we could define the game ending, and he had it in his head that he would want a big “THE END” to appear and when the color of those letters hit the color of the ninja, the game would be over.

We’ve also had long conversations about which came first, the chicken or the egg. He didn’t always see the connection.

But tonight, after his friend couldn’t make it over for some play time, to avoid any drama over the change in plans, we busted open Scratch and fixed up the game.

It was a pretty good first session.  We defined the end of the game would be after X seconds.  They have a very convenient timer that we made a lot of use out of.  We added a game over background.  Then we added another ninja, so you would have to avoid one while tagging the other. This second ninja had us doing a lot of copying each time we wanted to tweak something, so we got to talk about the responsibilities of each character in the game, and the background started to take over a lot more of the “management” of the game.

So he refactored a program already!  And we had to debug some things.  I don’t think he fully got the nuances behind the race condition we had when the game started and the initial state wasn’t set properly, but he did understand how message passing allowed us to have the stage tell each of the ninjas when to start running (which fixed our race condition).  We are definitely hitting upon the notion of a controller.

Now, he’s dreaming of what’s next.  I’m sure I’ll hear about it quite a bit tomorrow.

And I’m scared.  And happy.  And mainly glad that I’m going to be around to see it develop.

Here’s the game, if you want to try it out…and if you see the kid around sometime, I’m sure he’d love to talk to you about the game in more detail…

Apr 172011

First, I gotta admit, I’m watching another season of the Real World and I’m amazed how the more things change, the more things stay the same.  Should be a good reunion show though.  And I still wonder how much different I’d look with some film crew on my life vs how I perceive it.  Someone should sell that service.

Anyway, I read an article on how some games are lame – like Candyland and Chutes and Ladders or Hi-Ho Cherry-oh.  And they put it well, with the fact that there is no decision making in the game.  You get a color or spin the spinner and then you follow some rules and that’s the game.  No choices for kids to make.  So games with choices are good for the kids, cause you learn to play by rules and you learn to strategize as well.  I hadn’t thought about it so explicitly, but liked it when it was spelled out for me.

So what was that guy playing with his kids instead?  An RPG.  Which made more and more sense the more I thought about it.  Sal likes to role play when we’re driving.  If he can’t be playing Spore, he’ll talk about playing Spore.  If his mom doesn’t want to play Spore, they’ll play “Animals” instead, which, after I heard them playing for a while, was basically Spore Creature Creator.  He’s sneaky.  But he’ll also want to “play” Star Wars or Monster Trucks or Ninjago or Pokemon.

But our “play” lacks rules.  Though it’s fun for me to try and probe for rules (he won’t let me be the Death Star when we play Star Wars) it’s not a really a game.  Adding some of the structure of an RPG could give the game some more focus for him so that the game could get extra depth instead of just the breadth that he’s getting right now.

So at breakfast, I drew a map on the back of his menu at Hobbee’s and I downloaded a D&D die program for the iPhone.  And he walked through the maze, trying to rescue his mom, running into skeletons and treasures on the way.  This was based on the Ninjago storyline at first.  Sal, being a treasure hunter ended up exploring too much instead of bee-lining it for his mom, and died just before he finished his hi-hat hashbrowns.

He took it pretty well.  Better than I thought I guess and followed up with a quick – “Can we play again?”

Of course we can.  And this afternoon, we’ve been talking about all sorts of expansions to the game that he wants (pet dragons, ninja stars, backpacks, sushi rolls, etc) and as I’m thinking about it, I’m thinking it’s something that I’d find easier to keep track of with a program rather than crayons and menus.  Plus, it seems like something that can get him drilling math without really caring about the fact that he’s drilling math.  When attacking, odds numbers were misses and evens were hits.  So he’s getting practice with that.  And he did the calculations for hit points as people were doing damage to each other.  Over time, I imagine he’ll get more curious about probabilities and the differences between rolling a 6 sided die vs a 20 sided die.

Seems like, if I write a program to do this, I could prompt him for the math answers and his character could gain experience points that way too.  Depending on his “level”, the math probes could vary in both difficulty and rewards.  The rules could get more complicated too, once the character levels up enough, to introduce division and fractions and such.  And instead of “gold pieces” which is generic and useful enough for those well versed in our currency, we were thinking of using pennies, nickels, dimes and quarters, so one would have to get used to doing the math involved with how much loot one did find (ie – “you found 4 pennies, 3 nickels a dime and 2 quarters – how much is that?”).  Every chance to get the math in there…I figure the more he’s doing it, the more likely he’ll work at creating a system to do it faster…

The tie in to making the math drilling fun is meaningful to me because there was a game I wanted to show Sal on the iPad and his first response as I called him over was “Is it going to be a fun one or one that tries to teach me math?!?”  Fortunately, it turned out to be both – Super 7 – a nice cross between flight controller and math drills.  Review coming over at Catherine’s site.

But anyway, as Sal and I are drawing up the rules for this game, I’m thinking, iPad app would be convenient to play, but server side app would probably be more convenient to prototype and update…and it’d still be accessible on the iPad.  But then again, the dad that’s talking about playing the RPG with his kids likes to build up mazes with the kids in the house and your character walks through the game and turns over cards that reveal monsters or treasures. There’s something to be said about having the manipulation in the real world I think.  But then I go back to being a lazy programmer and think it’d be so much more convenient to maintain experience points and rules and the dice if it was all bundled up in a program…so that’s got me back to keeping the game virtual.

I’m also wondering if anyone has other pointers on how to design an RPG game, period (both game dynamics as well as an OO approach).  Websearching has lead to some strange places.  One recommended RPG was Dungeon Squad, which I thought was good, but then was a little surprised when it’s wiki page had a comment that it was designed for teenagers.  Still, we might use similar rules – kind of making them up as we go along – but would really like suggestions if any more experienced dungeon masters have any.  I never really got to play D&D till I was in grad school – and even then, it was a little odd cause one guy kept on spending way too much time rolling to see if he could find any invisible items in the room.  Over and over again.  And again, one more time just to be sure.

Cause I guess it’s kind of hard to tell the difference between not seeing any invisible items in the room and well, not seeing any invisible items in the room.

Hopefully, I’ll be able to keep invisible items out of my game with Sal for a while.