First grade is looking pretty far back for this family, but here's what I did:<p>Big-picture foreach(child):<p>- Assess their personality as best I can (I was trained on this; it helped particularly to the degree that my kids aren't clones of me and prioritize different functional perspectives)<p>- Think about how coder/not coder outcomes might vary based on their inner personality dynamics<p>- Adjust expectations to meet them in the middle rather than "hey, you'll be a coder!"<p>Little-picture foreach(day):<p>- Observe their natural coding style when I can. For example, two of my kids code just by thinking, it's how they think. So they get natural coding practice by playing games, for example.<p>- Develop an exercise. Let's say I decide they could use some exposure to formal coding style. Maybe I'll write a program and break it, or write one and have them modify it. "This alarm program plays a bell called 'bell.wav'. Can you make it play the fart sound here, fart.wav?"<p>- Look at their response. Did they laugh? This helps. Did they act pressured, annoyed, bored? This is also helpful to know. I want to know where their energy is pointing, so to speak.<p>Specific programs I've used:<p>- System scripting languages like bash, ABS, Perl<p>- Coding games like Lightbot<p>- Scratch<p>Things I would never do, after going through all that:<p>- Treat coding as a skill they'll definitely need to know (I no longer believe in this and in any case, scheduling is a more likely-helpful precursor to formal coding)<p>- Let other coding-related techniques lose emphasis: Physical coding (improvising tools with wire; whittling tools; improvising art tools), spiritual coding (chaining socio-motivational techniques for example)<p>- Not ask them first what they wanna do<p>Just my 2c though. Hope that helps!