More challenging than it looks
Anyone who things that Word 2010 isn't challenging should clearly be using WordPad. Even something "simple" like finding where Microsoft have hidden the Document Properties is a challenge :-)
Critics of the Government's "Year of Code" scheme are misogynists or snobs, according to the BBC's tech correspondent Rory Cellan-Jones. Rory's frustration is that while billions of pounds are splurged on IT, children are passively taught PowerPoint procedures. That's the limit of the state's ambitions for children. This a …
File -> Info.
Or here's the e-how page on finding the same information in Office 2007:
http://www.ehow.com/how_6180238_document-properties-files-word-2007.html
>>"The fact that you need an e-how page, and that it's different in 2007 and 2010, illustrates my point perfectly, I think."
How do you think it supports your point? Office 2007 takes a whole e-how page. Modern Office is just an entirely intuitive File -> Info. Point being it no longer requires the How To. How much simpler do you need it to be?
To get to the properties panel or the advanced properties you have to click on the tiny little arrow next to the word "Properties". Yes, the one that looks like a heading but is in fact a drop-down menu. Whereas the one that looks like it should do the job (the hyperlink-esque "Show All properties") is in fact useless.
The only thing that surpasses it for dogs-dinnerness is Windows 8.
quote: "The only thing that surpasses it for dogs-dinnerness is Windows 8."
Strange, it took me a week at most to adapt to Office 2010 from Office 2003, and to Win8 from Win7. I've also managed to get a good feel for MATE and Cinnamon, although I've yet to touch Unity (or XFCE for that matter). Maybe it helps having gone through most of the GUIs since GEM on the ST, and Windows specifically from 3.11 onwards through to 8.1 today. Maybe it also helps that I rarely touch TIFKAM and just stay on the desktop for everything.
I still fucking struggle with regular expressions though. Could've done with being introduced to those at school, as hopefully the concepts would have sunk in easier ^^;
I consider regular expressions quite possibly the most useful "language" (feel free to argue that one) that I've learned in my time. It's also not a super-high bar to entry (though I guess you guys above might disagree) and I'd probably place it among the disciplines I'd try pushing at young students. Even after grasping the very basic structures, you feel you have a lot of power at your fingertips, and that gives you the impetus to keep going for the more advanced bits.
The only fly in the ointment is the range of conflicting dialects, so before we start teaching I recommend a pogrom of all competing dialects leaving only the Daddy, PCRE, standing.
Darn tricky zipper on this asbestos suit ... ;)
[Icon matches: Pari,Paris]
Instead of forcing coding (whatever that turns out to mean) upon our young. Give them an hour or more a week to go out and find what interests them and let them explore it. Some will find coding/computing and that's great, some might be interested in the mechanics of a lawnmower but if that's what interests them, that's also great. Give them the option to make up their own minds and guide them if they need help.
Sure, they need the mandated skills, Reading, Maths, etc. but coding or computer based work of any kind takes an active interest to be able to follow it to any meaningfully competent level.
I learnt to write BASIC on a Vic20, not because my school forced it on me but because I found out about it and was curious. I'm still eager to learn and my career is based around that continued curiosity.
How about the #YearOfChoice ?
I remember typing out eight pages of code on to my vic 20, from a magazine that promised the results would be spectacular. After 10 days of trying to fix syntax errors and find a single typo or wrong bracket...gave up and never felt the need to attempt coding ever again!
It appears that everyone involved in this Coding for kids, actually has no idea what coding is. It seems even the teachers who are supposed to teach it can't actually program any code. Someone, somewhere is getting rich from this and the kids will be not much better off than before.
Show kids how they can hack other computers with a bit of code, gcc and chmod and they will learn to code off their own backs.
Not necessarily. I got frustrated trying to learn on the Oddessey my Dad bought and gave up.
The following year the high school got some TRS-80s and the teachers were learning how to program them. I'd taken an elective class in Probability and Statistics (go figure for someone who hates math). The teacher gave us what he initially thought was an moderately difficult problem. Later he realized it was exceedingly complicated and would require a computer to solve. So he setup an iteration to produce the computation. The next day the computer still wasn't finished and he turned it off and explained it to us. Then he had us do an experiment to calculate expected parameters. I asked him about getting a broader experimental base using the computer and he set me to work on it. That was how I learned programming.
The next year we had a formal class on it which I took. I actually knew 90% of what they taught because of my previous work with the prob stat teacher, but most of those kids didn't.
I haven't gone into programming professionally. I do user support. Some of those students who learned programming in the class did go into it professionally.
A whole HOUR?!!? Omg, what if paedo's get them. We can't allow them any free time to investigate things for themselves and find themselves and get to know about their own interests!! They should either be at school, (so their parents can work longer hours) or asleep!!
THINK OF THE CHILDREN FOR CHRIS' SAKE!!!
Paul,
I also learned to program on a VIC-20 in BASIC (at age 11) and it's served me well ever since. (not BASIC, but the skills and interest I picked up).
Problem is with Twitter, Facebook, Minecraft, youtube, Snapchat, and hundreds of TV channels to distract (not to mention xbox) our kids don't really get the benefit of being BORED. For me it was boredom that led to my inquisitiveness, but I'm not sure that if I was born 30 years later I might be the same as kids growing up today.
Too much shiny shiny.
One of those is not like the others.
One of those is not passive. One of those promotes thinking and does not destroy neurons.
That one is Minecraft. Minecraft requires patience, planning, observation and perseverance, not to mention some amount of battle tactics. It can even scare you now and then.
Minecraft is a plus in a sea of negatives.
In it's defence, YouTube has empowered to some extent a new generation of film makers, doing things with on a shoestring budget that wouldn't have been possible 20 years ago.
Of course, it has degenerated. For narrative storytelling or anything "arty", the likes of Vimeo have carved a niche away from cat videos and children biting their brother's finger, but YouTube still has gems and certainly the wider userbase.
If you live in one of their favoured cities (such as London), YouTube have even opened small studios where indie fim makers can access equipment and expertise for their projects, and are now providing an in-browser video editor and a library of rights-free music so you can get started without having to shell out a lot for software or getting nobbled for inadvertantly using someone's music. That leads to
Like Minecraft it has an active element, one that could lead to a career in film making, photography or associated creative arts.
That was an expensive hobby to get into in the days of film or tape and dedicated hardware. Now you drop files onto your laptop and edit, colour grade, etc, etc.
It might even lead to an interest in coding if you end up writing python scripts to generate behaviours in the likes of Blender.
Totally agree about Minecraft, apart from PVP worlds, obviously. My 6-year-old wrote a Lua script in the ComputerCraft mod for Minecraft - not a bad opening gambit! His older brother is doing Scratch at school and PowerPoint presentations seem to have been dropped (finally), so things are heading in the right direction. Regarding the computing fundamentals from his maths lessons I'm less hopeful about those - I'll have to try and pick up that slack.
For me I was lucky enough to get a C64 in 1983 aged 12. I started with Commodore Basic (ah PEEKing and POKEing) then Simons' Basic, then assembler. Then in '89 I got an Amiga and started again (multi threading!). At Uni I did C, Smalltalk (Object Oriented, classes, inheritance) and (shudder) Ada.
I discovered I not a natural programmer, but will plug away if I'm interested in the end results. This stood me in good stead with the MOD when they gave me 100,000+ lines of FORTRAN 77 code to debug in my first year there... Now I have a curious 12yo daughter an RPi + Scratch + Python + PiCraft and as long as she can see the end result she's loving it.
Paul Leigh, your suggestion that young people be given a free choice of what they study is far too sensible for politicians to consider.
It does remind me, though, of something I once read in one of Freeman Dyson's books. He said that, as a boy, he studied mathematics as a form of rebellion. When his parents, concerned at his studious habits, took him for a summer holiday on a farm, he quickly discovered a suitable hayloft and spent his days as happy as a clam reading about advanced calculus while the parents imagined he was off "enjoying the fresh air".
Dyson then expressed alarm that the government of the time was trying to launch a drive to encourage more children to take up mathematics. As his main reason for devoting himself to it was to rebel against adult expectations, he feared that government support would prevent any of the right type of student from ever taking an interest in math.
Kids will learn better when they are motivated, and are learning about something they are genuinely interested in...
That said, learning the basics of coding is really just an extension of maths and language.. And while the majority of people will never use these skills once they leave school, the same is true of many other subjects.
On the other hand IT related teaching is badly in need of reform... Teaching kids how to use specific versions of mundane applications is extremely counter productive. By the time they leave school the software they have learnt will no longer be in use having been replaced by newer versions or even by something else entirely (when i was in school we were taught wordperfect for dos).
What's needed is to teach general concepts in a multitude of different applications, so that people can easily adapt to different applications.
The point is that kids don't know what interests them always. I didn't know I would love computers so much until I owned one. I was perfectly happy with my BMX.
By forcing children to do coding, learn maths, history, geography and sports it means you give them all an idea about many things and those that really love the subject will develop their skills accordingly.
I wouldn't force them to spend an hour a week for each year of school on coding. But I think it would be worth spending an hour a week on a few key conceptual areas once students have the prerequisites for the material.
* How an early processor handled its computations.
* Simple cash register program. Total less than ten items, make change from cash tendered. Do both intereactive and data sets.
* Address Book (for string handling purposes)
* Blackjack game
* Same day birthday bet simulation (How many people do you need before there's more than a 50% chance two of them were born on the same day of the year)
Similar work should been done for other non-standard but technical areas of study.
The offer additional optional classes.
This post has been deleted by its author
Keeping children dumb is a important function of modern schooling. Society needs only a few percent smart people, the rest are better off not being given a proper education, because that will only lead to a sense of failure when they find themselves being unemployed or sitting at a supermarket checkout counter.
All most children need, is to be able to sign their own name, read street signs and a vocabulary that lets them understand television commercials.
Not every kid should be a coder any more than they should be a car mechanic. The people with a natural affinity should be identified early and encouraged in that direction. For everyone else, a good grounding in using computers, staying secure online and basic troubleshooting is all they need. The whole idea of everyone being able to code is daft. It's complicated, not everyone can do it. Like fixing a car engine.
>>"The people with a natural affinity should be identified early and encouraged in that direction"
Disagree. I think over-specialization from an early age is very damaging. I had almost no interest in computers when I was a child. I was mainly interested in English Literature and History and Physics. I got into programming much later on at University and became a C/C++ programmer (though I'm rusty as Hell with the language these days, the foundation it gave me still makes me a better coder in other languages than most other people I know using them). I never found pursuing different directions at school a hindrance to later learning and believe they've actively assisted my later career.
If all school education becomes vocational (which has been the major shift in direction over the last ten years), then we lose much of our ability to progress and cross disciplines and adapt to changes in the marketplace.
I agree globally with that sentence, but encouraging a natural affinity does not necessarily have to end in specialisation.
It can very well take the simple form of a voluntary hour spent learning to code via interesting activities, such as in a club house of sorts. Meanwhile, during the day, the child remains in the general courses of maths, language, history and geography and science. Just throw in an available hour on coding with someone who can answer questions, and let the interest bloom.
both down at the lowest levels (coding device drivers), at higher levels (reviewing JQuery code) and many stops in between (Python and even PHP), as well as been a project manager, I feel I at least have some credentials to comment on all this, whereas most of the people involved in pushing this appear to have little to none. Especially the person yesterday who might be a great manager and co-ordinator for all I know, but claims "coding" can be taught in an hour and yet has apparently never taken an hour to actually learn it.
And having contrasted my experience and knowledge of the industry with theirs, I would like to say categorically that what they're pushing is a bad idea.
By all means expose children to programming. Let them see what is involved in it and give them a foretaste so that they can make an informed choice about entering that profession and studying it at a higher level. Just as they should have a foretaste of a wide range of other careers. But don't waste huge amounts of time and resource teaching it as a full subject. All of this will be taught far more effectively and properly at University level. It's dishonest to even suggest that a GCSE in "coding" or whatever they choose to dress it up as, will have much real world value.
Nor am I much fond of existing ICT which focuses on using specific software packages and might as well be called a GCSE in "rapidly out of date skills".
What does have a lasting value, and which we are weak in, imo, is core subjects such as maths, language, history. These things are the foundational skills and subjects needed to then learn further skills. What good is knowing what functions are where in Excel or Calc if you lack the mathematical understanding to make use of that? And if you do have the understanding, then finding how to do what you want in those packages is just a few clicks away. I was asked to work something out for a friend. I needed to use Binomial Distribution. So I typed in "Excel Binomial Distribution" and up came the function I needed. Typed it in and had the answers my friend needed in a few moments. The reason I could do that was because I had been taught maths, not because I had been taught "spreadsheets".
And if that is the case with something like spreadsheets, how much more the case with something difficult like programming?
It is not snobbish to say that computer programming is a University level subject. I will very happily take the time to teach and encourage any child who wants to learn about programming. And there are plenty of kids who are smart enough to learn it. But that doesn't mean it is wise to try and make it a basic subject, because it isn't. All that will happen is the inevitable clash between schools and ministers and parents wanting children to do well at exams on one side, and programming being an actual difficult and very large subject on the other, will be resolved by quietly degrading the subject to a parody of actual programming (sorry "coding") which is near-useless as a professional skill, completely useless as preparation for University level study of the subject (they will spend the first half-year un-teaching what was badly taught before) and most crucially, takes away enormously from time to teach foundational subjects such as maths.
And no, I'm not a misogynist, either. There were a few misogynistic comments here yesterday based on the looks of the spokesperson interviewed. But nearly all of the comments I read against it had a solid, reasoned basis. Which is that all this is a terrible idea. There is a very small amount of very low-hanging fruit that GCSE-level "coders" could take in the business world. Minor edits of template websites, etc. That fruit has long since been gobbled up by automated tools and India which we cannot compete with in terms of cost.
Huh. El. Reg ate my title whilst my comment was sitting waiting for moderator approval. (What triggers that, anyway? Comment length? My other comment on another story appeared right away and I wrote it after this one). Anyway the reason for the somewhat elided start to my post was because the title said I started working in the field of programming around fifteen years ago. At which point the current people pushing this program would probably be at school. Oh dear - am I that old? :(
"Huh. El. Reg ate my title whilst my comment was sitting waiting for moderator approval. (What triggers that, anyway? Comment length? My other comment on another story appeared right away and I wrote it after this one)."
Certain artcles (like this one) are flagged so that all comments require moderation.
I think in other cases, certain keywords may trigger moderation, also (maybe?) weighted against posters general posting history and reputation, but I'm not sure on this.
Can't agree more, especially where I am located and the frequent curses I hear about the UK first year undergraduates being so utterly useless compared to the foreign intake students. So they have to teach down to the lowest common denominator and teach the basics, boring the hell out of the more competent students and because the basics have to be taught so quickly, quite a few drop out as well.
Meanwhile schools carefully teach our children how to pass exams and look like a worthwhile statistic, teach them, parrot fashion, how to use a particular company's products and yet they entirely fail on the basics, including the combined sense of exploration and learning that teaching is all about. Now we have huge numbers of mathematically and language illiterate kids coming through school and this has always been inevitable as while the cuts and policy changes are short term, their impact is long term. It's not just that these kids have suffered with poor basics (maths and language) but they have repeatedly had all drive and exploration and creativity beaten out of them as none of that helps to pass exams. These, of course, are the same exams that our "smarter" children are getting better at every year, despite the fact that, for example, the current A level maths curriculum rather suspicously closely matches the old GCSE/O-Level curriculum of a decade ago.
Some of the most important things I learnt when I was taught Computer Science (not word processing or powerpoint bothering) was an appreciation of the history of computing, how we go to where are (or more accurately, were then) and the basic sociopolitical issues around computing in general. This provided the building blocks for the basic of how computers operate (Input > Process > Output), boolean algebra and logic, how computers interacted with humans (both input and output interfaces), how information is stored and transmitted and that was before we looked at a single line of code. Let alone code that isn't code... e.g. website markup or style-sheets.
@h4rm0ny: "It is not snobbish to say that computer programming is a University level subject"
I disagree, I can remember kids gathered round an Apple II with a book of BASIC games and religiously typing them in. Getting the computer to do anything gave them a great sense of achievement. Have you ever seen kids out of school-time actually volunteering to do their homework?
"takes away enormously from time to teach foundational subjects such as maths"
Trying to figure-out an algorithm is a form of maths.
>>"I disagree, I can remember kids gathered round an Apple II with a book of BASIC games and religiously typing them in"
Firstly, I didn't say no-body pre-University age is unable to study University level material. There are plenty who can and some who do. But it remains a subject best taught at University because at the school level there is so much foundational work that needs doing. Secondly, religiously copying a game program in BASIC is fine and good. But there is way, way more to programming as I'm sure you know. The problem is that at school level, all you will get is that copying of a game. (Actually worse, it sounds like all you get is some basic HTML mark-up and parrot-taught JavaScript tricks). That is useless for working as a programmer and of less benefit to someone starting a degree in Computer Science than good language and maths skills - both of which are rather poor in this country for school leavers.
If you require re-wording, then let me say this: "it is not snobbish to think that teaching programming in a useful or even slightly complete way is a university level activity".
>>"Trying to figure-out an algorithm is a form of maths."
Well, Computational Complexity is - working out that Quicksort has a worst case performance of O(n2). And Formal Specification of algorithms to prove correctness is a form of mathematics. But just trying to figure out an algorithm can as often just be puzzle solving. No more maths than catching a ball demonstrates you understand trigonometry and acceleration. You might be able to catch a ball but you can't build a catapult and tell me where the shot will land depending on the weight of the stone.
Besides the above is a strange counter-argument to something I didn't say. I never said that algorithm creation wasn't (or more precisely couldn't be) maths. But that it took away from teaching foundational subjects such as maths. The difference ought to be clear. If I teach someone logarithms, they can apply that foundational knowledge of maths to working out the Complexity of an algorithm and other things. If I dump a formula on them and say "use this" they wont fully understand it, will misuse it, and will only be able to repeat what I've done, in practice, not apply it creatively. Even though that formula I gave them for working out the complexity of an algorithm is "maths".
"“Trying to figure-out an algorithm is a form of maths."
Of course. However I'd argue it was much easier to go from knowing Logic and Set Theory to algorithm design than it would be the other way round. Logic is a useful way to analyse anything, and I’d agree taking it further into the realm of computing is necessary to be any good as a developer. A "knows some html" type developer, such as schools are likely to produce may well not even be able to do that however, thus leaving them knowing a little syntax from a language which, by the time they get their first job will inevitably have moved on.
Furthermore depending on what you’re doing (I’d confess it didn’t come up much in my time creating database front ends, but it regularly crops up in pretty much everything else I’ve ever worked on) some knowledge of maths will make you a better programmer –I find my self using matrixes all the time – so much the better if you know what you’re actually doing when you convolve 2 matrixes.
>>"You could say the same about maths."
No I couldn't because I don't think for maths it is the case. Okay, you can explore maths more thoroughly at University level than at school level. But the difference is that maths breaks down into useful stuff even at school level. If a pupil learns trigonometry, that's still all valid and good as a basis for other things. If a child learns the a dribble of HTML, they're just going to produce crap websites with it.
My first programming experience was on the MSX, I had this list of games, and I wanted to sort it by name. It quite probably was the ugliest, slowest, most unsightly sorting algorithm that has ever been written. Ever. It did work though.
I've learned the most by solving actual practical problems, such as my sorting program. Give kids a practical problem, and let them solve it. Along the way, they should learn how to program.
Actually, I find that this works a lot of stuff, not just programming. Of course theory is important too, I can now write a *proper* sorting program, but practical problem solving not only keeps you motivated, but you'll also grasp the immediate benefits of what you're learning (which is not always immediately obvious, especially for newcomers and/or kids). I certainly find it the best way to start things off with.
To be fair to him, he is the technology correspondent, not the computer science correspondent.
I would say though that the only thing that you can be certain is on a machine is a web browser, so why not start coding there. Coding a markup language is still coding and it is immediately rewarding. Coding in a language which requires download and install and may or may not be available for free (if at all) on your chosen platform is great, but it's entirely possible that the person who would have tried it on a whim got bored hacking through the internet trying to work out what they need.
Joe average will take "coding" as synonymous with "programming". On that basis, your assertion that "Coding a markup language is still coding" is incorrect.
I will cite https://www.cs.tut.fi/~jkorpela/prog.html, where it is clearly explained, including the definition of "coding" under which your assertion would valid - but. as I say, that's not, to my mind, what people generally mean when they apply the word "coding" to computers.
I would say though that the only thing that you can be certain is on a machine is a web browser, so why not start coding there.
What complete bollocks. Marking up a web page using HTML is exactly the equivalent of emboldening or italicising text in a Word or Libre Office Writer document. It is doing exactly what it says on the HTML tin: marking up text. This is not coding because it does not involve writing executable logic.
Coding involves designing and writing executable expressions using a language designed for the purpose such as C, Java, Python, Perl, assembler or even hex machine code. The result is to produce something that accepts input data, applies the logic you've written to it and outputs results derived from the input.
Anybody who can't see the difference between coding and marking up a bit of text should not be given any job more demanding than school dinner lady.
@ Martin Gregorie
What complete bollocks. Marking up a web page using HTML is exactly the equivalent of emboldening or italicising text in a Word or Libre Office Writer document. It is doing exactly what it says on the HTML tin: marking up text. This is not coding because it does not involve writing executable logic.
And yet it has it's place. I'm working on a project with my girlfriend at the moment - she's a web designer, spends most of her time in html and css, but a fair amount of javascript (which does involve executable logic).
I'm figuring out the maths, developing the database and (in this case) writing the PHP.
Javascript needs context, and that context is HTML. HTML is a good lead in - instant results with no need for an interpreter or development environment however modest (well, the browser, and everyone has one of those anyway).
I can develop the most advanced, efficient beautiful system ever created, but if users can't figure it out because the UX is god awful (or there's no interface at all) then it's pointless!
Of course web development is only one aspect of software development, but a bit of JS can happily lead into Perl or .NET web development which leads to compiled application development.