Ways of thinking
There is a petition doing the rounds to have children learn programming skills at school. John Graham-Cumming is discussing it with his readers here.
I've pondered in the past the different ways of thinking about the world and approaching problems and wondered if these might be the basis for a curriculum fit for the twenty-first century. (The learning-free curriculum that is being introduced here in Scotland is certainly not doing the job).
For example, I think that economics is a tool for understanding the world that gives important insights into the way the world works. Indeed in one of the Baltic states (Estonia, if I remember rightly) economics is a compulsory subject at high school. Formal logic is another area that I think is important.
In the same way, I think that programming is a way of approaching problems that has a more general application than simply writing computer code. So I reckon the petition is a Good Thing.
Reader Comments (40)
As someone who has tried (and mostly failed) to teach my kids programming, I'd love some tips on how to do it. In the 'olden days' I was delighted to get my computer to do *anything* so that a Hello World program, or a ball bouncing around the screen was such a technological feast that it spurred me on to greater things.
Unfortunately, in the era of photo-realistic FPS games, or fully interactive environments like Minecraft, my kids want to skip all that basic (but essential) stuff and go straight to the eye-candy, and me trying to make them go thorugh the plod-stuff (which makes up 99% of real coding) just doesn't cut it, they lose interest quickly.
On the other point of teaching Economics - a VERY good idea - listening to people in TV interviews supporting the UK unions who want to strike to keep their pensions - it's obvious they don't realise where this money comes from - they assume there's an infinite pot. Understanding economics might so some way to educating the populace, and modifying their expectations about the scope and costs of any government spending.
ooh! ooh!
What about spreadsheeting as a way into algebra, percentages, how to look at compound interest, mortgages etc?
I spend my life having to revert to paper to rearrange equations so that I can then implement in xls.
You just need to have the real life examples.
Yup programming is a good thing - I'm surprised that it is not taught. Hopefully, even if it is beyond education professionals, some of the kids are aware that their programmable calculators can save them a lot of trouble, if they read the manual.
This tale is: http://www.bus.lsu.edu/accounting/faculty/lcrumbley/RetiredTeacher.html (An illiterate 'education professional' summarizes the history of his career).
Let's hope that Paul Nurse is successful with the unionization of climatology - it has done so much for school teachings standards.
a. from where will they get the teachers?
b. over half the kids will either not be interested or will be too thick to do it.
c. where will they find the time?
I agree totally, I have watched my own subject,geography, being debased from one based on fact and logic to that of an environmentally biased diatribe. Children know more about the slums and forests of Brasil than the UK and explains why everyone seems to be so keen on satnavs these days. As someone who has by a circuitous route returnned to the classroom albeit in a primary school it seems to me that the current curriculum in any of the four countries is incapable of producing anythting which will help us compete in the coming century. I honestly believe that the present education system is largely a matter of "bread and circuses", and if you really want to get on in life these days go private and get an old style education or better still move to Singapore.
'It's obvious to most people that illiteracy and innumeracy are problems to be tackled at school, but it's not obvious that we are now living in a world where logical and algorithmic thinking are very, very important.'
I would of thought that this could be introduced as a sub set of Engineering. At that age it would be better to give a general breadth of future industry requirements which alows pupils to latch onto an area that they find both interesting and a demand for.
Giving a specific topic of programming will focus on games at that age.
I hope this succeeds, will go and sign it. There are quite a few initiatives such as SmallBasic which are intended to get people interested in programming. When Junior is older I hope we will have some game writing competitions and he will get interested. Not obsessed, but interested.
As for myself I learned more after leaving education as coding wasn't taught much in schools. College and university yes (in a really bad way) but not school - this was the mid 80s though.
I don't like curriculum inflation. Everybody with an axe to grind seems to want to get their pet discipline appended to the national curriculum. As an elective computer science GCSE, fine but teaching it before then is just going to annoy those who can't and bore those who can.
Computer programming is more accessible than ever, even compared to the 8 bit micro days of my youth. A web browser is a programming environment so powerful that I would not even have been able to imagine it http://jsfiddle.net/derek/Vjxt2/.
This chap puts it a little better than me, with additional swearing. http://blindcyclistsunion.tumblr.com/post/10164857919/sigh-this-is-why-i-dont-hang-around-with-other-geeks
Maybe as preparation for the real world, we should give every aspiring programmer a copy of HARRY_READ_ME.txt
:)
Please make simple project management...i.e 'how to make things happen' a part of the curiculuum.
(And Latin8 spelings :-) )
Well said...
@The Pedant-General
Forgive me but there is no WORSE tool than Excel to get people into "programming". it is a tool that overeaches far beyond its intended use.
What John is talking about is not programming, but GOOD programming. Good teaching.
I know many programmers (certainly more than 50%) who are BAD programmers who actually think they are good.
I know many non-programmers who would make good programmers...
The limiting factor will be the quality of the teachers. In the IT profession ego often rules over true ability. A good teacher of IT is always able to put their ego in their pocket. Sadly I see this very rarely.
I suggest focussing on teaching "Computational Thinking" (which can -- but need not -- include programming) would be a darned good idea. Take a look at the Wikipedia page for that phrase, or read Jeannette Wing's Op-Ed on the subject (here: http://www.cs.cmu.edu/afs/cs/usr/wing/www/publications/Wing06.pdf). It's a darned good idea.
Sadly, Bishop you have missed the import issue -- the goal of education in the West has been to dumb down the populace. The powers that be -- and who send their children to private schools where such things are taught -- do not want the average punter to have deductive logic or worse, inductive logic training. And GOD FORBID that they have a understanding of economics. And even worse, a realistic background in history without all the spins placed on it today.
No, sir, they want them to learn to do sums so they can follow blueprints and build what they are told, and to have a basic reading knowledge so they can understand instructions. Beyond that is dangerous
A good model for what they want was shown in Metropolis in 1927 -- at least the first half. The same film also served as an warning about letting the likes of Freder from messing with the workers.
No, my good sir, keep this radical behavior up and just wait for the black helicopter to land in you garden one night as spirit you away.
It is a good idea, but what will be reduced in order to allow time for logic, programming, economics, etc.
Even within a narrowly defined field such as Math, would you reduce the emphasis on Geometry?
In 1966, I managed 8 O-levels: English, English Lit., French, Latin, Geography, Chemistry, Physics, Math. (Unfortunately, we had to chose between History and Chemistry.) So I suppose I could have dropped Latin for Programming and tried to fit in another subject. As an Economics Graduate, I would argue against the subject at O-Level - History and Geography are far better foundational subjects.
Back in the 80's you didn't really need a course like that for young people, because kids had Spectrum's, ZX81's and so on (I started with an Acorn Atom). These days it's all point-and-click - no typing in 1,000 line listings from magazines (that almost always totally failed to run).
Now, Software Development is a highly technical area, and you would do just as well teaching children Electronic Engineering, or Mechanical Engineering, than how to write computer programs. The fact that we save these concepts until later is probably correct in my view. I mean basic concepts like reading, writing and simple arithmetic are what Primary School is for.
This touches on the thorny question of the rigour of education in the UK. In England, I have seen someone gain a good science honours degree from one former polytechnic, yet to have acquired so little factual knowledge as still to be unable to pass the pre-1985 GCE O-level in that science, so there clearly is a lack of rigour.
Learning how to write programs, even simple ones, would be of great benefit in teaching children how to reason, because reasoning is one of those transferable skills that has value not only in academic study, but also in the world of work. However, I’m not going to sign this petition as its wording strikes me as muddled and obscure, so I don’t really understand what is in the mind of the proposer.
Oh, I forgot to add... the fewer Software Developers there are, the more valuable my skills will be. So no, let's not teach the kids :p.
Keep it elective, and not earlier than, say, 15 years of age, even better not until the last year before university, as a foundation in algebra, geometry, trigonometry and even basic calculus should come first. It will NOT help to "teach reasoning" to youngsters, it will only distract from that, and delay the mastering of formal thinking (see Piaget), in favor of a misplaced dependence upon concrete thinking (and creating more and more idiotic, physics-free "computer models" in science). Lord save the children from fidgety minded grownups who throw away proven educational programs for supposed "21st century demands". Teach them to learn, then to think, before teaching them somebody's particular, propretary software.
Programming is one of the hardest subjects to teach, partly due to the pupils have such a wide variety of aptitude and experience. Streaming may help and project-based learning may be more appropriate than having a whole class keep the same pace. Some pupils will simply not have the patience/ability to progress far in this subject, so I'm not sure that spending much time on it should be mandatory.
Most pupils seem to enjoy programming a "turtle" with the LOGO programming language, and I think that's a good start with visual feedback. The Lego programming "language", which uses flow charts, makes the whole program visually obvious and avoids any syntax errors (and can take input from switches and sensors, and outputs to motors and lights). I'd probably move from there to JavaScript or python. There are some really nice websites for learning these interactively and JavaScript can obviously manipulate web pages.
I'd personally prefer linking programming with mathematics/physics/robotics/informatics/statistics, but there are some good lessons to be learned in looking at programming methodologies that are applicable to managing any project. Working as a group using source control and allocating tasks with something like Trac could be a great learning experience and would be very applicable to the real world. Of course, this depends on the teacher.
I assume the Scottish curriculum is still a mess. Mixing up programming with learning to use a word processor makes little sense beyond "they both use computers", there's no need to learn hardware trivia about CPU registers, and questions asking whether a keyboard is an input device are demeaning to us all. Able pupils would be much better teaching themselves, which most can do if they have access to a PC and some wet afternoons.
Simple economics would be an excellent idea, the first lesson being that 'Government" has no money of its own and anyone working in the public sector pays no meaningful tax; i.e. money given by one hand is taken back by the other, with considerable processing costs.
Children shouldn't be allowed to progress to senior school unless they are competent readers and have a sound grasp of arithmetic.
Everyone in my Rhondda state school class in the fifties ( 36 pupils) could read fluently and do sums to 11+ standard, even though only 5 went to Grammars. The latter fact was disgraceful.
I am a programmer by trade. I don't mind the idea of a school teaching programming, but, there is a really a more fundamental issue in this.
It is simply ridiculous that the curriculum has to go through a whole political process whereby people either get to force everyone to learn their pet subject in school, or force everyone not to learn it in school.
Compulsory government schools are simply a horrid way of education, and a horrid way to manage the curriculum. Eradicate public schooling entirely, and just watch the tech/computer oriented schools abound, as well as the music/dance, or arts, etc. Also different styles. I bet a lot of that tech schooling would over 2-way video to some kid's iPad as he programmed away on his laptop -- all instantly graded.
Public schooling not only has a stranglehold on what subjects are taught -- worse than anything it has a stranglehold on the way that they are taught.
The petition I'd love to sign is one that eliminates public schooling entirely.
FWIW, my pet subject would be moral philosophy. Kids don't read enough Cicero, Aristotle, Boethius, or Kierkegaard. It brings together a requirement for clarity and logic with history, morality, and constant self-evaluation.
What philosophy does get taught (rarely if ever in primary school) is stilted towards modern philosophers. For heaven's sake, don't gloss quickly over Plato so that we can get more quickly to Peter Singer. *sigh*
I still wouldn't force everyone to study it like government schooling does with a subject. Here in the US the government is too busy forcing kids to read Catcher in the Rye or something anyway.
I am teaching my kids (10 and 12) to program games. They have been using BlitzMax for a couple of weeks and together we have a few small games up and running which they can share with their friends if they so choose.
I did this because programming forces kids to be creative and numerical and logical. What is amazing about programming is that it is not fuzzy. Your code either compiles and works or it doesn't. Getting it to work requires serious mental effort and discipline which no other discipline teaches today. In fact the game is like a corrective teacher. If it does not work as you want, you are told immediately in a non-judgemental way and you then need to force your brain to figure out why. It is 100% rational.
Care needs to be taken to hand hold the kids a bit at the start until they get sufficiently fluent and do not get dispirited by the highish learning curve. After that, you step away and let them go.
It is also fun. I believe that my kids will ultimately get more fun writing games than playing them.
Any school curriculum is finite; think of it as a forty gallon drum that is close to overflowing, mostly kept brimful by the constant inward dripping of ministerial 'initiatives' which are frequently quite counter-productive and even stupid.
Understanding this, work out what has to be poured from the drum before anything more is added, then on top of that work out who is to provide the additional educational and expert input to achieve an adequate level of pupil success. Even more complex, who is empowered to decide on teaching strategies, purchase of software and equipment and definitions of success.
I suspect thomast's excellent proposal for the dismantling of State education has more chance of success than pouring in yet another half-gallon into the already-full forty gallon drum.
Parents can also do this at home. School can only do so much.
And I suspect most achievers in public and private schools are as much a result of parental concern and involvement as the calibre of the teachers or the details of the curriculum.
Roger Pielke Jnr had an interesting topic on his website, about the disconnect between Universities and the job market. Businesses cannot get the right technically skilled people while unemployment is rising. At the same time graduates cannot get jobs. Very interesting comments as well. It overlaps the curriculum issue on this blog. One cannot help thinking that the whole post-primary education system is broken in anglophone countries. We need to look how things are done in Switzerland.
I'd like to see the subject of 'IT' to mean more about how computers (and programming) work than simply familiarisation with the current flavour of Windows and MS Office, both of which will be obsolete by the time today's school-children are looking for jobs. You'd think proper all-finger typing would be a useful asset too - why isn't that on the curriculum?!
There are a couple of problems with this. One, as previously mentioned is that the kids want to jump right into writing graphics intensive games. They are not at all amused by the basics of how to input and output text, manipulate variables etc.
Then there is religion. There are those who will insist that the only true religion is that of OOP. If you don't bow down to the almighty OOP, you will be cast into the flaming pit, along with AGW deniers, pedophiles and other low-life scum.
Then we hit the secondary religion of which IDE to use (or even no IDE at all).
My son did a programming course at school. The teacher tried to teach them C++. I argued that C++ is really horribly complex, and one of the side-effects of that complexity is that when they make their inevitable mistakes, the compiler will spit out an error message that will be totally meaningless to them, and totally inexplicable, unless the teacher wants to start delving into the complexities of C++ and totally derailing the curriculum. I suggested just using C, but she was adamant that it had to be C++ "because that's what employers want". Well, by the time these kids left school, employers wanted Java, and what bit of C++ the kids would learn in six months at school would have to be unlearned and learned again properly.
I remember the look of horror on the face of an "experienced C++ programmer" once when helping him to understand why his code was so abysmally slow, I ran his code in a debugger, and he saw (for the first time) how much code the compiler ended up inserting for him to support all those cool constructs he was using.
Kids don't need to get into that mess.
If it were me teaching, it would be using something like an AMTEL development kit with gcc as the C cross compiler. No graphical games here, but switching lights on and off, reacting to switches closing, light intensity, temperature etc. could make for a very interesting project. These kits are cheap enough that the kids can buy their own -- free software to run on their computer at home etc.
Yes to the idea of teaching basic programming skills - but be VERY careful how it is done for it to be effective.
@Richard Hill - on industry not finding the right skills: The main problem is that companies buy into specific, proprietary solutions. These solutions turn out to be horribly complex once you get away from the canned demos, and as people leave, the company starts wanting VERY specific "skills", knowing this particular product (maybe now obsolete), in a specific environment, in a specific business area, becuase they need/want someone to jump right in, no training period etc. either because the person that did all this left, or because they have hit the wall on getting any more out of their infrastructure and hope some new blood will make their poor decisions in buying this garbage just go away.
Universities turn out people with good basic skills and knowledge. They will never (and should never) turn out people who know all about Oracle Databases, version ABC, running on Jumbo Linux and having 10 years experience in the medical billing sector.
The problem isn't with the graduates (or other job seekers), its with the HR geeks that write the job descriptions looking for a perfect fit, and rejecting all who do not match 100%.
Oh jebus, not the OO is slow argument again. Bloody abstraction payoff deniers. I'm pretty certain any introductory C++ course isn't going to introduce the poor dears to the horrors of template meta programming but I do agree that it would be a terrible language to teach a child. Not because it is slightly further removed from the silicon than C, but because it is a pretty horrible bundle of compromises and accidental features. Ruby or Python would be far more humane.
Tim Bell of the Computer Science Dept and University of Canterbury NZ developed a "computer science for kids" course that had no hands on computer work at all.
It was all based on practical puzzle-solving (such as lining up a group of young children and getting them to do a sort algorithm).
http://www.cosc.canterbury.ac.nz/tim.bell/
Apparently, the kids absolutely loved it. If you contact him or the dept he might be able to get you the material.
Personally, I think there is an over-emphasis of "keyboard-time" in schools, in the context of computer skills.
I like C++. Personally, I've never agreed with the "too complex" argument. I think it is as complex as you want to make it. There is nothing stopping you from writing very simple and straightforward OO or procedural code if you choose to do so. I am not sure it is the best language to start with, but it isn't a bad one. Python might be better for concepts.
For kid kids, like grade school, Microsoft's Small Basic might be a better direction. It is a mini-IDE and language/library specifically for teaching children programming. It is pretty nice, actually.
The big trick on teaching anyone programming, child or adult, is that it is very hard to teach if there is nothing that they really want to do. Making a turtle wander around the screen is great, but only once or twice for its own sake. You learn to move a turtle about so that soon you'll have the skills for what you really want to do, which is X. But unless someone has a desire to do or create X, something to apply skills they are learning, it is hard to keep that drive up.
ask yourself whether you want to train a mind or whether you want to train a pair of hands,,,I suggest that not all children can be handled alike.
The syllabus should be able to allow people to discern whether they wqant to learn programming or whether they want to learn Latin. In his 60s, my old latin teacher leraned to program a BBC micro. It was just a simple language for him once he learned the syntax. However, not many kids can leaqrn to read Tacitus.
I went in search of a kid-friendly program to help teach my son programming and came across Ceebot from Swiss company Epsitec. Fun and full featured with simple and friendly interface. Based on a Java/C++-style scripting language. The program is set as a space adventure and kids (and adults... ;)) write programs to control their robots to complete missions as you colonize worlds and battle alien creatures. Recommended ages are 10-15. 75 CHF.
http://www.ceebot.com/ceebot/index-e.php
Highly recommend this program for learning to program.
It is a good idea, but what will be reduced in order to allow time for logic, programming, economics, etc.
Well, considering that children in the UK spend an average 2.5 hours watching TV and 1.8 hours online every day (mainly on social networking sites), it's hard to argue that there is a shortage of time which could be used for learning.
"Streaming may help": hee, hee, hee, hee.
And I thought that programming was what modern kids received in school...
'Grilled on business and industry reactions to the cuts in PhDs, Willetts brought up the new focus on centres for doctoral training, where researchers spend 75 per cent of their time in industrial settings.'
http://www.theregister.co.uk/2011/09/15/phd_funding_cuts/
Heh,heh,heh Welcome to the real world!
Rule No1....do not presume, that you know what you are doing.
What you think you know, you don't.
What you are sure you know, isn't what we need.
What you are going to know is how to do things properly.
From my first day in apprentiship after Tech college, embedded in memory......forever!
Still can't fault the training.
My personal preference would be for economists to be taught economics, before you try teaching children.
The secondary preference would be for all those with a degree in politics, philosophy and economics to be taught that the rest of us just want to get-on with life.....please note Mr Osborn and Mr Cameron !
As for programming....give all the kids a Sinclair ZX81...and teach them ECONOMICAL programming !