
Ask HN: How to integrate coding into primary school? - fabrigm
Hi everyone, do you have any ideas about how to integrate coding into primary school? What&#x27;s the best way to start coding with young children? Thanks for your help!!
======
rafaqueque
Why there's a need for children to learn coding? This is getting really crazy.
Seems like everyone needs to code and everyone is pushing towards that.

I don't see this happening for plumbing, to give you a short example, or any
other professional area.

EDIT: I was a coach at a Django Girls event. I support these kind of events,
but still, I don't see the reason to really push children to learn coding in
their 5 or 6 years old. At that age, they are supposed to play with other
children in the backyard, getting dirty. We are losing that. Probably, my
generation (1990) was the last having that joy.

~~~
DanielBMarkham
It's a good question.

Because programming isn't plumbing.

Programming is not just a skill, it's an expressive medium required for
effective communication in the 21st century.

Back in the day, you had to be literate. You had to write in cursive. This
wasn't something you went to school for and did as a living, it was just a
baseline from which you were able to do anything else.

Programming is like that. Why folks think of it as a stand-alone skill is
beyond me. Yes, its basis is math. But that's like saying that the basis of
writing is painting. The purpose of writing is to enable other kinds of work
with lots of people, some of which may be far away. The purpose of programming
is to enable helping lots of people do repetitive and boring things from all
sorts of problem areas, some of which you will never meet.

~~~
TheOtherHobbes
>Programming is like that.

No it's not. Making YouTube videos is like that. Knowing how to do social is
like that. Being able to look stuff up on Google is like that. Graphic design
is like that. (I'm often amazed by the quality of the graphic design and
motion graphics on amateur YouTube channels.)

Knowing how to tell when politicians are lying should be like that, but isn't.

Programming is engineering. Not everyone is an engineer. Not everyone _can_ be
an engineer, because a lot of people's minds don't work in an engineery kind
of way.

I think it's fine to teach kids Scratch and maybe some Python. But I don't
think it has anything to do with effective communication - it's just useful
practice for basic logical thinking and problem solving.

The kids who are good at it (maybe 10-15%) and enjoy it (maybe 25-50%) can
specialise and do the harder stuff.

In any case I don't expect the Web of 2035 to look much like the Web of today,
so there should be no expectation that learning any specific language or
system is going to be useful later - any more than it made sense to expect
everyone would be using BASIC and CP/M in 2000 when we started seeing
computers in schools around 1980.

~~~
homarp
It works the other way around >Graphic design is like that. Graphic design is
art. Not everyone is an artist. Not everyone can be an artist, because a lot
of people's minds (or "eye) don't work in an artistic kind of way.

But getting the basics of Graphical Design can still help both appreciate a
good design and "understand" why "that stuff" feels ugly, and being able to
discuss with a graphic designer and talk the "same language"

Same thing with "Programming". No one claims that 100% of the population
should understand Rust borrow checker or functional purity

But everyone should understand (and be able to copy-paste some code and "fix"
it until it works) the concept of a sequence of instruction, a loop to
generate repetitive stuff, the concept of variable (and therefore template and
mail merge), a if (and therefore be able to do basic stuff in Excel). So they
can talk to engineer and get what they way. And maybe everyone should be able
to do FizzBuzz or display the number from 50 to 1 with a loop going from 0 to
49. At least in pseudo-code.

~~~
TheOtherHobbes
But my point is that a lot of people who aren't trained graphic designers,
know nothing about the history or practice of graphic design, and have
probably never studied art are able to produce cool designs that are close to
the standard of professional work.

And also that being to do this is a huge personal and business benefit.

Being able to code gives you - what? If you're not doing something useful with
code - probably professionally - it's not a communicative, practical skill.

Office, much as I hate it, kind of is.

There may be some intangible benefits. But so far as I know there has been _no
research_ to suggest that learning to code improves personal, social,
academic, or professional outcomes at school.

Meanwhile there's a lot of research to suggest that learning a musical
instrument or a second language has obvious measurable benefits.

Obviously I'm not against coding. But I'm definitely against any mythology of
coding that suggests it's a key literacy skill - because based on real
evidence, there a lot of other skills with a better claim to that.

