I'm considering the same with my kids but not done it yet yet. Scratch seems like a pretty good start. If they prefer seeing something more physical rather than an animated cat, the BBC Microbit can be programmed to do blinkenlights in the same way.
The LEGO boost robot kit also uses the scratch language if you want something physical and your kid is big on LEGO’s.
In addition to scratch, there are a few games like “LEGO fix the factory”, “lightbot jr”, and even “human resource machine” (my five year old can only handle the first few levels though).
The dragon box apps are also fun if you want to give your kid exposure to algebra and geometry concepts.
For pre-5, the new Kahn app looks nice. (Our kid already knew the material by the time it came out, but still has fun with it.)
Lego Boost or WeDo is on the shortlist for an upcoming birthday present.
Boost looks more "fun" but fairly single-purpose. e.g. Some of the command are specific to one model. It seems a bit like the more modern Lego sets where pieces are complex. Cooler models but less flexibility.
WeDo is intended for schools and looks better in that there are simpler block and a more free-form goal to it. It reminds me more of the sets we probably had when we were kids - i.e. just bricks and your imagination.
Out of the box the Boost runs you through the base models with some build-specific commands. We've been through most of those builds. They also have some bases for building your own creations, and they have completely free-form programming. (Scroll to the right and tap on the swirly looking thing in a window - it's not particularly discoverable, but kids are surprisingly good at exploring all the corners of UIs.) They've also added some builds that combine other modern lego sets with boost.
I wasn't aware of WeDo, or I would have taken a look at it. I was looking for something to motorize legos and to expose my five year old to programming (if he was interested) and mindstorms seemed too complex/expensive.
It looks like boost may have more motors than WeDo (and the motors can be used as rotation sensors), 800 lego parts, some pre-designed builds (he's enjoyed the robot, cat, and truck thing). However, the "control hub" is a bit bigger on Boost (it contains two of the motors), which effects the size of things you build with it. I probably would have still chosen Boost if I'd known about WeDo.
The best way is to learn the fundamentals first, focus on linear algebra and calculus to have a good understanding of math. It could get a bit tiresome at first, so you could start doing some assembly programming in between to be a bit practical. The 68000 is really easy to get into.
I came from a family that didnt really care about school I guess, and I don't think I was even presented a problem like "x - 4 = 17" until maybe 12 years old, and I didn't understand why it was useful until 14
For basic algebra, Dragon Box Algebra is nice. My five year old has gone through that and is working his way through geometry and the algebra 12+. (He just plays occasionally - iPad time is weekends only and he chooses what he wants to do.)
It’s mentally taxing, so I encourage him to switch to a different game when he starts getting fatigued. (It rewards by gradually drawing a monster and unlocking more skills.)
For assembly, you could try “human resource machine”, but it gets hard too quickly. Light Box Jr might be more appropriate, though. ScratchJr is also worth checking out (it is more open ended rather than just gameplay).
Thanks for making me smile but actually it's not a bad idea to open children quite early to the concept of functions and related ideas. Of course you wouldn't use the name "function", but rather a "machine" - and then play the "what comes in, what comes out" game, for example. The ability to correlate two (and more) variable changes is very useful in life, but spotting these occasions and use them to point out certain facts involves some skill on the parents' part.
It would be good to get an early start on quantum mechanics and string theory if you want to start slow, that's kind of babying your kid too much though.
It's probably worth pointing out this is more of a LOGO-esq programmable turtle rather than a "programmable gaming mouse" - I was quite confused for a moment :)
You can start with the Hour of Code, some lessons are easy to grasp for preschoolers.
There is also a nice LEGO Mindstorms game, Fix the Factory - they can learn the basic concepts, and then try to recreate them in the real world using actual Mindstorms blocks.
Any pipes connecting game -- very similar skillset to casual programming. I consider most programmers digital plumbers! It's also why games like BioShock and Deus Ex have them as mini games for hacking/programming.
I had a lot of success with code.org's Hour of Code. First with my five-year-old, and then two classes of elementary school-aged children. It's extremely visual, introduces kids to actual code syntax, and lets the kids choose what theme most interests them. We went with Star Wars, but there are lots of other options.
Every kid will get it at a different pace. So don't stress it and just enjoy the one-on-one time. The most insightful advice I ever read was, "Even if they don't get it, you have still spent quality time with your kid."
People have recommended games geared towards programming. That's good.
Games in general are good. Even non-games like Candyland. It's all procedural. Following directions.
Back in the day it used to be all about Logo and that industrious little turtle.
What's important is that they see the results of their efforts quickly. Positive feedback for nearly as soon as they put in their commands. Eventually, they'll begin to conceptualize and think abstractly and be able to build more complex things.
This is a bit out of left field - but I (offhandedly) showed my kid RoboHash: https://robohash.org/ which he thought was _awesome_. He could type in words and generate robots, which is kind of like a super power to a kid.
He asked me how it worked, and I used that to talk about some core programming concepts, including showing him some code. I wouldn't say he "learned" programming from that experience at all - but now he knows what code is, and sort of how programs are made, and he knows that you can make cool stuff like robots :)
So I would say: find something they are really interested in (maybe that's Minecraft, or robots, or animation, etc) - and use that as a jumping off point to introduce the concepts to them.
Pick an easy language like python, then teach him in order:
print, print, print
print, input, print
print, input, if print, else print
print, input, for print
func, print func
These are the basic building blocks of all computer programs in the universe, if he can master them and gets his curiosity in overdrive then he'll be a great programmer, a good skill to have even if he picks another career path.
While I agree. It might not hurt to explain why you think this way. For me, 5 is pretty young. At that age it might be better to focus more on building blocks that will become useful for programming in the future. Stuff like basic problem solving, identifying things that could be improved.
I'm voting up all the https://scratch.mit.edu suggestions. I was active in that community and with the developers early on. I wish I had it when I was little.
You can browse projects with the 5 year old then view the source and figure out how they work. Show that they can change things.
It's awesome that you want to promote creation over just consuming content like most of their peers.
Scratch your own itch with it too. Make a 3d renderer or CRUD app, fractal explorer, or game... they might like to see what can be made and what excites you.
They may get into the story and animation projects made by other kids first, that's good too.
I think you can introduce programming concepts into play, but I would leave (and have done) actual programming until they are a bit older.
There was a good example possibly linked on here a few days ago, where with a group of kids, one of them pretends to be a robot (they can take turns), and the others "program" the robot with simple commands (forward, turn left, pick up, etc, etc). It can be step-by-step to start with, and then they have to write down the steps in advance, etc, etc.
Disagree. I started programming when I was less than 4. My Dad had an Atari, and I would sit and copy the code from some books. I didn't know what I was doing, all I knew is that I wanted to play the game, since I saw my Dad do it.
He didn't force me at all, I just wanted to. So I would modify your pseudocode and add a branch for the kid's interest/aptitude.
I think you weren't really programming in that case, but I agree if the kids shows an interest it's worth steering them toward more advanced activities.
On the other hand I think at this age it's much more important to be playing physically and socially, than to be buried in a screen.
I agree with this. The main question for me, is: programming in place of what?
Free play which involves the whole body and develops balance, motor skills etc.?
What is the brain development cost of replacing this with a frozen position in trance-like state in front of a screen?
Instead of socializing, or in any way interacting with human beings, picking up empathy, humor, refining public speaking, leadership, communication skills? Because these are the skills that lend VC capital, C suite jobs and fat exit checks.
Lastly, after working with a few high quality offshore teams, the future market for programmers is very likely in China, Russia, Ukraine etc. and the pay will sooner or later equalize.
This. Programming involves developing comprehension for the ability to strictly follow rules. Kids should not be exposed to this too early. You want kids to be as unbound as possible at early age.
Basically, it's a programming language to make very basic 2d physics simulations.
It's actually gone really well, she loves changing the size and colors of the shapes. She's learned how to type (keys, capitals, arrows, backspace, etc...) and how to manipulate a lot of things.
I wouldn't say she is really "programming" yet; it's more of "I know this number changes the size of the block and this other thing changes the color". Anyways it's a great start and we have a lot of fun on it together.
(Note I built this a a while ago on Parse which has since shutdown so the saving/account functionality doesn't work any more. You need to copy your scripts to a text file to save.)
This is adapted from a post I saw on HN years ago. Can't find a reference ATM, but the gist is:
Use a simple goal oriented task - picking up a ball from one end of the room and depositing it at the other end, navigating some obstacles (coffee table etc). You are the "robot" they are programming.
Provide a partial "instruction set" left, right, forward (1-step).
Let the child figure the algorithm to pick the object, navigate the obstacles and discover the rest of the instruction-set.
They string together a program as a string of post-it notes.
The only rules are the "robot" always runs the program from the beginning - no hot-patching. If the instructions bump you into a table, you stop. The child goes fixes the program, and you start over. Great for debugging skills and building abstractions in the head.
Incredible, how quickly they discover loops and functions. And very quickly learn to create program in the abstract for other tasks (unloading a dish-washer).
I never went as far as sorting lego bricks, but that might be another interesting direction to explore to introduce algorithms.
A simpler version of this when they're pre-literate is to put them on your shoulders and be the robot, but only listen to certain commands. I played this with my 4 (now 5) year old daughter and only responded to "turn," (I only turned left) "forward," and "stop."
Needless to say, she enjoyed spinning me in circles and running me into things. Eventually she learned how to actually navigate around the house.
Unless your 5-year old has independently expressed interest in learning to program, I'd say the best way is to not do it. I could be way off here, but to me this smells like a parent who wants to be able to brag to other adults that their child is so smart that they started programming as a 5-year old.
I'm not convinced that teaching kids how to code is a good idea, perhaps someone in hn could shed some light on how learning to code at a young age is a good thing. For me, important values to instill in a kid that will be conductive to their success as well as well-being are communication and empathy. The best way to achieve these is through diverse activities that involves teamwork and exploration. Rather than teaching kids how to code, sending them to be part of a sports team, band, and art group would be better choices. With these experiences interacting with people from different activities, the kid would grow up with more life experience and relate to others better, which translates to building more impactful products later on in life if they decide to pick up programming.
Furthermore, if your kid is an introvert that wants the easy escape of doing things alone on the computer, then force them to do things with other kids anyway. I wish my parents had done that with me. The existence of great programmers before the rise of home computers is proof that programming can wait for later. Some things are not so easily learned later.
Get them to play with Legos, or help with household chores or something, explaining the process of what you are doing step by step. Try to get them thinking logically.
I couldn't even read at five years old, I certainly wouldn't have been able to make heads or tails of computer programming.
I think the toy that first primed me for programming was a marble run construction kit. The feeling of working out where the marbles will go is very much like the one of following code through in your head.
Of course, rather than teaching me anything, it may have simply appealed to me because of a motive that was already there.
I was 7 when my teacher introduced the Logo programming language.
We used an educational adventure game called "Crystal Rain Forest", which had a series of puzzles introducing gradually more complicated programming concepts.
Here[1] is a mid-way-through puzzle, using Logo-like[2] commands, at first interactively, then by making a simple script. The next puzzle [3] adds a "Repeat" loop.
After the game was completed, we could use the floor turtle to trace out our completed crystals [4].
64 comments
[ 1.7 ms ] story [ 124 ms ] threadIn addition to scratch, there are a few games like “LEGO fix the factory”, “lightbot jr”, and even “human resource machine” (my five year old can only handle the first few levels though).
The dragon box apps are also fun if you want to give your kid exposure to algebra and geometry concepts.
For pre-5, the new Kahn app looks nice. (Our kid already knew the material by the time it came out, but still has fun with it.)
Boost looks more "fun" but fairly single-purpose. e.g. Some of the command are specific to one model. It seems a bit like the more modern Lego sets where pieces are complex. Cooler models but less flexibility.
WeDo is intended for schools and looks better in that there are simpler block and a more free-form goal to it. It reminds me more of the sets we probably had when we were kids - i.e. just bricks and your imagination.
I wasn't aware of WeDo, or I would have taken a look at it. I was looking for something to motorize legos and to expose my five year old to programming (if he was interested) and mindstorms seemed too complex/expensive.
It looks like boost may have more motors than WeDo (and the motors can be used as rotation sensors), 800 lego parts, some pre-designed builds (he's enjoyed the robot, cat, and truck thing). However, the "control hub" is a bit bigger on Boost (it contains two of the motors), which effects the size of things you build with it. I probably would have still chosen Boost if I'd known about WeDo.
It’s mentally taxing, so I encourage him to switch to a different game when he starts getting fatigued. (It rewards by gradually drawing a monster and unlocking more skills.)
For assembly, you could try “human resource machine”, but it gets hard too quickly. Light Box Jr might be more appropriate, though. ScratchJr is also worth checking out (it is more open ended rather than just gameplay).
Okay, you are joking. Nice one.
https://www.learningresources.com/product/learning+essential...
I only bought the mouse, you can make some mazes yourself.
There is also a nice LEGO Mindstorms game, Fix the Factory - they can learn the basic concepts, and then try to recreate them in the real world using actual Mindstorms blocks.
Every kid will get it at a different pace. So don't stress it and just enjoy the one-on-one time. The most insightful advice I ever read was, "Even if they don't get it, you have still spent quality time with your kid."
http://lightbot.com/
Games in general are good. Even non-games like Candyland. It's all procedural. Following directions.
Back in the day it used to be all about Logo and that industrious little turtle.
What's important is that they see the results of their efforts quickly. Positive feedback for nearly as soon as they put in their commands. Eventually, they'll begin to conceptualize and think abstractly and be able to build more complex things.
He asked me how it worked, and I used that to talk about some core programming concepts, including showing him some code. I wouldn't say he "learned" programming from that experience at all - but now he knows what code is, and sort of how programs are made, and he knows that you can make cool stuff like robots :)
So I would say: find something they are really interested in (maybe that's Minecraft, or robots, or animation, etc) - and use that as a jumping off point to introduce the concepts to them.
You can browse projects with the 5 year old then view the source and figure out how they work. Show that they can change things.
It's awesome that you want to promote creation over just consuming content like most of their peers.
Scratch your own itch with it too. Make a 3d renderer or CRUD app, fractal explorer, or game... they might like to see what can be made and what excites you.
They may get into the story and animation projects made by other kids first, that's good too.
20 if age < 7 then goto 10
I think you can introduce programming concepts into play, but I would leave (and have done) actual programming until they are a bit older.
There was a good example possibly linked on here a few days ago, where with a group of kids, one of them pretends to be a robot (they can take turns), and the others "program" the robot with simple commands (forward, turn left, pick up, etc, etc). It can be step-by-step to start with, and then they have to write down the steps in advance, etc, etc.
He didn't force me at all, I just wanted to. So I would modify your pseudocode and add a branch for the kid's interest/aptitude.
On the other hand I think at this age it's much more important to be playing physically and socially, than to be buried in a screen.
> I didn't know what I was doing
At most you were developing fine motor skills. Maybe.
Free play which involves the whole body and develops balance, motor skills etc.?
What is the brain development cost of replacing this with a frozen position in trance-like state in front of a screen?
Instead of socializing, or in any way interacting with human beings, picking up empathy, humor, refining public speaking, leadership, communication skills? Because these are the skills that lend VC capital, C suite jobs and fat exit checks.
Lastly, after working with a few high quality offshore teams, the future market for programmers is very likely in China, Russia, Ukraine etc. and the pay will sooner or later equalize.
http://modelian.com/
Basically, it's a programming language to make very basic 2d physics simulations.
It's actually gone really well, she loves changing the size and colors of the shapes. She's learned how to type (keys, capitals, arrows, backspace, etc...) and how to manipulate a lot of things.
I wouldn't say she is really "programming" yet; it's more of "I know this number changes the size of the block and this other thing changes the color". Anyways it's a great start and we have a lot of fun on it together.
(Note I built this a a while ago on Parse which has since shutdown so the saving/account functionality doesn't work any more. You need to copy your scripts to a text file to save.)
Use a simple goal oriented task - picking up a ball from one end of the room and depositing it at the other end, navigating some obstacles (coffee table etc). You are the "robot" they are programming.
Provide a partial "instruction set" left, right, forward (1-step).
Let the child figure the algorithm to pick the object, navigate the obstacles and discover the rest of the instruction-set.
They string together a program as a string of post-it notes.
The only rules are the "robot" always runs the program from the beginning - no hot-patching. If the instructions bump you into a table, you stop. The child goes fixes the program, and you start over. Great for debugging skills and building abstractions in the head.
Incredible, how quickly they discover loops and functions. And very quickly learn to create program in the abstract for other tasks (unloading a dish-washer).
I never went as far as sorting lego bricks, but that might be another interesting direction to explore to introduce algorithms.
Needless to say, she enjoyed spinning me in circles and running me into things. Eventually she learned how to actually navigate around the house.
I couldn't even read at five years old, I certainly wouldn't have been able to make heads or tails of computer programming.
Of course, rather than teaching me anything, it may have simply appealed to me because of a motive that was already there.
This kind of thing: https://www.amazon.co.uk/Peradix-Marble-Run-Coaster-Set/dp/B...
We used an educational adventure game called "Crystal Rain Forest", which had a series of puzzles introducing gradually more complicated programming concepts.
Here[1] is a mid-way-through puzzle, using Logo-like[2] commands, at first interactively, then by making a simple script. The next puzzle [3] adds a "Repeat" loop.
After the game was completed, we could use the floor turtle to trace out our completed crystals [4].
I guess this [5] is the updated version.
[1] https://youtu.be/p_DV1DGX150?t=1815
[2] https://en.wikipedia.org/wiki/Logo_(programming_language)
[3] https://youtu.be/p_DV1DGX150?t=2399
[4] https://www.youtube.com/watch?v=dy4jgTo7rfs (contains noisy children!)
[5] https://www.youtube.com/watch?v=MHCkQC9orG0