HACKER Q&A
📣 malshe

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


  👤 bjacobt Accepted Answer ✓
Why not try something like Lego Mindstorms[1] or circuitpython devices from Adafruit[2]. Adafruit has some wearable project tutorials that could be fun[3]

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


👤 version_five
I was programming at roughly that age (I'm 41 now) - basic on an Apple IIe . I think we older folks had it good on a sense that you could make a computer do cool stuff that otherwise would have been unavailable. Computers are so ubiquitous now that introductory programming is boring by comparison. So I'd have no idea how to show a kid something cool they couldn't otherwise do with a computer, the way we could in the 80s.

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.


👤 ArtWomb
I like the Swift Playgrounds materials a lot. It's a great grounding in Intro to CS. BUT it quickly gets boring for 9 y/o's. Even gamedev, Roblox, etc. They are digital natives so the novelty isn't a fascination to them, the way it was to us: "you mean I can actually program Goldeneye myself at home???"

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???"


👤 rPlayer6554
I'm not sure what age she is, but if she likes Minecraft (which it seems many kids are into nowadays), Microsoft has a block programming tool for Minecraft mods (among a few other things) [0]. It looks like scratch, but imo the really cool feature (which may be on scratch, I have no idea) is you can use it to see the equivalent JavaScript or Python version of the code blocks. That might allow her to take the concepts she learns with the code blocks then seamlessly translate them into real world code as she gets older. It seemed neat to me.

Disclaimer, not a parent

[0] https://www.microsoft.com/en-us/makecode?rtc=1


👤 dsq
Having being exposed to personal computers only in my early teens, most of my time was spent on reading (books for the most part). I feel that, at least for me, reading skills translate well to code. Even writing code didn't feel foreign to me since I had done some private writing on my own. And indeed, this article indicates the same:

https://journals.ufs.ac.za/index.php/pie/article/view/4027

So perhaps general reading/ literacy are a good adjunct skill for coding?


👤 tmaly
I have been teaching my 8 year old daughter and her class using Scratch.

I put some free lessons up for her class. Link in my profile if it is any help to you.


👤 gdubs
My daughter (7) really enjoyed Scratch — so much so that she asks to do it often, and went and watched all the tutorials on her own. She internalized concepts like loops, user interaction, etc. It’s a nice environment and for me, it’s all about the concepts and less about language syntax at this stage.

👤 philipkglass
My dad showed me small demonstrations of programming on the Commodore 64 when I was in the third grade. I liked to make up silly rhymes. He showed me how to print out the rhymes sentence-by-sentence with pauses in between for reading, with a little sound effect flourish as each one was printed. By the standards of the time, it appeared to have sound and motion; it engaged the senses, and that got my attention.

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


👤 drallison
Rather than teaching coding, you might try to teach algorithmic concepts. For example, iteration, abstraction, sorting, comparison, search, recursion, partitions, and so forth. These are tools which can be used without recourse to a computer to solve problems.

👤 GoldenMonkey
Get the physical book - “25 Scratch 3 Games for Kids: A Playful Guide to Coding”.

Graphical way to program. My eight year old was making games in minutes. And was ‘getting’ it.

i.e.

https://www.amazon.com/dp/1593279906/ref=redir_mobile_deskto...


👤 codeguppy
Try https://codeguppy.com

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


👤 Epiphany21
Consider teaching her how to use computers at a very high level first. How to type, how to use a mouse and keyboard shortcuts properly, how to send an email to grandma and grandpa, how to install and uninstall programs, and so on. Those are basic skills she will need as an adult to be productive and communicate efficiently. Programming is not an essential skill for most people and third graders are not giving any serious thought to a future career path.

But above all, make it fun! Just spending time with your daughter is more important than getting her to learn stuff.


👤 codingdave
There are a plethora of organizations getting CS into the schools around the USA. They mostly start with the basics of computational thought, not actual coding. They each have their own curriculum, many of which are open source... but as a starting point, you can check out one example at: https://code.org/educate/curriculum/csf

👤 more_corn
My favorite introduction to computing is through play. I really like the raspberry pi, the scratch environment and the game programming section of the “getting started with raspberry pi” book.

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.


👤 Kye
I copied some code into QBasic to make a fire truck siren come out of the PC speaker at that age. It was amazing. Decades later, I'm pondering Max for Live devices to do essentially the same thing, but more complex. Everything is new to someone at that age, so anything that supports what she's drawn to interest-wise is good.

👤 fontenot-jon
teach her physics, information, architecture (language), communication, and translation theory using the human body as the manipulated logic control device.

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


👤 brutus1213
I spent a few grand on coding/robotics/electronics kids toys for my first grader (okay ..maybe for me too :-p ). Total waste. I definitely get a ton more engagement from exposing the kid to board games. Recently, got Battleships (a bit brain numbing for adults) but it seems to be a hit, and a great tool to teach reasoning.

👤 tumidpandora
https://projects.raspberrypi.org/en has a ton of great resources on scratch coding, basic electronics, blender, raspberry pi and more.

👤 MathMonkeyMan
Coding sucks. Leave her alone.

👤 echoradio
Linda Liukas’ “Hello Ruby” books are wonderful for introducing programming concepts.

https://www.helloruby.com/


👤 jeffrallen
Put her outside with sticks, tools, string and matches. Invite friends and build something then cook something. Sing while you work, and then song more after you eat.

👤 smackeyacky

👤 adamnemecek
Teach her Unity. I would have killed to have access to Unity when was her age.


👤 vanusa
Maybe she doesn't ... need to learn coding at that age?

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.