~~~
homarp
let me clarify myself. What I see as a "key litteracy skill" is what some
calls "Computational Sense" ("A familiarity with the capabilities of computer
applications and the ability to easily grasp the difficulty in implementing a
computer-based solution. Typically acquired by learning a programming
language.") aka [https://xkcd.com/1425/](https://xkcd.com/1425/)

So the "learning to code" is just a mean to an end.

Also I do think that learning to automate the boring stuff
([https://automatetheboringstuff.com/](https://automatetheboringstuff.com/) )
improves at least personal (e.g. do your own taxes in Excel, understand AND
and OR so you filter email better), social (e.g. ifttt), academic ( e.g. R ),
AND professional (e.g. everything) outcomes.

>learning [...] a second language has obvious measurable benefits

and don't you think that the ability to analyze a process and transform it
into a sequence of instructions can have measurable benefits too?

You wrote "it's just useful practice for basic logical thinking and problem
solving." I agree. It is only that I would remove the "just".

I like what Papert wrote: " debugging is the essence of intellectual
activity".

>And also that being to do this is a huge personal and business benefit.

All the "non technical" startup founders looking for/lacking a technical co-
founder, you don't think that they would benefit from learning a bit of coding
so they can a) estimate what needs to be done (Computational Sense), b) hire
the proper people c) specify what is needed ?

Obviously, I am against coding as "learn js in 5 days" but not being able to
FazzBazz(2,7). I am for learning what a computer can do.

