
Ask HN: Looking for advice: How do you teach a child computer science? - dpflan
From your own experience(s), what has been useful for teaching a motivated child (e.g. middle-school age) Computer Science? I am looking for advice on how to continue to provide gradually more complex ideas and work and how to present ideas in a consumable and comprehensible manner. How have you taught and&#x2F;or how have you learned?<p>I currently think letting the child take Udacity courses, using online resources, and working on problems from Project Euler are a start. While the child is learning on his&#x2F;her own, there will be one-on-one sessions to elucidate concepts, to introduce new ones, to review old ones, and check work. I think that it is important to show connections from the topic of study to examples in the real world. I am beginning to think that a very useful approach is almost an apprentice model: the tutor and student agree upon a large project to create together with ideas coming from the student and support and guidance coming from the tutor. Once the project is selected, the tutor breaks the project down into actionable items that are learning opportunities (e.g. here would be a good place to practice OOP or a design principle, here would be a good place to examine computational efficiency&#x2F;complexity, here would be a good place to examine recursion). The smaller pieces will add up and get &quot;harder&quot; until the tutor is autonomous. The tutor does the heavy lifting things that are fundamental and currently beyond the abilities of the student.<p>* I am not well versed and will be doing my own research into the &quot;how to&quot; of this question. I wanted to ask this here to see what discussion emerges to facilitate what I find and devise.<p>Thanks!
======
tmaly
I taught my 4.5 year old daughter basic concepts in 10 minutes using scratch
jr on a kindle. The animation aspect and ability to edit the characters were a
huge appeal to younger children. There is a $5 book you can buy to get you
started if you know nothing about scratch jr. There are versions for all of
the tablets, so it is quite accessible. The version on the kindle is not super
stable, so I would consider exploring the ios version.

We also used a mouse maze toy ( Code and Go Robot Mouse) where she programs
the mouse to navigate different mazes that we construct to find the cheese. I
switched it up and instead of using cards, I have her physically move the
mouse and input each step. My neighbor also purchased this for his 5 year old
son after watching my daughter program it. Seeing physical results of your
programming is another benefit to this method.

I myself originally started in basic on the mid 80s by typing in different
screen games. Eventually you pick up the different constructs and begin to
make your own programs.

I was successful with this method for my nephew when he was 12, ten years ago.
I had him type in programs from the free Python game book online. He modified
them and was pretty fluent in the basics.

My wife has asked me to create a place to share these different resources we
use to teach our child. I would be curious to know what resources others use.

~~~
dpflan
I think that tangibility and playful feedback are great concepts for making
the experience attractive - first superficially (how do you compete with iPad
games :)), then deeper as a way to "see" the programming. I've brought in a
GUI (Python's turtle [1.]) to help explore programs, computational and
mathematical concepts, and to give more feedback and add another dimension.

The introductory programming course for the BS in CS I obtained taught Python
and programming/cs concepts and used a robot (IPRE Scribbler 2 + Fluke 2
[2.]).

Did you create a place to share your different resources?

[1.]
[https://docs.python.org/3.6/library/turtle.html](https://docs.python.org/3.6/library/turtle.html)
(pick your python version)

[2.] [http://www.betterbots.com/](http://www.betterbots.com/)

~~~
tmaly
I setup a discourse forum on my site
[https://nextlesson.com](https://nextlesson.com) but I have to give my wife
and her sister an overview of the platform. They will setup the categories.

------
raarts
I'll tell you what I did: I always told them not to go into programming. Now
two out of three have a skyrocketing career in startups, and the third is a
math teacher who can build websites but doesn't...

~~~
dpflan
Interesting. What motivated two of them go into programming? When did they not
heed your advice?

~~~
raarts
I think there are two drivers in how you as a parent influence your children:
what you say, and what you do. The latter usually is stronger. Compare for
example how often parents who smoke themselves, succeed in keeping their
children off of it..

Also: I guess there's a SO, that person has just as much an influence as you
do (including showing passion for something). And of course there are others
too.

I think their main motivation was them seeing my passion. And of course:
advice are only words, actions speak louder.

In my opinion setting a strong example is the best you can do. Show them your
passion. And accept that you will not - and should not - decide how they'll
lead their life.

~~~
dpflan
I understand your position: talking/speaking is even a subset "actions", so it
makes sense that the actions are more affective and informative - either
directly or over time when your children reach different stages in life and
understanding. I do have eureka moments about my parents' behavior at times,
but sometimes hearing them say why behaved as they did / acted as they did /
setting an example or a construct for me to live in, is very useful. It can be
a fun conversation. It's as though you wait until the words will be truly
meaningful.

~~~
raarts
Upon re-reading I realize my last sentence did not come out exactly as I
wanted to say it. What I really meant was that in the end (when they left the
house) I realized that you both have and haven't a lot of influence on your
children.

And even though I'm really happy with the way they turned out, and we like
patting ourselves on the back for that, it's just as true that things could
have gone sideways so easily due to bad luck, circumstances, things not under
our control.

And all the good intentions beforehand notwithstanding: people have their
faults, have bad days, can be unlucky.

Love, understanding, empathy, and humility make life so much better for
everyone.

------
jonkiddy
I'm currently following the apprentice model you're describing with my own
children. Each of my kids are interested in a particular project of their
choosing (personal website, mobile game, robotics). All are very simplistic
projects but are fun and unique enough that each are excited about their own
project and share progress with each other throughout the week. I spend one
hour per kid every weekend 1-on-1 reviewing the progress, making suggestions,
etc. Its very rewarding.

~~~
dpflan
That's awesome; thanks for sharing! What ages are your children? Did your
children first begin learning programming basics (e.g. perhaps the content of
a CS 101 course or high school course; a sufficient knowledge base to make
progress and to know when to seek help)? How far along in learning were they
before beginning work on a larger project?

