"mathematics is just another language"
Rory Cellan-Jones yesterday returned to the scene of the crime after his piece last week detailing the day he spent in Silicon Roundabout "learning computer programming". Rory had spent a day learning HTML – "a programming language", we were told – and returned humbled, as truly humbled as Uriah Heep, at the awesomeness of it …
"King of languages", eh? Do let me know how "Fancy a brew?" translates into maths.
Now I'm a big maths enthusiast myself, and am even prone to a spot of programming. But I do think it would be best if we distinguished between human languages as used to communicate with each other, and those more abstract forms of maths and computer programming.
"...by understanding maths....art, history,
I think what he/she meant was that mathematics provides to foundation of test and proof for all other sciences - which it does - not that you actually understand all of the other sciences.
Even some of your list would suffer without lots of fundamental mathematics (statistics, game theory, logic, differential equations, probability, etc), specifically politics, philosophy, and geography - and even the arty subjects have some maths relationships (think golden ratios and symmetry in design/art for example).
I agree with you though - understanding mathematics does not mean you understand the subject that may rely on it (which mainly tend to be science-related subjects)
Hmmm. Art and Design benefit from an understanding of mathematics - as does Music (the two are intertwined so closely - is that why you didn't include it in your list?). If you look below the surface, you'll find maths in just about every single specialty, one way or another.
"Mathematics is just applied logic."
That's like saying programming is just binary (or even programming is just HTML coding!)
I get it - you did the maths version of this 'programming' course and now you think you're a mathematician 'cos you know what True and False are. :-) [joke]
So I'll add one. When I taught (and examined) A-Level and GCSE ICT between 1998 and 2004, the focus was on "problem solving using fourth generation languages and commercially available software" - in other words, what most people would encounter. It wasn't about just using MS Office (since that was what we had), it was about customising it to do tasks more efficiently, hide the interface and make custom forms, manipulating data etc. The skills I was teaching were those of software engineering (Albeit in a rather cut down form): define a problem, analyse the data flow required, utilise available tools to solve the problems, test, debug, rinse and repeat. Agreed, we weren't using Java, or Pascal, or BASIC, or C++ - but we were scripting, and customising, and introducing children (most of whom at the time did not own a computer, and certainly did not have one with a built-in programming language) to the fundamentals of programming theory. However, those who DID want to follow the path of programming could, through the little-known Computer Science GCSE and A-Level, which is much closer to what I took as a Computer Studies O-Level back in '86, a time when we all we had was access to machines which more or less communicated solely through the BASIC interpreter. Maybe the 'Pi will recapture some of that, and create a new class of Python literate children. But even in the heyday of the BBC Micro, the Speccy and the C-64, the vast majority of children knew enough to turn it on, type "LOAD PACMAN.COM" (or "*chain elite.exe"), press play on the tape deck, and then play the game. Very few of my friends outside the Comp Studies O-Level class had the remotest interest in programming.
Now, I freely admit I'm a bit out of touch with the British education system (I left to teach in International schools in 2004), but I suspect that the people clamouring for "moar [sic] programming" actually don't know what is involved in an ICT exam, and what is available as an alternative.
This is going to sound appallingly arrogant but fuck it...
The thing that educated me most about computers wasn't the clapped out BBC Micro I had in middle school, because it was just one program we used on there to teach us how to form sentences, a task that could have been more easily done with a blackboard and a book.
It wasn't in secondary school either, where we used Acorns for 5 years and only had a brief glance at Windows 95 in our final year and what "IT" information was in the course was confused and pointless.
No, my real education started at the age of 5 or 6 with my Amstrad CPC and learning to type out lines of code in BASIC. Fiddling with bits of information here and there to see what would happen (hint: it usually ended in the phrase "syntax error").
The next phase of my education came with my dad's 286DX PC and a floppy disk that offered to teach me the mysteries of MS-DOS. It started as boring distraction but the more I messed around with file systems the moer I began to enjoy myself and the knowledge I was gaining.
Phase 3 still haunts my nightmares even now and it's all thanks to Desert Strike. A highly frustrating game in itself but even getting to the final mission of the final campaign and dying to a lack of fuel was nothing compared to getting to actually run. Yes, from this monumental pain in the arse I learned how to edit config.sys and autoexec.bat files - the arcane mysteries of EMM386.exe, LOADHIGH and HIMEM, all trying to squeeze the right mix of memory in order to run it.
Then came Windows 95 and my inevitable surrender to a non-command line OS. Again, most of what I learned came from trying to run games - things such as drivers, installing new hardware and basic PC housekeeping. My dad had finally relented at this point at got me my own PC at last. The blistering speed with which it ran when it had a whopping 16Mb RAM.
I guess the point of this horribly self indulgent wall of text is that most of the stuff I learned about computers didn't come from school tuition, which in my teenage arrogance I saw as being vastly below me, but instead came from crashes, debugging and a burning desire to play games.
I still have fond memories of almost failing my computing A-level. I got bored with the database they'd asked us to work on and instead spent my time building a quite passable game of pontoon with an AI that knew when to bet and when to hold.
You are talking about ICT. This is essentially a small part of what used to be called "Office Skills". It is the successor to typing and shorthand, without the still useful touch-typing. ICT does not have much to do with Computing Science or Computer Engineering (hardware or software). Yes you can use a computer workstation as a common tool for ICT and Computer Engineering, just as pencil and paper can be used for both Algebra and Poetry.
I did GCSE IT in 2005. It was learning to use Microsoft Access and taking screenshots. Nothing else.
The problem, to be fair, is working out how to go from there to teaching programming. There's not a lot you can do with a bit of knowledge of programming. So maybe teaching HTML is a good place to start: it's more likely that people will want to build their own websites and learn a bit more than build their own apps and etc.
My advice? Take the kids away from the computers for more of it. Teach ICT like any other subject with a blackboard and pen. Ditch any requirement for schools to use software that isn't open source. Make it based on OpenOffice/LibreOffice, cloud services or (ideally) linux.
It is less about what you have got, more what you do with it!
Access is a great way to get into Visual Basic because you can't just 'record macros' like you can in Excel etc. and when you are asked (or 'tasked') to do more than just enter data you get to learn the power of programming (making it do what you want instead of what it tells you you you can have)
I don't know about OpenOffice etc. but that would just be the same as MS if you don't go beyond what it gives you. Getting a Linux installation to work can be educational, but is also not really programming - and is getting easier and easier now anyway (isn't that what the various distro's claim now one-click installs?). Even website building is point and click now as content management systems have taken away the need to write your own php code.
As noted by a few people above, programming comes from a need to do something which you can't do currently. It can (and should) start with problem formulation and then go through research into solutions and then experimenting with code writing. It is a set of skills which is much more than just knowing the programming language and - just like the mathematics from which computing is derived - teaches a great deal of life-skills, not least grammar! (Oops, time to turn off the rant mode.)
The issue seems to me that we have replaced attempts to teach problem solving in schools with simply imparting information and training people to use existing tools. That is great for turning out people who can do todays mass-market jobs, but just seems so limiting in the long run.
>There's not a lot you can do with a bit of knowledge of programming.
You can teach people how computers work, that they follow programs, how mistakes happen, that anything on a computer isn't automatically correct.
There's not a lot you can do in geography with a bit of knowledge of ox-bow lakes either.
I don't know that I'd agree that you can't do much with a little knowledge of programming - especially if you've been taught the basics of Office software (and/or others).
If you've played with Word, Excel, PowerPoint, Access, OutLook, etc., you must know about the IDE that comes with all of those applications (and their open source counterparts) and how you can program any of them to do all sorts of things.
One of my contracts (as a Technical Writer in a regulated environment in the US) involved writing VB code such that any MS Word document based on my templates was capable of checking itself on being opened to make sure it contained certain minimally-required features and flagging any identified problems as well as creating a user-specific log file of those issues.
I devised the algorithms necessary to undertake a variety of tasks (some of them with fuzzy logic) and coded, tested, debugged, implemented and documented everything. Great fun to do and immensely satisfying.
As someone currently doing an A Level IT course I'll give you the unit titles, then you can see how bad it is!
1: Digital Business Communications (Word/Powerpoint/Email)
2: Collaborative Working (creating a magazine pullout feature in publisher in a group using e-mail)
3: Problem Solving (This is a research task. Think of an issue, carry out a survey, present your results)
4: Creating a digital showcase (Flash with some very basic animation and action script (buttons, timeline control)
9: Work experience in IT
20: Web Authoring (using a WYSIWYG editor).
Full breakdown - http://ocr.org.uk/download/kd/ocr_10557_kd_nationals_centre.pdf
Other units available include producing a business plan, music technology and art for computer games.
And they wonder why people are bored stupid and uninterested in IT?
I would argue that HTML markup is exactly the sort of thing that makes a good start for teaching programming. It's a gentle introduction, which has immediate results, this is very important in teaching. One the one hand pupils who aren't particularly interested in computing and will probably do nothing other than this initial taster, get a basic idea of how stuff works under the hood, albeit not very deep under the hood. On the other hand, pupils who are going to take things further get a good base of logical thinking and how to deconstruct a problem into manageable chunks that can be handled by the system, which is an essential skill for teaching.
"I would argue that HTML markup is exactly the sort of thing that makes a good start for teaching programming."
I have to disagree with you there.
HTML is nothing like programming, so doesn't even come close to giving an introduction. The best it does is say "on a computer, if your type some odd-looking words and symbols it changes what happens".
This is where BASIC is actually very good as an introduction. Type PRINT "Hello World" and it does so. Very immediate results, but it is actually programming. I don't like BASIC myself, but IMHO it is the best available tool to teach an introduction to programming (although I think that's all it should be used for, with a view to moving on very soon afterwards).
BASIC, by modern standards, is a terrible introduction to programming, Pascal or MODULA-2 are much better.
How many computers available to school kids have any programming language? All computers, by comparison, have a notepad (or similar) and a browser.
It's about gaining initial interest in the subject. For example, in chemistry you blow something up, it's not really chemistry (or at least the way it's done isn't) but it's exciting and gains initial interest.
"BASIC, by modern standards, is a terrible introduction to programming, Pascal or MODULA-2 are much better."
No , its a terrible programming language to use for real programming, but for an *introduction* its perfect. The syntax is simple and concepts are easy to grasp and thats what novices need. They really don't need to worry about syntax quirks or objects or procedures when they can't even understand if-then or loops. Sure, after 6 months of Basic move them onto something more serious, but for people who know nothing about coding its pretty much perfect.
In my day as a teacher, we would try to inspire our pupils (shows my age) by getting them to do something that was intruiging and challenging. The best IT toy I used was BigTrack (tm) which was an excellent introduction to the programming language Logo.
Of course you could argue that was just 'playing' - and so it was, just like my generation learnt most of it's programming skills.
There are 2 distinct points in my life that I remember thinking how much I liked tinkering with computers.
1 - a teacher in primary saw I was eyeing up the bbc micro in the corner of the room and set me a task - write a program (BASIC) that asks you what flag you want, and then displays that colour flag for you. Then he left me to it, occasionally coming over to see how I was going on, praise me on progress, help me on bits I was stuck on. I was about 9.
2 - playing with LOGO and something similar to the the big track thing (looked more like a turtle though) - this was again primary school.
Secondary school it all went down hill. I got taught that computers worked by having little men sat inside the keyboard, and they run up and down the wire shouting at people inside the monitor to change picture.
I also got banned in secondary school from using the bbc micros and (when they eventually got them) the early windows PCs. Why was I banned you [didn't] ask? For changing a couple of strings in menu system on the BBCs, and for changing screensaver text on a windows machine. Apparently it took them weeks to figure out how to change them back (honestly), they didn't trust me to change them because they didn't understand what I was talking about when I described how to do it.
Seems like with the right teacher you can get inspired and learn alot - with the wrong ones they will punish you and hold you back. I eventually regained my love of tinkering in college, and work as a dev now. :)
Newly arrived BBC micro sits in corner of classroom. Cassette player doesn't have auto stop. Teacher insists that play button remains pressed in order for computer to function despite the protestations of the cassette players motor.
I pressed stop and received a monumental bollocking about how I'd have to pay £500 for breaking the schools computer.
Of course I was right and nothing broke. But it just proved how moronic teachers were back then. Even today the IT teachers at many schools are just people who know how to work Word.
Late 1980s-early 1990s my computer science teachers were:
A geography teacher who...I'm not sure why she was chosen. Maybe she had a computer at home and space in her teaching schedule.
A maths teacher who, I guess, was chosen because "maths and programming are similar, right"?
A languages teacher who had done some computer programming in university. When punch cards and batch jobs were the way things were done. Made for some entertaining and enlightening stories though and helped set me up for year 1 of university where...they still were running programs overnight and leaving your printed output in a slot with your name on it. In 1994 (my university IT education turned out to be almost useless in the real world, but that's a different rant).
Equipment was a small lab with networked BBC micros (about one for every two students, which we had access to for one or two periods a week) and later a dedicated classroom with almost one RM Nimbus 286 machine per student which were almost, but not quite, compatible with actual PCs running DOS.
Don't get me wrong, they did the best job they could, really. Back then they knew this IT thing was important somehow, but they were still feeling their way around how to teach it. I did more than one case study on how a bank ATM works, for example. The focus was on learning how computers work (by that I mean actual computing fundamentals, as opposed to "press the power button to turn it on") and how to program them. But I didn't really learn anything new that I could carry into my career as a developer that I hadn't already learned 5 years earlier by hacking around in BASIC on a Spectrum. Maybe half the students wanted to learn but entered the classroom knowing more than they would ever be taught and the other half had opted for CS thinking that they'd get to play games for several hours a week!
What was kind of neat was that we had complete free reign in what we did for our A-level project. They hadn't nationalized the curriculum to some lowest common denominator yet. Out of our crop of projects we had several games (mine even used the mouse and bitmapped graphics, which...er, well, we were never taught, but I did convince the teachers to let me look at the full documentation for RM Pascal and figured it out from there) and some which were more traditional data-munching tasks.
Also, while I was busy in university learning how to wait for my printouts, a couple of friends were in a "university degree equivalent" course at the local technical college being taught that you had to turn the wordprocessor on with your thumb because of static electricity, and that typing too fast would cause the computer to get "stuck" (you know, like a mechanical typewriter).
It could be argued that starting with text markup is analgous to a program in that the engine processes the instructions to generate a web page.
More the level of a Jacquard loom than a ZX81 but a _possible_ starting place to hook a child's imagination.
I must admit that I haven't understood what is wanted by "compulsory coding". Are we after teaching children the principles of programming (flow chart, design, loops etc) or actually making them code a program in a particular language?
HTML+CSS by themselves aren't "programming" any more than putting printer control codes into a wordprocessor document in the pre-WYSIWYG days was.
You don't even have to write properly-formed HTML and CSS! It might well be unique in that the "garbage in garbage out" rule doesn't always apply. Feed crap into an interpreter or compiler (or a printer or a Jaquard loom) and you *will* get errors, or crap, out the other end. Feed crap into a web browser and you may very well get acceptable output (where "acceptable" means it looks the way you expected it to in your web browser).
>>> print "Hello World"
>>> def hello():
... print "Hello World 2"
Hello World 2
Easy as Basic, no gotos, intro to classes & objects if you want to go that far. Its only drawback, if you want to see it as such, is the indentation as block structure, but since most programmers use indentation to clarify structure anyway, this is hardly a killer.
I've been thinking about running an extra-curricular/lubchtime course for interested students here and, having thought about it, I've come to think that HTML is the perfect starting point.
By using web design you get two wins in my book - fast visual results to keep the kids hooked, and exposure to more than just programming (networking, databases, file systems, etc). Because in this discussion about "IT is not Word and Excel" people seem to forget that "IT is more than just programming".
I had just finished eating my lubch when I read this comment.
I think the course really should be renamed to something like:
"Making a machine bend (slightly) to your will"
not necessarily programming, but it's a logical step towards realising that you CAN make a machine do your bidding if you have the requisite skill, time and energy.
Never used HTML/CSS on an AVR though. Never needed to.
Drunken bum owing to the solder flux cleaning fluid abuse.
I'm instructing the CSS as I go along, rather than as a separate subject to HTML. I'm trying to teach students the "W3C" way - you have your hypertext files for the content, and the style sheets for the presentation; keep them orthogonal to each other, and no "font" tags, thank you very much. It is a little heavy going at times, but I am giving them lots of revision exercises, and they are getting the hang of the material.
I should add that my students are trainee librarians; they're not expected to be technical, nor put together a three column layout with header and footer from first principles. They are expected to be able to put together a website at the end of the course using a tool (like Dreamweaver), and I think I am training them to do that. I'd rather teach them the way of angle brackets than just tell them the Dreamweaver menu commands to make an unordered list. That's boring and they don't learn.
My course does not cover dynamic programming, so I do not have to deal with SQL and server side scripting.
I think html is a good place to start. Yes, it's a markup language, and is entirely passive. However, if this is then followed up by moving onto client- and server-side scripts and programs and showing how they can be used to manipulate html code then that's fine by me.
Any program, whether it's producing a web page, or creating an ASIC, is producing a set of outputs based on a set of inputs. With html, you're producing a set of instructions to be parsed by an interpreter, but the same's true with Perl, C or Assembly language. The difference with html is you don't get any inputs, so the output is the same each time, hence the need for dynamically generated html.
You could teach kids how to program a CPU in a boolean algebra but I think html is probably a good place to start.
Bollocks. I find 'proper' coding far less traumatic than getting html to play nice. One is based on logic, and the other is based on tricking whatever browser you're using into displaying what you want. Admittedly, over time I guess I'd get a feel for it and spend less time pissing in the wind, but I'm a developer, not a designer.
it's not splitting hairs. HTML is script. it has absolutely no (real) conditional constructs, and is merely a medium for presentation... To this extent it isn't "coding" in any realistic sense, unless you misunderstand the meaning of of the word... http://en.wikipedia.org/wiki/Computer_programming
HTML isn't necessarily easy. providing markup that is semantic, well formed, light, and works across multiple formats and multiple standards is (in my own experience) fairly bloody difficult most days. You're right though. This doesn't make it "Not code"... What makes it "Not Code" is the fact that it isn't "Code". it's a presentational medium that gets whisked across the internet as the result of a request to some server software operating on a remote machine somewhere transmitted via TCP/IP across multiple routers worldwide, which is then rendered in all it's glory on a clients monitor via a web browser...
I learnt to "code" before PHP or ASP existed, and learned without HTML. I suspect many others in the industry did too.
Where is the IF in HTML, and DO etc. etc.
That is why HTML is not a programming language.
The fun of learning BASIC on the BBC was doing things like asking what the time is and then getting a 'Good morning' or 'Good afternoon' when you put in different values. Things then got more involved (ie interesting to the right people) when doing things like working out an orbit etc.
Obviously you don't worry about the more complicated things until you have got the keen audience seperated from those that don't want to know.
Here - I've found it, and not only that, there are two IFs here - the one you can see, and the one the non-compliant browser doesn't...
<!--[if !IE]><!--> This ain't IE! <!--<![endif]-->
If anyone bothers to vote on this post, then judging by the rest of this board, it'll likelier than not be a dogmatic down-vote. But the point at the top of the 'Err' thread is not that to learn HTML is to learn to code - but that it's a good place to start.
Except that most HTML lessons consist of being how to use an out-of-date Macromedia Dreamweaver (yes, not Adobe). 90% of the time you're not even told to switch to code-view, just draw a table, insert some flash buttons from a template and there we go, I programmed a website and get full marks in my exam! I can assure you that *noone* finds these lessons interesting (even though who are already interested in programming).
However it did get more exciting and we were tasked to create a holiday booking system in Excel, we even got to name our holiday company! Travel First - the First name in holiday bookings!
I'm inclined to agree with AC, save to say that HTML should not be considered as a necessary introduction to programming. It's certainly a way to get someone interested if they would otherwise not consider real programming, or is scared of it.
In particular AC's words "a good base of logical thinking and how to deconstruct a problem into manageable chunks that can be handled by the system, which is an essential skill for teaching" are valid. Or don't modern techniques require programmers to be logical thinkers and have an ability to deconstruct problems?
HTML sure isn't a programming language, but it isn't as far removed as some people think.
Hmm, no with a tiny little hint of yes...
HTML does not teach programming - not even close. In some ways it actually hinders it; some of the worst HTML I've ever seen has been written by programmers - it's a totally different mindset.
HTML is purely presentational, what it teaches is the importance of semantics, do you mean strong* or do you mean b (or span style="font-weight: bold;"); are you trying to give semantic importance to the text or just make it bold because it looks better?
It teaches you that browsers will screw you over and different rendering engines will cause you headaches - making something that looks exactly the same on every platform can be an act of will and sheer bloody-mindedness.
Programming on the other hand is 95% problem solving and 5% writing the code; it's basically algebra with conditional statements (ok, functions and objects as well) - it has nothing really to do with semantics or making stuff pretty, it's about getting stuff working in, hopefully, an efficient and maintainable manner. The fundamentals of programming, the mindset if you like, can be transferred, almost in its entirety, to any programming language, programming is largely a way of thinking.
HTML, however, is a basically a way of doing, it's pretty much non-transferable (well, apart from the lessons it teaches in semantics); hell it might look a bit like XML but drop an XSL file in front of someone who's spent "an afternoon programming in HTML" and they'll be totally lost. HTML does not help you think like a programmer.
The one teeny, tiny, "yes" I'd add as a proviso would be, using myself as an example... I've always been a "tinkerer" with computers, from making maps in WorldCraft for Quake to reverse engineering the galaxy in X3 (less complicated than it sounds, the galaxy is written in XML apparently)... but somewhere long the way, doing my degree course many years ago when the web was new and shiny, I discovered websites...
Some random homepage that someone had cobbled together made me realise, "hey, I really want to know how to do that!" - and that it was something I could teach myself to do (with the aid of a few websites).
So I taught myself HTML - which was nice but a little static....
So I learnt about SQL and databases and PHP to make maintenance easier - which is nice enough but PHP is pretty much purely web-based and I wanted to do more...
So I started on Java and C++ and C# and now the loose-typing, lack of proper method over-riding and slightly iffy OOP implementations in PHP annoy me slightly... and I'm still learning...
Where I go from here is anyone's guess - I'm an in-house web-dev, I still enjoy working on the LAMP stack - and it was HTML that made me realise that this is what I wanted to do (it's the immediacy with HTML, it's very quick to get something on screen - it's one of the things I like about C# as well).
*[whilst it's nice having HTML enabled in posts - it's a bit inconvenient, when trying to get tags to output, that < and > don't get converted]
IF and DO are not requisites of programming; they are requisites of procedural programming. There are many non-procedural programming languages out there (SQL being the most obvious.)
This highlights the biggest issue: nobody agrees on what programming is. This is partly because programming has evolved so many layers that it's no longer what it was. Programming was developing a set of instructions to tell the hardware of a system what to do. Then we made assemblers and it became creating a document that the assembler would convert into a set of instructions to tell the hardware what to do. Then we assembled compilers, and programming became writing a set of documents that the compiler would compile together and send to the assembler, which would create a set of instructions to tell the hardware what to do.
What I believe programming should be defined as is akin to translation: the skills, knowledge, and tools needed to translate a set of requirements to a system-readable set of documents (be they instructions and/or data), and to be able to verify and test said documents for accuracy, consistency and performance.
Would this make a class on HTML a programming class? Absolutely not. One absolute requirement for a programming class under this definition would be identifying the correct language to use for the requirements given.
I believe programming (and computer science in general) should start without computers at all, and teach logic and planning skills for at least the first year. That's what real programming is. The language used is a red herring.
The picture Mr Orlowski paints of weeping children being frog-marched into compulsory coding classes owes more to his overheated imagination than reality.
Well I agree with RCJ here - compulsory coding lessons would be no worse than compulsory reading, writing, maths, geography, French etc. lessons. Does Andrew really think that kids are frog-marched weeping into those lessons too?
"That does sound quite close to my experience of French lessons. I still dislike the language because of it."
Unfortunately thats because schools in the UK teach languages as if they're programming languages.
IF sentence is in this tense
THEN add this case ending
ELSE blah blah
Not to forget learning verb tables rote.
You can't learn a spoken language that way , it just doesn't work. You need to speak it, listen to it, read it and write it over and over and over regardless of minor mistakes, they don't matter. The grammer will eventually work for you subconciously. There is simply no way you can speak a language while consciously attemping to parse the grammer in every single sentence.
...which were taught in that sort of way definitely helped me learn to program. When I got to uni the course modules on parsing and computer language design were suddenly blindingly obvious - deja vu indeed. If you can parse a "statement" in Latin to extract the meaning before restoring into English then writing code to parse a line of assembler before outputting in hex became suddenly very straightforward.
Compulsory lessons where kids walk out thinking they can program is deadly. When I was looking for developer jobs I was competing with many people, 99% who couldnt program but didnt know it! I know my limitations but thats because I have experience in the field. I have delt with a few programmers/developers who dont realise how poor their skills are and cause serious damage to companies as a result.
A load of people who can just about put together some HTML telling people they can program becomes competition for those who actually can.
It doesn't help that the idea of programming has been romanticised by the media to the extent that too many people think they are "l33t hax0rs" because they have had a few hours experience. Folk need to realise that programming is a job like any other, that some will take to it and others won't.
All this self-righteous talk about teachers and journalists "not getting it" is almost entirely irrelevant. Back in the early 80s my teachers didn't "get it" either. In my school we were teaching our teachers. At the age of 12/13 I didn't read the new media, so I couldn't tell you whether journalists got it or not, but I'll bet they didn't.
Sean T. Baggely says: "Our education system is fundamentally broken. We're doing it wrong. All of it. It'll require politicians with serious, long-term vision and the force of will to carry it through to fix the mess, both in education, and within politics itself."
BZZZT wrong. Politicians *are* the problem. The more they interfere with education, the worse it gets.
Mr Baggaley's problem is that he's a hopeless Utopian; he is as "bien pensant" in his own way as Mr Cellan-Jones. Programming from first principles? No, thanks. One size doesn't fit all; the education system is an inalienable part of the system of division of labour: some people will write rocket guidance systems and others will write the marketing brochures for the rockets.
Within the narrow scope of the web there is merit in an interdisciplinary approach and demystification of the arcane arts of programming. As such I broadly support the idea of people diving into programming without them later becoming master programmers. However, I agree wholeheartedly with Mr Orlowski's condemnation of Mr Cellan-Jones attending an opportunistic one day workshop: it's a car-crash waiting to happen.
Regarding the general principle of getting kids interesting in programming I was lucky enough to attend Vern Ceder's presentation of the work he did with a group of schoolchildren over a whole term. It's about Python but the language is secondary to the approach.
Several arguments are being mixed up here and I'm with you on the first two
(1) Did the "coding for execs" in the original BBC article have the whiff of "slumming it"
Yes it did
(2) Is HTML a proper programming language to teach with
No, it's not
(3) Should coding be part of the school curriculum?
This is where I disagree with you. My youngest goes to one of the schools that do include coding as part of IT lessons in years 8 & 9. As it happens he has a knack for it and will take it to GCSE, those of his friends who don't won't. His older brother didn't have the opportunity to find out and managed to make a complete pigs ear of a Computing A-level because of it.
It's true that "not every one is cut out for coding". So let's give them a chance to find out one way or other early when it's consequence free rather than half way through a qualification.
Did the "coding for execs" in the original BBC article have the whiff of "slumming it"
Oh goodness yes. But wanting to have a rough idea of what the chaps in your IT department do all day may be a sign of open-mindedness. No guarantees, but it's not automatically a bad thing.
Can I have John G.'s and Jonathan Hogg's babies?
If the proposed initiative will be more like those horrible "learn to code in a day" tutorials, then yes, I agree it could be very harmful. But surely the solution should be to campaign for compulsory programming that focuses on the aforementioned problem solving? This is what LOGO was designed for all those years ago. Is there something more up-to-date and friendly for this day and age?
Also, hats off to Andrew for quoting a response that included the line "I'm incredibly disappointed in your article" -- I was, too.
If Rory chooses to dip his toe in engineering with HTML - yes, that's what designing a complex webpage is - then more power to him, and smart to choose an area that he clearly has an interest in. Maybe that way it will stick? Maybe he'll whittle up a webpage in his spare time, add some rollovers to his buttons, perhaps a bouncy ball, and then in ten years time he'll be writing object libraries in JS. Which I've done, and it's a damn sight harder than C.
That's how it starts - teach kids to make change from a pound, then if they want to learn more give them calculus (hmm, which should put them off forever really. Bad argument).
+1 for disappointment Andrew - you missed the mark on this one in my opinion.
Office gave microsoft a monopoly. Google docs is at least cross-platform and you can work on it at home on a computer running Windows XP or OS X without having to buy something-important for families who don't replace their home computer often.
But I genuinely think learning HTML is a reasonable place to start people off. OK it's not programming but at least it's a skill.
Oh yes what a great idea. Teach them young that it's ok to hand over all your information to the cloud so the worlds largest data-miner can track them their entire lives and make a mint from the targeted advertising.
I'd rather have office or an equivalent on my desktop under my control thank you.
I'd rather some form of coding was introduced in Primary school and then in year 1 and 2 as a small part of Maths and parts of other subjects (scripting in Excel or Photoshop type apps). I would advise students that a qualification in computing was a waste of the chance to study another subject especially at A-Level.
It's not only the BBC whose reporters are far from being techies: most of the major newspapers are as bad. I specifically mention the Telegraph. Chris Williams, formerly of the Reg, went to work for them, but I wonder whether that was a good move for him.
I remember lambasting one particularly poor piece of science reporting in the Telegraph: "You would not dream of employing a sports writer or political writer who so obviously knew so little about the subject". The following day the article had been rewritten sensibly by Roger Highfield.
Quite right. You wouldn't have a motoring correspondent who couldn't drive; you wouldn't have a sports correspondent who didn't know the difference between cricket and football (OK The Times had Lynn Truss, aka 'Sally Jockstrap', for a while, but that was just an in-joke, I hope). But it's (apparently) fine to have a science or technology correspondent who failed GCSE maths 20 years ago, writing about the latest developments at CERN or 'programming'.
thats why they call them "reporters" and not journalists.
journalists are actualy meant to have at least some kind of qualification journalism.
the rest of us are reporters : i.e they are members of the public,with no special knowledge or training or even any understanding of what is reported,funny word re-ported.
In my opinion, what is lost sight of all too easily is that programming is not just about being able to write code - it's an entire discipline. A 'proper' coder will produce fully formatted, elegant, commented programs which are easy to understand, and, perhaps most importantly, easy to maintain.
If a program is impossible to maintain, or impossible without a great deal of effort, it is almost useless. The majority of a programmers career will be spent in maintainance...
It is this understanding that makes the difference between someones who writes code and a true programmer.
"Rory had spent a day learning HTML – "a programming language", we were told"
No, no we're not. He calls HTML 'the basic coding language for any website'. Now you may prefer 'markup' to coding, but he doesn't call it a programming language.
I lost interest in the article after that, since it was clearly going to be another of Andrew's classic splenetic mud-throwing pieces.
Honestly I'm disappointed in education as a whole at the moment, we spend so much time learning stuff of no use to us, just because the minority might enjoy it, while at the same time ignoring things which actually might be of some use.
We're taught English History in great detail, and yet, once you leave school, unless you had a great interest in the subject all you remember is old king hal was full of beans and married half a dozen queens. And even that isn't technically correct, as one of the marriages was annulled, and therefore in the eyes of the church never happened.
Education as a whole needs a revamp, kids should be given the opportunity to try it all while they're in infant and junior school, give them a wide education and let them find the subjects they enjoy. This would include RE, History, English, ICT, and perhaps even programming, or web scripting.
When they move into senior school, have some manditory subjects still like PE, English Language and Maths. But also add in other mandiroty lessons, economics, explain to them how interest works, tax how banks make their money. Give them lessons on what to do if there's a fire at home, how to turn off the gas main or water main. Teach them basic DIY and electrical skills. These are all things you need to survive in the world today, and most kids aren't taught any of it (I certainly wasn't)
But rather than teach children stuf they all will need, they'd rather waste 95% of their time teaching them stuff only 5% wants to know. It'd be far better, both for kids growing up and for education as a whole, to only make mandiroty the classes which will actually prepare them for the real world, and give them options of the rest at a much earlier stage.
General education from infant through to junior school so they know what they like and don't like
first year of senior school give them the manditory "you must learn" lessons, and devote perhaps a term or two per optional subject as a taster to what the subjects are like in senior school. Then when they move to year 8 they make their optional choices as to which units they would like to continue with.
That way you aren't wasting quite as much time teaching children stuff they just don't care about.
Bad analogy incoming. Teaching a child a subject they don't like, is akin to telling an atheist about god. They don't care, you aren't going to get through to them, its just a waste of your time and theirs. The harder you try the more you'll just push them away from it. Give them a choice, let them take subjects they enjoy or are good at, and heck we might not have quite so many students come out of school with nothing but Ds.
Sadly it'd never happen though, partly because it would be more work for the school admin department, and partly because you could never garuntee places. You may have one year come in and not a single child cares for geography, while another year there may be an entire class who wants to take the subject. They'd need to make sure their teachers are multi-disciplined rather than specialised (not that it makes a difference, all they do is teach from a textbook anyway)
"as truly humbled as Uriah Heep" +2 just for that
"Oh, what a tangled web we weave, when learn HTML coding for the first time" -1 for that tho - we see what you're trying to do, but it just didn't come off. Sorry. Needed a rhyme otherwise it kinda defeats the purpose.
As for Jonathan Hoggs "I'm incredibly disappointed in your article". I can see AOs face now. It looks like this -> -.-
I like that you reported on the issue, I didn;t like that you went for trolling page impressions to please your marketing masters rather than actually delve into the real issues. I personally reckon you have a competition going with Lewis Page-3-model-brains as to who can troll the most. I know you've gotta sell ads, but you can actually write when you can be chuffed. Do us a favour?....
Ross, I didn't dive into the issues because it's a mailbag not a soapbox.
Cracking interview coming up putting the case for programming in schools.
Is there are actually any disagreement that ICT today is rubbish, and that programming should be an option? None that I can see.
Computing in schools is not about producing the next genertion of professional programmers.
I mean, that is a side effect, but it is not the most important thing.
The most important thing is that just as children who learned MS office in ICT lessons in the 1990s now spend all day using Excel, the next generation will need to use scripts as part of thier every day work.
Why? Because right now, writing VB macros, customising Wordpress templates, and doing light sysadmin work are part of every day office life for younger workers.
Tomorrow, especially non-programmers in technical roles like CAD/CAM, medical research, or sales and marketting, will need to write scripts that read in data and manipulate it. I know humanities educated political researchers who write SPSS scripts, and 'PR' workers who work with Joomla.
These people don't need an indepth knowledge of programming, and won't realistically recieve it from the current schools staff. They need to be trained in how to use specific tools that require scripting, e.g. python, so that they can use the next generation of those tools in thier work.
So this kind of thing is pretty useful, but it's not for us.
If the aim of this exercise is to get people more interested in the fundamentals of how computers work, then for me you should do whatever gets people interested. You can then introduce them to "proper" programming languages, as their interest and aptitude develops.
The high-minded attitude of many posters from a "proper computer programming" background is appalling. No wonder people think most IT professionals are tossers!
If executives and media people go on toy courses like this and come away with a hands-on sense of what programming actually entails, what value do you think they will subsequently have in the actual programmers they employ?
They will think working in IT is even easier than they do already, lower wages and treat staff like dirt.
Idiocracy here we come...
I never, in my life as a sys admin and general juggler of the company's data wrote anything longer than a couple of hundred lines in shell, awk, etc --- but I showed a youngster the meaning of the ifs, whiles and fors.
He left our company and went on to be a real programmer, and, subsequently moved into management.
The fact that, having left me miles behind, he continued to acknowledge my early instructions, and to be a bit impressed by some of the things I did do with a few lines of Awk is something I'm proud of.
Pascal and derivatives are used by many places as the starting point for teaching Computing based subjects. Basic only in Visual versions (4GL), Office macros are really basic VB however out of the population who use computers how many of them will ever program anything? 1% 2%? I think teaching computing at GCSE or A Level is a good thing but basic Office and computer skills are just as important if not more so. Do you want people working in an office that can automate basic task in excel word etc.. or ones that can write "Hello World" both need to be taught shame ICT is getting the boot in place of computing. My educational background is computer studies and computer science and I enjoyed the programming much more than the boring office tasks but I have to admit both are important.
At age 10 I experienced writing my first ever programs in BASIC on an Atari 800XL. They had one hour to catch our interest and in my case they did, big time. Did they make us insert and select data from an array, or crunch numbers, or write a letter in a word processor? Nope, they knew their target audience; they had us write something not far off Hello World, but with rainbow coloured text and sound playing behind it.
I. Was. Hooked. A real "WOW!" moment, if you will. The path of a life changed inside an hour and a few dozen lines of BASIC. I got a Spectrum that Christmas and tore into the manual like a kid possessed. Within an hour or two I was making the computer BEEP and DRAW lines on the screen. I was making the computer do cool interesting stuff. Me! Making cool stuff happen! Holy crap!
That simple accessibility is missing from modern day systems. Back then, if I wanted to draw a red circle on screen I would power the computer up, type something like CIRCLE INK 2; 100,100,50 and BAM, a freakin' circle. Middle C for one second? BEEP 1,0. Job done, curious kid entertained, another baby step toward a future programming career. I soon learned about DATA structures so that I could create user-defined graphics, or play a musical scale. Another step.
Today, I'd have to install an interpreter or compiler or IDE (possibly paying money for it), maybe install an additional 3rd party library for the graphics operations, dig through the weighty API documentation to find out how to instantiate a surface to draw into and a window to put the surface in, initialize a 1-pixel wide red pen object, call a method to draw the circle in the bitmap surface using the pen object, update the window display with the bitmap surface..........all that in an INTERPRETED scripting language FFS. Christ almighty, I get antsy thinking about it and I DO THAT STUFF FOR A LIVING NOW!! Can you imagine how quickly a pre-teen kid would get bored of wading through it all and decide that this programming thing isn't their cup of tea and that it's more fun to just play X-Box games instead?
I'll be the first to say that BASIC taught me a lot of bad habits, but it also got me to a point where I knew the important programming concepts inside out and could understand why INCLUDEs and APIs were useful additions to my repertoire. Being able to do cool stuff really quickly and easily on demand meant I didn't get disillusioned before I reached that point.
The thing to remember about all TV presenters, reporters, interviewers and correspondents is that first and foremost they are de-facto EMPLOYEES of one or other public body. As such their only allegiance is to keeping the pay cheques flowing. If that means toeing the company line, tugging the forelock to the arts graduates and capricious "Head of ..." who can sideline you on a whim ("he/she just doesn't have the right image, darlink"), then so be it.
These on screen people are not there because of their qualifications, nor for their ability to explain / educate or even entertain - though it's almost all entertainment, these days. No, they're there simply because they have an insubstantial, undefinable quality that makes them "right" for a piece to camera (or because they contribute to a quota). Consequently, if the planning meeting decides that they should spend a day learning to put angle brackets around words and call it "programming", then that's what they do - and are grateful for the opportunity.
For all it's cuddly "auntie" facade, I doubt if there are any other publicly funded organisations in the country that are quite so institutionally totalitarian - or as unaccountable in their dealings with "talent", as the BBC. So you can't really blame the presenters for the crass, simplistic or simply inaccurate content of their reports. They're all just standing in front of cameras, having their strings pulled by unqualified, dull-eyed production-types back on the mothership.
I don't like Rory - he has less knowledge about IT than my mom, who doesn't own or use a PC.
However, he did have a point - even if he did make that point poorly. Yes, HTML is not coding, it is also not computer science, and is not the aim of the new interest in computer science.
So, you have basically wrote multiple articles on this subject where one of your main points is wrong.
The aim of computer science in school is to move kids away from the useless 'this is how to make your font bigger in Word' lessons, and move them into a more fundamental 'this is how computers work, this is how the internet works, this is how software works' set of lessons.
That will involve some programming, sure - most likely using Scratch at lower levels, as it is now, maybe moving on to some higher level languages as they get older. But it isn't just 'how to program using web technologies'.
<sigh> this had to happen, really, didn't it?
I've lamented this awful presenter many times, often vainly tweeting to the Beeb that they should sack the old duffer as watching him attempting to use whatever gadget he was wittering on about on Breakfast in the morning was like watching my grandad trying to understand String theory. Painful, awful...
But now I realise, he's the right man for the job. The BBC's utter inability to go into any detail on tech is a blessing. We don't need to get all socially aware and demand they present tech properly, we need to subvert and work around them to get kids who are interested in tech the tools they need to tinker enough to be consumed by it.
The reason? I'd wager most of us didn't get turned on to programming, or tech, in school. I did, but I suspect I'm a total exception, leaning S-Algol in 6th year at Madras College in 1987/88 (I kid you now), running on a Z80 attached to a BBC.
No, most people who these days, having grown up with simple, low level machines and having a great top-to-bottom view of programming from hardware to editor, probably got there via a rather organic hobbyist attitude, grown from sheer curiosity.
Schools do not generate curiosity. Schools generate grades, league tables and bored, bored children (NOTE: generalisation).
R C-J should stick to kis knittng: doing terrible grandad reviews of mobile phones and tablet computers for numpties who don't care, who are blinking away the sleep from their eyes.
This whole Reg article nails the coffin shut for me - R C-J is nothing more than an old man equivalent of the skirt which shows off toys in Stuff and on Sunday morning TV shows.
I don't understand exactly what else you folks were expecting.
What, did you sit down to write your first web app and Just Know JQueries API without looking at some examples?
Did you not paste those examples into a browser, then poke them till they did that thing you were looking for?
Did you not take these modified examples, and nit them badly into a web abomination?
So Rory didn't channel the spirit of Stalman. Is he even dead? No? Oh well, hopefuly soon...
"I don't understand exactly what else you folks were expecting."
simple server side script calculating factorial of a given number. Or something similar, some calculation with as little involvement of 3rd party APIs as possible. Just program the computer to do some fracking computation, this is what word "computer" is derived from!
Is it too much to expect?
Far from `forcing' children to learn programming, once they get their hands on a computer, you won't be able to keep their hands off it. Never mind programming, wait till they get the back off, else let them loose on the Raspberry PI.
ZX Spectrum turns 30 today
TRS-80 approaches its 30th birthday
What a prick.
That course is like being given a load of ready meals, putting them in a microwave and thinking you're a chef.
The difference between someone who is properly trained/schooled/developed is adaptation. A chef can take a recipe and change it. He has an insight into how things work in terms of what frying, baking or boiling does to foods, how flavours combine and has a pretty good idea before he even starts of what's likely to work in a way that most people don't.
Rory Cellan-Jones is supposedly a "Technology Correspondent" for Al-Jebeeba. Wikipedo says he has a BA and a MA, so he's an Eloi, not a Morlock, hence the standard of tech reporting with regard to coding.
A humanities graduate pointing at an airliner and saying "magic silver bird!" - who'da thought it?
At least he's not an "environment" correspondent - they truly are the stupidest people in the world. Richard Black, Louise Gray...
Biting the hand that feeds IT © 1998–2019