Ask HN:How to introduce a 5 year old to computer science? - guilhermetk
======
setr
Way I got into it was video games, and having to pick up computers and
hardware to actually play anything (along with having my parents generally
against it, so if I wanted to upgrade my pc for new games, I had to be careful
aka research)

So following that idea; don't teach them CS, give them something that'll force
them to pick up CS along the way; and don't let them access the easy route to
victory

IE if he wants to play games, don't let him use anything but windows 7 and ban
any modern video game. Give him a few copies of good older titles, and no
additional instruction; like civ 3, sim city 1, star control 2, etc; by not
giving him modern games, he'll be stuck playing alone with no one his age to
talk to about it; no one, that is, but the internet. And if he can only play
older works, then he'll inevitably read into the history, and select from the
older games, and eventually you can let him upgrade his hardware at his own
risk, and so it goes on.

Essentially, don't let him get trapped in minecraft; a healthy start, and a
tough environment, and he'll come out tough is my belief

------
KZeillmann
Why do you want to introduce a 5-year-old to computer science? Has your kid
expressed interest?

~~~
guilhermetk
The child is my nephew. The reason I want to show him computer science is from
my own experience. When I was a kid, I got my first computer before all my
friends. Today, I realize that made a big difference. Also, I see that his
parents do not do not care about that, they gave him a tablet just to play and
watch videos on youtube. I just want to show him that there's so much more
than that!

~~~
magic_beans
He may not be as interested in computer science as you are, just realize that.

~~~
guilhermetk
I know, my intention is not to impose but to show him what exists and what can
be done. I believe that if I do not do that, no one will.

[Edit] I say that because I live in the coutryside in Brazil. People here,
specificaly in my city, are focused in agricultural activities and are still
not used to deal with computers.

~~~
Shank
Realize that by pushing someone into a hobby you're going to disrupt their
ability to discover or experience it for themselves. Give them a computer, not
CS problems.

I would probably hate CS if my parents told me to get into it or started
leaving breadcrumbs for me to pick up.

------
bediger4000
You might want to let the 5-year-old watch old episodes of the PBS kids
cartoon series, "Cyber Chase". It covers an astonishing range of subjects,
from game theory to euclidean geometry to statistics to some programming.

Unfortunately, it was canceled before it got to Goedel's Incompleteness
Theorem.

------
pasbesoin
Bet they use the TV and are used to it. Get a Raspberry Pi (and keyboard and
mouse and controllers), show it to them, plug it in. In whatever order: Play
some games. MODIFY a game. Install/run a good LOGO variant (once they read
enough to use it). Show them some neat LOGO programming. Help them make their
own LOGO programs. Leave them alone to make their own stuff.

Consider Scratch or another "kids" environment, if/when LOGO doesn't seem to
be enough.

When they are up to it, help and/or encourage them to make their own games. Or
whatever -- if games turn out not to be their thing.

So, you take a TV that is passive. And you make it active. With this cool and
tech and not "packaged" looking PCB. And you show them how it can do what
_they_ want -- if they can figure it out.

And, don't forget to go out and ride bikes, too.

P.S. The computer is not magic, and it's not a fancy TV. It's a tool. It'll do
whatever you want, if you can figure it out.

P.P.S. For bonus points, when they become a teenager, turn them on to the
paranoia of the war on general computing. ;-)

------
jenkstom
I have three five year olds. I been looking into this and I'm considering some
of the "programming" games available for android since they have android
tablets. They have to work without being able to read, though, so that's an
added challenge.

Lightbot, Robotizen and Bit by Bit look promising. Tynker appears to require
reading.

There are several Scratch-based applications out there, like Scratch, Jr.
There's even a "PBS Kids" version of Scratch, Jr., which may be the best place
to start.

We definitely want to encourage all sorts of STEM, though. I'm a software
developer and my wife is a mechanical engineer.

We received a 3d printer just over a year ago, but mostly they are interested
in small toys rather than actually creating anything. I've tried signing up
for "teacher" resources for 3d printers, but they always want you to be
affiliated with a school. Not much help for parents. That's a big hint to
anybody developing STEM curriculum - it starts at home. Get the parents
involved, please.

------
Lukeas14
Build a desktop computer together. 5 is a little young to start actual
programming, especially if they're just learning to read. But putting together
a computer from scratch is more like legos and in the process you can teach
them about what each part does (power comes from the P/S at different levels,
the CPU does all the calculations like addition/subtraction, HD holds data and
memories forever, RAM holds it temporarily, etc)

