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…)

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…