Ask HN: How to start teaching my 3rd grader daughter computer programming?
Hi HN,
I tried teaching my daughter coding using Swift Playground as well as Python. I am a university professor but my problem is that I exclusively teach to masters and PhD students and I have no idea about how to teach coding to a child. My daughter liked some of the stuff but I quickly realized that I was unable to make my teaching relatable to her in any manner. It was way too abstract for her and also very boring.
It would be great if you could share your experiences and advice on how to go about doing this. I don't want to push her lest she starts hating coding (and me!)
50 comments
[ 12.3 ms ] story [ 369 ms ] threadhere's simple tutorial to make real simple game.
https://www.youtube.com/watch?v=1jHvXakt1qw
Really - it's an incredibly over-hyped and overrated skill - especially for the pre-teen set. As in, really, really incredibly over-hyped and overrated.
Meanwhile, you could probably get a lot more mileage out of (and less resistance from) teaching "adjacent" skills like strategy games (ideally physical board games rather than the electronic variety -- but the latter can be perfectly fine as well, if tastefully done). You know, chess, go, backgammon, as well as the modern stuff. Anything involving counting, prediction, planning ("if-this-then-that") and spatial reasoning will definitely give hear a leg up in this realm.
That and ... throw a few Rubik's cubes (and its variants), as well as picture-driven math books her way (especially those with fractals and tessellations and such). Any kind of illustrated science book actually. See of these get any traction.
And don't forget -- a decent scientific calculator. That's one of the things that got me into programming at a tender age (specifically 4th grade) -- discovering things like the x -> 1/(1+x) iteration on my own, and so forth.
Ditto for musical "toys" (aka simple electronic instruments), which are of course another form of computational platform.
As for coding -- if she digs any of the above, she'll get to it on her own, sooner or later. If she doesn't dig any of the above ... then maybe it's just not her bag.
Which is of course perfectly fine as well.
In hindsight, I had a good half-dozen really good opportunities to learn how to code from elementary school and onwards, but none of them stuck until college. I wrote about that a bit on my blog: https://bobbiechen.com/blog/2021/7/15/opportunities . I'm perfectly happy not having learned earlier, and I think if someone had been forcing me to write code, there's a good chance I would've rebelled and not even tried it down the line.
The first non-trivial program that I remember writing, in fourth grade, did not have such flourishes. It was a program that implemented a Caesar cipher, so that I and my best friend could exchange encoded messages. Given the cumbersome effort of keying in the text and running the program, it was not much of a convenience over manually encoding/decoding the cipher scheme with pencil and paper :-)
It is a free platform and works great when parents (or educators) know already programming.
There are many type of activities included that can be explored (games, draw with code, animations, etc.)
I don't have a solution, but I wouldn't listen to the people who say "don't bother" either. It's still valuable to learn that stuff young, it puts you in a whole different category vs people who adopt it later. Maybe if you write code yourself you can show her some parts of what you are doing and explain them to her? I remember watching my dad work, and I think that is where kids begin to learn about stuff, even if it's too complex for them to get all of it. Plotting stuff is a good example where there is an easy connection between the code and output, but I'd suggest trying to share whatever you do for research/ work with her.
I put some free lessons up for her class. Link in my profile if it is any help to you.
https://www.helloruby.com/
Programming a device to do something in the physical world is motivating and interesting.
I've two girls 3 & 5, and they love interacting with contraptions that I make using Raspberry Pi, ESP8266/32 and Sphero. Even building a simple IVR out of Twilio is hours of fun[4].
I was going to recommend Sphero RVR[5] or Bolt[6], but they are currently out of stock.
Forgot to mention, if you have an Amazon Echo, you could try building alexa skills [7] which my kids like too. You can do similar with google home, but I've not tried that.
[1] https://www.lego.com/en-us/themes/mindstorms
[2] https://www.adafruit.com/category/956
[3] https://learn.adafruit.com/category/wearables
[4] https://www.twilio.com/studio
[5] https://sphero.com/collections/all/products/rvr
[6] https://sphero.com/collections/all/products/sphero-bolt
[7] https://developer.amazon.com/en-US/alexa/alexa-skills-kit/ge...
Edit: formatting Edit2: Added alexa skill
Mindstorms uses Scratch for programming, so you can start with scratch for free without having to make an expensive purchase
https://scratch.mit.edu
Disclaimer, not a parent
[0] https://www.microsoft.com/en-us/makecode?rtc=1
If it doesn’t resonate with her, keep looking around for something that does.
Maybe you could build some projects together? My buddy builds robots and little kit toys with his kids. They have a lot of fun with it, but I suspect they’re humoring him because they just like an excuse to spend time with him.
[1] https://en.wikipedia.org/wiki/Tiger_parenting
Looks like this comment section is heavily leaning towards board games. We play cards with her and she is getting better at strategizing there. I will have to explore board games.
the overall goal is to build the curriculum to incoroerate as few external systems as possible. focusing on intro information, architecture, communication, translation using music (specifically a flute) to teach morse code, linguistic set theory, frequency manipulation, recognition, resorse management, basic binary logic you can skip the pvp flute or down branch whittled device, and start with the windpipes. break everytging into set theory linguistics with SVO initial to show all constructs are a language that follows this pattern.
you wont need any computers or flutes for years, and by including fencing, and calligraphy which requires you carve your own saber pens you dont need anything other than yourself, and the yard to push her beyond the problem solving capas of uni students
https://journals.ufs.ac.za/index.php/pie/article/view/4027
So perhaps general reading/ literacy are a good adjunct skill for coding?
So reading and understanding good literature is important in my opinion and gives an edge in many fields later on, including programming.
https://www.transum.org/software/Logo/
But above all, make it fun! Just spending time with your daughter is more important than getting her to learn stuff.
True, but they are soaking up cultural biases about career paths. 1st graders have zero gender bias in their career thoughts, when asked whether they belong in STEM fields when they grow up. 3rd grade is exactly when girls start saying they don't belong. One of the reasons to get CS going is specifically to shrink that gender gap, and make sure all children feel free to choose whatever path they wish.
As codingdave mentioned below, I see that there’s already some gender stereotype creeping in her thinking. The other day she won a math competition in her class and she was happy because she beat all the boys.
The trick is to get them to see code as an enhancement to life. It's fascinating to see the renaissance in table top RPGs like Dungeons & Dragons amongst the youth today. One time we couldn't find the dice set. So I wrote a simple Python N-sided die. And they were fascinated by BigInt: "you mean I can roll dice with as many sides as I want???"