I built one with my son when he was around the same age. Not sure how much
computer knowledge he gained from that experience but it was still a fun
project

------
JamesLeonis
When I was 5, I received a Game Boy for Christmas. It started me down the long
road of computers, programming, and my career today.

I also had different building toys growing up. K-Nex, LEGOs, and Erector Sets
were common. It gave me a place to explore creativity and building. As I grew
older, I started learning how to use my father's tools for woodworking and
basic carpentry.

In that spirit I would recommend fostering the impulse to create, build, and
explore.

------
jchin
I have a 5 year old who is a pretty good reader and seems to be naturally
interested in math and computers/tablets. He'll get really interested in one
thing for a while then float to something else.

I set him up on a super old laptop to run the desktop version of Scratch. I
picked up a set of books by this publisher at Costco. He made it through 3 of
the game tutorials and thought it was fun. The hardest thing for him was
clicking/using the mouse and touchpad. [https://www.amazon.com/DK-Workbooks-
Coding-Scratch-Workbook/...](https://www.amazon.com/DK-Workbooks-Coding-
Scratch-Workbook/dp/1465444823) We passed the books to some friends after he
found something else to explore.

Currently, he's avidly playing a game called "Box Island" on iPad. It's a
coding game with several free levels. I was pleasantly surprised when he
finished the free levels after a few weeks (we limit iPad time) and requested
I buy the remaining levels. Before this game, he was playing Kodable, which
was free but had terrible graphics, imho.

We were gifted Robot Turtles but that didn't take.

------
zmix
You don't tell us about the background. But I would say not to introduce the
child at all. Prodigies will seek and find for themselfes, I'd assume. If it
shows interest, asking questions, then you may try to answer. If it is a
prodigy, it will understand. If not, well, then there is no need to introduce
a five years old to CS.

------
lithos
I would recommend the game SpaceChem. It is outstandingly parallel to
programming in the sense there is branching, testing, looping logic and
similar. You'll probably even love the game yourself. It has great
commanding/minion play and a good story if they are a capable reader (the
first being the first approach to teach boys, the second girls if you follow
teaching advice for typical kids)

Minecraft does have a bunch of programming mods. Often times letting you make
minions to do stuff for you (some cases in python or a custom language).

You could also consider starting with electricity. I've been through college
classes for both programming and electricity. And the success of actually
learning to read/make/trouble shoot electrical diagrams is much higher than it
is for programming.

------
chris11
Lego Mindstorms might be good. It's pretty powerful, but its a lego set, so
you don't need to put too much work into it to make something.

------
erichocean
The book _Code: The Hidden Language of Computer Hardware and Software_ by
Charles Petzold is pretty fun for kids. You can play along with almost
everything in it if you buy some (cheap) hardware. Very "hands on"
explanations.

------
esw
There's a board game called "Robot Turtles" that's designed to teach
programming concepts to kids. I was initially pretty skeptical, but our
preschooler loves it.

------
armenarmen
I'd introduce the kid to age appropriate logic puzzles maybe drop a couple
"for everyone of these we'll do that" when dudes a bit older add some video
game stuff

------
pryelluw
Roblox! Its a really fun platform and simple to use. Its playing games people
make and making your own. You can script with lua too.

------
mythrwy
The same way you introduce a 5 year old to particle physics. (hint: you don't)

------
Kapura
ASM or C

------
tmaly
Basic boolean logic.

There is also a nice board game called Robot Turtles that helps.

~~~
theoh
Understanding base-2 numbers (and other bases) is another good idea, though
it's more suitable for a ten year old.

Game: represent numbers using progressively more exotic representations:

Base 10 Base 5 Base 2 Unary

Then

Fibonacci base ([http://www.maths.surrey.ac.uk/hosted-
sites/R.Knott/Fibonacci...](http://www.maths.surrey.ac.uk/hosted-
sites/R.Knott/Fibonacci/fibrep.html) )

Then

Invent a place-value system using product of primes (inspired by fundamental
theorem of arithmetic)

Etc. This is a very "digital" set of exercises and it's very focused on
counting. Logic will take care of itself.

------
ruurd
Did you have a look at Playgrounds on the Apple iPad?