------
gghh
Back in 1991, when I was 7, the Logo programming language did great for me.
You have to write instructions for a pointer to move on the screen and draw
things ("go ahead 20 steps; turn right; go ahead 10 steps...). We had a Logo
class twice a week and we all kids couldn't wait for it to come. I bet some
flavour of Logo is still around, and "turtle graphics" (the general concept of
procedural drawing for kids) is a great way to introduce programming.
[https://en.wikipedia.org/wiki/Logo_%28programming_language%2...](https://en.wikipedia.org/wiki/Logo_%28programming_language%29)
[https://en.wikipedia.org/wiki/Turtle_graphics](https://en.wikipedia.org/wiki/Turtle_graphics)

Scratch from MIT is another canonical suggestion when it comes to this matter.

Some teachers are using Minecraft to let kids build imaginary things; I guess
the underlying principle is "let kids plan ahead", which is the core ability
for algorithmic thinking, thus computer programming (as in this board game
[http://www.robotturtles.com/](http://www.robotturtles.com/) , ispired by
Logo; it's for pre-school tho)

I'd also check out "CS unplugged"
[http://csunplugged.org/](http://csunplugged.org/) , a collection of open-air
activities you can make that sneakily teach algorithms.

~~~
brc
My kids started with 'beebots' in their first year. This is simple logic - go
forward 1 space, left 1 space, etc.

My oldest child is still in primary and they have a lego robotics club- they
build simple robots and do simple programming. He does well at maths and is a
lego wiz so has been allowed to join the club 3 years early.

I've been thinking about where to start and they love minecraft, so it makes
sense to start there I think. I'll check out some of your other links as well.

~~~
pbhjpbhj
There are minecraft mods where you programme bots to do tasks for you - I like
the sound of it but haven't tried it with my kids yet; it was on HN a week or
two ago.

Few links:

[http://www.computercraft.info/download/](http://www.computercraft.info/download/)

[http://scriptcraftjs.org/](http://scriptcraftjs.org/)

[http://www.learntomod.com/](http://www.learntomod.com/) (paid)

------
Varkiil
[https://scratch.mit.edu/](https://scratch.mit.edu/) It is made for teaching
code to young children

~~~
warcode
We've been using scratch in a local code club for children and it is a great
language for that purpose.

You can teach the general flow, logic, and what goes into making a computer
program without the "scary code" part.

~~~
jeffwass
At what age do kids tend to start with Scratch?

~~~
mbubb
I am coteaching an afterschool club - 9-11 yrs. 12 boys and 3 girls. I am not
a professional teacher so the materials on the MIT site are very helpful. In
addition I have a NoStarch book which I recommend.

My last class:

[https://scratch.mit.edu/projects/61701790/](https://scratch.mit.edu/projects/61701790/)

Very rough but meant for demonstration. Was trying to show 2 things - how a
loop works and one way to use simple math to change xy position.

My spiel is in the notes.

It is fun to teach this. We try to keep the initial demonstration down to 10
mins and let them try for the next 50 mins. It is productively chaotic as they
ar ehelping each other and calling out for help from us (the teachers).

The good thing is that it is very hands on. The kids have chromebooks in the
classroom and the scratch.mit.edu site is pretty good as an "IDE". The kids
save progress on the chromebook and then upload it to their google drive.

------
Peroni
[https://www.codeclub.org.uk/](https://www.codeclub.org.uk/)

~~~
MarcScott
Code Club really is an excellent organisation, with some first class
resources.

------
rickyc091
Not sure if you've seen this, but code.org created a teaching manual just for
it. They also regularly run workshops throughout the United States.

[http://code.org/curriculum/docs/k-5/complete.pdf](http://code.org/curriculum/docs/k-5/complete.pdf)

~~~
mattmanser
There's also this in the UK for children aged 9-11, you can volunteer to go
into primary schools to run a club (teacher assisted):

[https://www.codeclub.org.uk/](https://www.codeclub.org.uk/)

~~~
adam-a
I do this. The curriculum is all available on github[0].

I think the first semester (Scratch) is really good. Personally I don't like
the python and html/css stuff later. The material is quite old fashioned,
using terminals and rather dry web pages. It's hard to get kids interested in
this after they have spent a few months knocking out colourful and highly
interactive games.

0 - [https://github.com/CodeClub/scratch-
curriculum](https://github.com/CodeClub/scratch-curriculum)

------
mbubb
I co-teach a local after school club using Scratch. Kids are 9-11 and they are
very much into it. The school has in classroom Chromebooks and we use the
online scratch.mit.edu . That works nicely - we have an hour and try to teach
some basic point in the first few minutes and then the kids are off. It is a
noisy, fun process as they kids help each other and ask us how to do things.
My coteacher is a CS professor at a local engineering university.

Its a blast. Scratch allows them to make little games and animations. They
honestly seem to pick it up themselves.

Another resource that I like is NoStarch press which is an imprint (right
word?) of O'Reilly. They have great instruction books focused to kids and to
adults teaching kids. I have a Python title as well as a Scratch and a
javascript one.

Coincidentally listened to the most recent episode of "Talk Python to Me"

[http://www.talkpythontome.com/episodes/show/8/teaching-
pytho...](http://www.talkpythontome.com/episodes/show/8/teaching-python-at-
grok-learning-and-classrooms)

Professor Curran from Sydney was the guest and he has a site called Grok
Learning which takes kids through a Pythin curriculum. He argues that by
middle school kids should be taught a text based language. He says in the
classroom he just uses the Python interpreter in a terminal.

He aludes to the fact that it is a productive exercize in that you make
mistakes and show the kids a process of making mistakes and fixing them.

I liked Curran's focus on training teachers and his recent contributions to
the Hour of Code are interesting. The Eliza bot example is one where you can
start with a 'bunch of if statements' and refine it over time as you learn new
constructs.

I hope I got his points right - TBH I listen to podcasts as I wash dishes and
get kids ready for bed so missed some. A good listen though if you are
intersted in this topic.

------
empressplay
When I was a child I learned BASIC and LOGO when I was 5-7 years old. I found
the skills I acquired in the process helped me with math and english, to the
point where I was doing both at a college level by the time I was in 6th
grade.

I'm working on a project to "upgrade" classic BASIC versions and make them
more interesting to today's children. We have a proof of concept at
[http://discorunner.com](http://discorunner.com) and there's also an
introduction to BASIC tutorial on that site targeted toward primary school-age
children.

------
vinay427
I really like the insight from Shriram Krishnamurthi at Brown who tried a
similar project.

[http://qr.ae/0GzuL](http://qr.ae/0GzuL)

~~~
mbubb
"Teachers are hard to find" \- Prof Curran makes a similar point in a recent
podcast from "Talk Python to Me"

It is training teachers not only coding skills but the process of doing
something in front of a class where you are going to make mistakes and fix
them in front of a live (and opinionated) audience.

------
brudgers
What integration of the curriculum usually entails is bringing Language Arts
and mathematics into other subjects. By analogy, if you want to integrate
coding into primary school then you have to pick encodings that are
integrable. Logo, Scratch, Python, C, Cobol, whatever aren't because you can't
really use them in Language Arts without a real stretch of the term
integration and a lot of pretending that Logo or Cobol isn't a force fit in a
language arts class...it's hard to write a poem in Perl that compiles.

The way to integrate coding is to pick encodings that extend the ordinary
tasks. The obvious extension of Language Arts is HTML because presentation is
part of what primary schools teach and HTML is highly accessible and doesn't
require any special tools.

The less obvious extension of mathematics is J, which is simply an alternative
to languages designed for the limitations of 1970's era hardware in the form
of hand calculators. Forty years ago, the hand calculator focused on accuracy
over hand calculations rather than extending the possibilities of numerical
manipulation. But summing a list of numbers should be a basic operation...and
in mathematics it is - Σ.

------
akx
Finland's official curriculum will include programming starting next year.

This Reddit thread has good information on that. HTH!

[https://www.reddit.com/r/programming/comments/2ffw1d/program...](https://www.reddit.com/r/programming/comments/2ffw1d/programming_becomes_part_of_finnish_primary/)

------
iamdanfox
I would hesitate to make primary schools kids learn 'coding' because
personally, I find the underlying problem solving more inspiring than learning
syntax.

FIRST Lego League [1] offers a compelling alternative though. I competed in
FLL with a team of other primary school kids and greatly enjoyed designing a
robot (with motors and sensors) and then programming it to solve tasks using a
drag and drop language. Each member of our team could focus on the part they
enjoyed most rather than everyone sitting in front of the computer.

"FLL challenges kids to think like scientists and engineers" and has a
glamorous 'World Final' event that is honestly the coolest thing in the world
when you're 11.

[1]: [http://firstlegoleague.theiet.org/](http://firstlegoleague.theiet.org/)

------
MarcScott
Get a few Raspberry Pi's and start playing around with the projects on their
web page.

[https://www.raspberrypi.org/resources/teach/](https://www.raspberrypi.org/resources/teach/)

------
pykello
Maybe searching about "The Young Coders" may help:

[https://us.pycon.org/2014/events/letslearnpython/](https://us.pycon.org/2014/events/letslearnpython/)

[http://therealkatie.net/blog/2015/feb/17/young-coders-why-
tw...](http://therealkatie.net/blog/2015/feb/17/young-coders-why-twelve-and/)

[http://pycon.blogspot.com.tr/2013/03/how-kids-stole-show-
you...](http://pycon.blogspot.com.tr/2013/03/how-kids-stole-show-young-
coders.html)

------
stillsut
I spent many hours being instructed cursive and "penmanship". So be it - its
the essential foundation to all the notes, essays, etc you do in school.

Likewise, if we want kids to have a foundation in computing, I'd advocate a
computer penmanship course, probably around basic linux commands, basic
networking, etc. Primary school seems too early to appreciate coding, so I'd
focus more on rote learning and drilling.

Boring i know, but I think it would pay off more than learning to drag n' drop
to the LEGO GUI. I'm someone who never got that foundation, and it has been a
burden on my ability to work at a professional level.

~~~
PuffinBlue
I somewhat agree. I worry that a 'fashion' is developing in that it is 'cool
to code' therefore all must learn it at all ages.

You make a good point that it is not necessarily the best thing to do given
how young kids skills differ and you list some really essential basics that I
absolutely agree should form part of the curriculum.

I'd also add that actually disassembling and rebuilding a computer or other
types of electronics should be on the essential list. So many young kids (mine
included) are excellent operators of their little black boxes but have no clue
what's inside or how it physically works.

BUT - all kids learn to write and to read and to count. These are basic skills
needed for life. Given the reality of the world, proficiency with computers is
becoming equally important. It seems prudent to introduce all those things you
mentioned but I think it perhaps does kids a disservice to suggest they are to
young to appreciate coding.

One of my most notable memories from my early years of primary school is
programming a little robotic turtle thing using a BBC Micro and had it
completing mazes and drawing maps on large sheets of paper for us.

I was probably 6 or 7 years old and it was AWESOME!!! We certainly understood
what we were doing and how useful it could be.

So, I guess I'm for a balanced approach.

------
rey12rey
Google's CS-First program, [http://www.cs-first.com/overview](http://www.cs-
first.com/overview) , is great for this.

 _CS First is a free program that increases student access and exposure to
computer science (CS) education through after-school, in-school, and summer
programs. All clubs are run by teachers and /or community volunteers._

I'm a volunteer and I've been quite successful starting them in various
schools thus far.

------
atemerev
When I was in primary school (around 1989), I coded in BASIC (first, by typing
some pieces of code from textbooks to see how they work, then altering them,
then trying to write something on my own — e.g. tic-tac-toe, or date
calculations).

The best modern analogue of BASIC (though much more attractive) is probably
Processing. Lua also works. Then kids should start to learn Javascript to
understand that the real world is not that logical.

~~~
decasteve
I had the same experience. Typing in BASIC from books/magazines in the
mid-1980s and modifying the code after I got it working.

My 7-year-old daughter uses Scratch. My 6-year-old son watches me play code
combat and tells me what to do. I explain what I'm doing as I type.

------
vilhelm_s
There is a big project, Computing at School, to introduce computer science as
a school subject in Britain. They have a sample curriculum thing which
includes learning goals for all years, you may want to look at that.

[http://www.computingatschool.org.uk/data/uploads/CASPrimaryC...](http://www.computingatschool.org.uk/data/uploads/CASPrimaryComputing.pdf)

------
Aheinemann
RoboRally is a turn based board game, each player controls a robot by
selecting a number of command cards which will be executed by the robot like
forward, turn left or right, fire laser :) and so on...

------
edoceo
Coding / Engineering is about problem solving and breaking things down into
component steps. Critical Thinking is required. Don't teach a language teach
the skill.

------
fabrigm
Thanks!!!

