Obama endorses required high school coding classes(news.cnet.com) |
Obama endorses required high school coding classes(news.cnet.com) |
Sounds like a bit of a buzz kill already.
The fact is that "programming" in and of itself is just grunt work. Forcing an entire generation to learn how to put strings together to do stuff won't help any of them when they go to a job interview and see a hundred other interviewees with the exact same proficiency for copying snippets from websites.
Problem solving is the much more important thing here, and that is already focused on in high school (remember word problems?). Programming allows students to explore problem solving more interactively, yes, but requiring schools to teach programming won't help in the long run any more than emphasizing a more comprehensive and intuitive approach to solving problems - I'm sure there'll be enough of those by the time these guys graduate to last forever. :)
But yes, you're certainly right that problem solving is the most important thing to teach. I think your idea of a comprehensive problem-solving approach is interesting - it sounds like you want to make that a theme across several classes. One of them could be programming, but perhaps other sorts of engineering could use it too.
It is the most concrete impediment to responsive education I've seen in my lifetime.
This sort of reminds me of someone that I was working with at my last job. I told her to fill out a .csv file so that there were no blanks, but she didn't realize that navigating a spreadsheet with a mouse is a terrible idea. I told her to leave the mouse alone and use the ctr-arrow keys instead, but she didn't listen so the data got messed up.
Okay, so that is bad for her if her goal in life was to become some master data person, but you know what she was a total genius at? Photoshop. I consider this a computer skill, but it isn't programming, but most importantly, it is something she became good at because that is where her passion and goals lie.
I have a question: surely you read the articles online about programmers failing fizzbuzz and generally not being able to program at all. This is the result of students who went to school and paid for said school to learn how to program. What do you think will happen when we force every single person in the USA to program? I would say the world would suffer a serious net loss.
What makes programming so special that we should shield people without aptitude from learning it?
Many have no aptitude for language – we still require english classes. Many have no passion for the sciences – we still require studying chemistry and biology. Some could care less about history – but every year of high school typically includes a history class scoped to one period or region.
So why should programming be different? Why should we shield people from learning a subject which has ubiquity equal to language or mathematics, and infinitely more lucrative application? Why should we accept a substantial chunk of our population being illiterate on a discipline whose misunderstanding can have terrible consequences for both individuals and society at large?
Understanding how a computer works, in a world dominated more and more by technology, places you at great advantage. Ignorance of the same leaves you at the mercy of those who are technically proficient and, more and more, limits your lifetime income potential.
http://www.npr.org/2012/01/01/144550920/physicists-seek-to-l...
The link above is an article about how college level students in introductory physics classes have/are failing spectacularly to learn the basic principles of physics. The key parts:
> While most physics students can recite Newton's second law of motion, Harvard's Mazur says, the conceptual test developed by Hestenes showed that after an entire semester they understood only about 14 percent more about the fundamental concepts of physics. When Mazur read the results, he shook his head in disbelief. The test covered such basic material.
> "I gave it to my students only to discover that they didn't do much better," he says.
> The test has now been given to tens of thousands of students around the world and the results are virtually the same everywhere. The traditional lecture-based physics course produces little or no change in most students' fundamental understanding of how the physical world works.
Mazur notes later in the article that after making major changes in his teaching methods and moving away from lectures and towards student group discussions, the students' learned roughly three times as much material. This is a hilariously large increase, and I suspect it to be the low-hanging fruit as far as potential improvements.
A hundred years ago, Maria Montessori developed methods of teaching that are largely the opposite of traditional lecture-based education systems. Students pursue goals largely independently and at their own pace. She developed materials that grounded complex concepts in the real world - my favorite examples of which are the binomial and trinomial cubes. Here's a link that explains how and why the binomial cube, which represents an algebraic (and fairly complex!) concept, is a material provided to 4-5 year old students: http://www.montessoriworld.org/sensory/sbinoml.html
Today, we have computer games that allow us to discard the limits of physical reality. We can create interactive software to teach or prepare students for concepts that might not be possible with physical materials. Why explain the principles of ecology when you could create a simulated, manipulable world that teaches the user simply by interacting with it? Why not have discussions and lectures following this, once the core material has already been presented and experimented with so that the students can begin with at least a partial understanding?
Learning to program doesn't strike me as any more difficult than learning any other subject. Occasional posts show up here about how someone is teaching their child to program - often well before their teen years. What separates those children from the average child other than economic situation and available opportunities?
We had a required "computer skills" class at my high school (over a decade ago) that was, by all measures of the term, useless. Any of my friends who were proficient enough to merely browse the web at the time were already too advanced to learn anything from it. Mind, it was also taught by someone laughably inept. And yet, there we have it, a 'required' computer course.
These days, toddlers use iPads. The web is beyond pervasive. I have no idea what my old high school is doing, but I can't imagine it's changed much.
Most kids will never use this skill, but then that's what all teenagers say. Some will! By no means will they be writing iOS apps. Or talking efficiency or language design any of what the naysaying comments suggest. If we can teach that computers are not 'magic' and help them understand some of the bare minimums of control flow, logic, and so on (however that may be achieved; Scratch-like, JS, whathaveyou) -- that computers only do what you tell them -- it'll make a dent in society.
Pre-Algebra
Algebra
Trig
Geometry
Algebra 2
Pre-Calc
Calc
And sciences were similar (and all elective):
Chemistry
Biology
Physics
etc...
I really don't get why "computer skills" should be conflated with learning how to program completely. The world is very large and needed skill-sets change very fast. I guess that we should, since it is the current trend, force students to learn about handling large amounts of data and working through statistics and probability courses as well?
Speaking as someone who has been on both sides, you do not fully understand how a computer works until you understand how to write code for it in some form. Do they need to know how to write a compiler? Absolutely not. But knowing how to write a script with conditional outcomes is probably a worthwhile exercise.
> The world is very large and needed skill-sets change very fast.
If you believe that computing is going to go away in the next 30 years, that would be a fair point. But we both know that computers are creeping further and further into everyday life. Having a basic grasp on how to direct and control them is an obvious advantage.
Your litany of courses does nothing to counter the reality that we are already forcing kids to learn certain subjects. What about computing makes it less valid than history, science or mathematics as a required field of study? We can say with certainty that students are more likely to encounter a computer than they are to encounter Henry VIII, Schrodinger's Cat, or a sperm whale.
Basic probability and an understanding, at least intuitive, of statistics should be thought to everybody - it's gonna help you even if you end up writing poetry or painting for a living, trust me! Imho this is more important that teaching coding, as it's quite easy to for anyone to pick up a well written programming tutorial, but much harder for an artistically oriented person to gain an intuitive understanding of probability - you need a good teacher for this, a teacher that when he sees you can't grasp the formula has the idea to bring some dice and poker cards to class and teach it to you this way!
Well I really don't get why "math skills" should be conflated with learning how to program completely. Why don't we just teach kids how to use a calculator?
I didn't know it was a career option, an academic discipline, anything. Computers were just the thing this boring woman taught us to do spreadsheets on.
At home my old C64 was something that could be programmed, sure, but I was under the impression that was basically a toy. If I hadn't had a parent who were at least interested in this stuff I would have been completely unaware.
In fact worse than that, the boring 'computer proficiency' type courses actually put me off investigating anything to do with this area. Beyond that, with the proliferation of consumption devices, the actual machine and code part of the computer is more hidden than ever before.
Computers run more and more of everything, we owe it to our kids to at least tell them that they can be programmed, and give every kid at least a small intro into how to do it.
My biggest issue is that most people for mandatory programming often believe that it will make kids "programmers" and will make them understand computers. For starters, I know a load of working programmers that don't really understand computers that well, and programming for an hour or two a week for a few months isn't going to make you a programmer, no more than me cooking dinner every night makes me a chef, or fixing a leaky pipe makes me a plumber.
I do think that programming should be taught in schools, as people need to learn the production side of the tools that society relies on so much. I also think that schools could go much further in teaching kids rudimentary skills for life as well, like fixing things around the house, basic car maintenance and basic money skills. In my mind programming is no more important than any of these skills, and if programming is to be taught in schools then so should these skills.
Grant it, we all have our weaknesses (I have terrible rote-style memory so I did terrible in History), but I don't think that purposefully pushing kids into classes were there is a chance over 50% can't get a grip on it is a good idea. As an elective course, it is great, but should be no more mandatory than a foreign language or requiring people to master pre-calculus before graduating. I mean, with programming being so mathematical, why would you mandate students to program when so many struggle to get past algebra in high school?
The president suggested that with the high interest in digital technology among
young people it makes sense to teach skills like programming and graphic design
in high school so that students can go on to pursue a career, with or without a
four-year college degree.
which seems like a reasonable position to take. Doesn't say "mandatory" or "required" anywhere.EDIT: I'm wrong. The very first line of the article:
President Obama says he wouldn't mind seeing a curriculum requirement for
American high school students to learn a programming language.
Still, mentioning it offhand in a google hangout seems very different than introducing it into legislation.Absolutely, and there's a big difference between "endorses" as in a quick mention and "endorses" as in pushing for it with all his political power - however, just because it's him mentioning it rather than him trying to make it happen it doesn't change the fact that he did endorse it, as the title claims, and that for him to do that is still very relevant.
I wouldn't expect this to happen given the general trend away from anything resembling vocational training and the lack of skills to teach the class.
To get actual legislation going there needs to be public pressure. Not being an expert I don't know the best way of going about this, but I would think doing it at a local level would be more successful than trying to do it at a federal level. Then if it works well it would spread.
The types of skills taught in computer programming courses -- abstraction, high-level problem solving, complex logic -- are ones I believe all students should have some level of proficiency in by the time they leave high school.
It would be interesting to see an academic track high school program that included some sort of project academy, where the instructor was more of a mentor that guided the student through finding, examining and solving a problem that they found interesting.
Forcing people without an aptitude or interest to take some sort of "one size fits all" coding course is going to perpetuate myths and misconceptions about the industry. It is better for students to know that they don't know what programming is like than for them to think they know, and think it is awful.
You'll note students have a modest amount of choice. Sometimes they must take a specific course like Financial Literacy, other times they get to pick from a set, e.g. the "science core -- 2 different quadrants" requirement. That one means you do any two year-long classes in physics, chemistry, biology, or...earth sciences I think? As you might guess, most students did the easiest ones: earth sciences and biology. Physics was the least popular one and class sizes were usually small. (By the time I left however an energetic young teacher had taken over and was aggressively getting students interested.)
Anyway, the most important thing I want to highlight is the 5.5 credits of electives. That's what I suggest gets "cut"--i.e., make it 4.5 credits of electives, and require a 1 credit (== year-long course) in programming. For the students who may have already wanted to take such a class anyway (if they're lucky enough to be at a school that offers it), nothing is really "cut" for them. For other students, what gets "cut" is still up to them--as it always has been by nature of electives: students decide "I don't want to take this offered course and will instead take that one." Cutting an elective gives them slightly less choice, but it's a worthwhile trade-off I think.
My one question about a proposed mandate from Congress on a programming class: can we retroactively apply it to all federal and state government employees?
Yes, it could mean coding. But people produce stuff on computers without coding all time. They produce stuff on Photoshop. They produce stuff on Excel. They produce stuff on Wordpress.
It's becoming increasingly clear that economic growth and wage growth are becoming uncorrelated in the US. For example, startups add billions and billions of dollars to the GDP of the US, but we'll never hire the millions of people that got laid off at steel factories over the past twenty years.
The economic model for the US this century is essentially one that consists of high-skilled knowledge workers, high-end manufacturing, and local service workers. Everything else will be subject to economic factors outside of US control. Lower-skilled manufacturing has had a revitalization in the US over the last couple years, but that's mostly due to things like China's currency appreciating, the price of oil remaining high, and a natural gas boom in the US. If any of that changes, those jobs will go back to China. Or Singapore, or Africa, or anywhere else where the supply of raw human capital is cheap.
If you view the future of the US economy in this lens, then everything Obama talks about makes sense. For example, if this is the future, then the safety net programs we had in 1980 are inadequate in 2013. Nobody really debated health insurance in the US in 1980, because over 80% of Americans already received health insurance from their employer. Now it's barely two-thirds [0]. If you have a "top-heavy" skills distribution in the US, and your income is more strongly related to skills than ever, then you need a "top-heavy" tax code. Or you could just let people bleed to death in their bathroom because they tried to pop their own thrombosed hemorrhoid (trust me, don't google it) because they couldn't afford a trip to the ER.
And to tie it back to the OP, it also means education for those high-skilled jobs will be the best way to ensure economic advancement. It's no longer a sure thing to advance economically by putting in your time in at the plant and have your labor union negotiate a 5% raise for you every two years. That doesn't need to mean everyone becomes a programmer. We'll still have manufacturing jobs, but they'll require more than just punching the clock every day[1][2].
We've all probably worked with a self-taught programmer who was toiling away at some crappy job until they either got a degree or made enough web sites to convince a company to hire them. And they probably tripled their income in the process. So I see Obama's statement as saying we should streamline that process as much as we can, and orient our education system to produce as many high-skilled workers as possible.
[0] http://www.washingtonpost.com/blogs/wonkblog/post/study-fewe...
[1] http://www.nytimes.com/2010/07/02/business/economy/02manufac...
[2] http://www.nytimes.com/2012/11/25/magazine/skills-dont-pay-t...
In North Korea, they call this Juche. They say it works great, but I think they might be twisting the facts a bit.
We all had to take one semester of home economics and shop. Those classes weren't simply fluff even if we thought they were. They were also exposing us to useful life skills that could translate into jobs if we found the classes interesting. While sewing and cooking tend to be low wage work, they also exposed us to drafting, CAD, CNC milling machines, and other job skills that may have seemed more useful before China took those jobs away. We all had to take these classes even if we were destined to become programmers.
Far more valuable than high school classes though would be adding computer clubs and contests at younger ages. Why would we wait until college ACM competition to make programming a rewarding skill? Computer skills are more important than chess or junior high football.
This is a good thing. Do your kids a favor, teach them how to code.
It comes to me that teaching code in high school is a bad idea. It is a good idea to teach how to solve mathematical problems with a programming language. Just as a mathematical tool.
It's curious how teaching "how to code" is going to greatly devalue the "coding-ability". Here, in Spain, coding is highly undervalue mainly because a lot of mathematician and physics and graduated in politics ( I mean, everybody) learned "how to program" in a one month course. So enterprises tend to think "anyone can code" instead of "I should hire professionals".
And it's true. Those people know how to solve problems with a computer language, but they DON'T produce good software solutions (just generalizing) and you end up having a big ball of mud. This shouldn't be a problem if enterprises would have realized about software quality and maintenance. But they haven't.
The consequence of all this it's clear. Very low salaries and an undervalued profession.
--- Aren't you agree with me? Just have a look to the web. Most of non CMS web pages full of bells and whistles are clearly a mess. In fact, I really believe that most of web-related technology is a big ball of mud (HTML+php+javascript+css+json+...) because the main users/creators are not computer scientists. Yes, these technologies are a solution but I don't believe they're a good solution. (I'm not saying I could make it better, I'm just talking about the mess involving building a web page against building computer software).
---
Nevertheless, don't take me wrong. It's great to bring programming closer to the people. It's great to have a lot of people improving, creating, developing and designing. But people won't never understand that coding is different than building software.
Yes -- be that as it may, let's remember that mathematics and arithmetic are two different things. Arithmetic is useful even though we now have calculators everywhere, but understanding math is much more important -- and it isn't about adding columns of figures or figuring a tip in one's head.
It was poorly taught. Half of the class couldn't even figure out loops, they were literally scared of them coming out. They absolutely hated it.
I chose to continue studying this subject at sixth form (basically the local equivalent of high school) and even though we were now taught by engineers and people with doctorates, they were horrible. They just spoon fed us, giving us programs to study by heart. They had no idea of code redundancy, modularity or readability.
These were for students who chose to study the subjects. What the situation would be like if these courses were compulsory.
In highschool i took my first formal programming course, and despite a very good teacher, the majority of my classmates struggled. I can say i saw similar results in my early college programming.
I love the idea of introducing more people to programming, but from my experience, this would be setting a majority of students up for struggles and failures. The few who would succeed will instead be distracted by the rest.
Tools become better, many people will never need to code to become productive. One tool that allows people to do fancy stuff without coding is Excel. In fact the whole MS Office suite has means to create automatizations that would take a coder a long time to realize from scratch.
On the other hand I would be in favour of mandatory HTML classes. It's a purely descriptive language, used in many fields. (But who knows, that skill might as well become obsolete when MS releases Frontpage 2020 RT.)
These days we're seeing a similar pattern with mobile development: "learn to program for the iphone! Make lots of money!" and to a lesser extent general computer programming.
The cynical part of me believes it's another sign of a bubble, but it may just be circumstance.
Ukrainian (and post-Soviet) education system is somewhat different from US, as students can leave high school after their sophomore year, if their future plans involve going to a vocational school, community college or just straight to work. Only those who plan to enter college stay for the last two years.
I would be extremely sceptical of the claim that 50% of people cannot learn programming as much as I would be sceptical of the claim that the same number of people would be incapable of learning written english or basic algebra. This is assuming that there is good quality instruction available (this is of course the hard part in reality).
Bear in mind we are probably talking about very simple stuff here like for loops , simple algorithms like bubblesort and maybe some javascript animations or whatever.
How to architect large OO systems, how to handle concurrency etc are probably not topics that need to be covered here at all. Students who want to study to be professional programmers will likely do extracurricular learning or take further courses.
I taught myself to do simple program at ~age 10 and please believe me when I say that I was in no way a gifted child. Not only this but I successfully taught some of my friends how to program and they didn't seem to struggle too much.
Programming can also bring new dimensions to other classes, for example it helped me check answers in math, made algebra much more intuitive and I even submitted a text adventure in place of a linear story in a creative writing class.
So I argue that programming courses may actually be a good way to boost the really important stuff - literacy and mathematics. (I think everyone here would agree that literacy is an important part of being a good developer.) It's a real, practical, exciting application of these more abstract ideas.
This is nonsensical, since a lot less than 80% of Americans even had an employer in the 80's (or even today).
http://research.stlouisfed.org/fred2/series/EMRATIO
The uninsured rate has actually remained roughly flat at 15%.
http://commons.wikimedia.org/wiki/File%3AU.S._Uninsured_and_...
And to tie it back to the OP, it also means education for those high-skilled jobs will be the best way to ensure economic advancement.
This is really unclear. For example, if education is primarily about signalling rather than skills (lots of evidence suggests it is [1]), all you do is waste resources on a signalling arms race.
[1] There is a fairly extensive literature about forgetting stuff. Bryan Caplan has written a fair bit about it, for example, and even has a book on the way: http://econlog.econlib.org/archives/2012/10/does_high_schoo.... http://econlog.econlib.org/archives/2012/11/the_present_val_... http://econlog.econlib.org/archives/2012/02/the_career_cons....
Geez.
If they're really producing stuff, there's a good chance it involves a bit of programming (and wasn't HN discussing this a few days ago?).
In a high school program that has 4 * 2 * 7 scheduling, 2 semester hours isn't such a big chunk of time.
Whilst rocks are fascinating to some, I'm not sure the analogy holds as rocks are not (more than they ever have been before) becoming a part of everyone's everyday life.
If we were living in the stone ages I would be arguing for compulsory intro-to-rocks courses :)
Please learn how the US government works before the next election.
My graph does go back to 1987, because that's when the census started collecting data on health insurance. If nhashem has data he is free to post it. It's up to him to prove his claim, not on me to disprove an unsourced assertion.
Data aside, that is not a logically true claim: in 1980, I had health insurance... through my mother's employer.
Also of note is that when you do calculate in Spouses and children, they still had insurance because it was less common to "only insure yourself" (I have no data to back that statement up).
But yes, I suppose that on some level you're right: 80% of the population has probably never been simultaneously employed.
Nor will that ever be the case.
Required coding courses though? That would be like a required shop class. I wouldn't support anything of the sort because it won't be useful to people who are interested in it (it would be far to basic) and it would almost certainly poison the minds of the people who have no interest in it.
Furthermore, I think your perception of what highschool course loads are like is very out of date. When I was in highschool in the early 00's we didn't have required sciences, required history courses, or even required maths (with the of a single algebra course, for those who had not already taken it). You would have to take N out of M offered science courses, but you could easily get through highschool without taking any particular line of class. For example, I have never taken a single course on biology. Not in highschool, not in university. Why? I had no interest in it. Similarly, while I did take history courses, I could have just as easily not taken them and loaded up with other sociology courses instead.
So in answer to your query, "What makes programming so special" I am going to answer with a question: What makes you think programming is so special? Can you really claim that programming is more essential than a rudimentary grasp on physics, chemistry, or the human body? It makes perfect sense to make it a track to choose, but it has absolutely no business being required. It is not special.
I graduated in '03.
It was required that I have X credits in the sciences, Y credits in language, etc. I took biology, but dodged physics. But there was no way I could choose not to learn language. No way I could choose not to take science classes.
> What makes you think programming is so special? Can you really claim that programming is more essential than a rudimentary grasp on physics, chemistry, or the human body?
I'm amazed I need to point this out on Hacker News.
Everyone in the developed world needs a computer to be competitive. Not understanding how it works – and I do not believe you can understand the workings of a computer fully without a rudimentary grasp of logic and control flow – leaves you at the mercy of people who do.
Between your mobile device, your desktop, and all the mechanisms that control your data, there are few other disciplines with a more 24/7 impact on your life than computing.
Understanding the human body is probably the only other subject approaching the same 24/7 impact, and in the United States, we acknowledge this with a physical education requirement.
Since we are on HN after all, I think you should keep in mind that it is very easy to ascribe undue importance to what you know and do. You can code, so it is inconceivable to you that anyone could succeed without that. I am sure accountants are just as baffled that any adult can get through life without accounting classes. Should we make those mandatory too?
But by all means, make a required "computer skills for the workplace" class that actually targets what computer skills the majority of students will actually need.. It will be a complete waste of time for everyone involved.
...what exactly do you mean by "poison the minds"? I think "rolling it into mathematics curriculum" is the best way to make a large portion of students averse to it! In my country, we had a pretty advanced chunk of probability and statistics rolled into the math curriculum - it was a disaster, even the teachers tried to skip it because they thought it ate away precioud time that could be spent delving deeper into calculus (yeah, we had what you in the US would call "college level calculus" put into the high school curriculum but that's a different story...).
...now, for example, if those probability and stats courses would have been a different course or maybe some kind of "workshop", maybe someone else besides the "math geeks" would have gotten something useful out of them! Lots of high school kids hate math, but if you chip away chunks of it and present it as something else they tend to love it. On the other side, if you want them to viscerally hate something, teach it to them as part of "math"!
> ...what exactly do you mean by "poison the minds"?
Not the OP, but I think he's afraid that the level of education provided for coding will be like the level of education currently provided for english or math. How many people do you know who claim to hate classical literature? Many of those are probably because they were forced to churn through and regurgitate about grommets instead of just enjoying a book. How many people claim to hate proofs because they were forced to write down "a straight line is straight" a million times in basic geometry?
I'm really torn on this topic. I'm a programmer, and I can understand how understanding how a computer works can be useful. And if I were to be extreme, I would demand that every programmer should not only learn assembly, but write one non-trival program in it. I mean, it's not hard. Tedious, yes, but not hard. But I'm realistic enough to know that not everyone will agree with that sentiment. What worked for me won't work for everyone.
Back in high school (August 1983 to May 1987) I took two classes that taught programming---Advanced Computers (Pascal on Apple ][ computers, each with a single floppy drive, during the 85-86 school year) and Drama (84 through 87). The Advanced Computers is obvious, but Drama?
Yes. Drama.
I preferred working backstage, with a specialization in lights. And at my high school we had a programmable light control board. So, working with a numeric keypad, you would type in a typical "program:"
1@1
2@1
3@1
4@1
5@2
6@3
7@3
(and so on) The first number is the light number (technically, the outlet the light was plugged into) with the second being a dimmer switch (dimmer slide? I'm not sure what to call it). You slide dimmer number 1 up, and lights 1 through 4 would light up. That was the program (I think there were up to 50 or 60 outlets, and 32 dimmers---it's been quite a few years). And I wasn't the only one who knew how to program this (some might argue that this isn't "programming." I would counter---I am instructing the computer on what to do (you could also program a timed transition between multiple settings). Yes, it is not Turing complete, but than again, pure regular expressions aren't either).And let me say, that computer was more relevant to the students using it, than the Apple ][s. Let's see ... 1985---the computer that year was the Amiga, a 32 bit multitasking computer, followed by the Atari 1040 (also a 32 bit computer, although I'm not sure if it had a multitasking operating system or not); The first 386s had just come out so most PCs where either 286s (mid range) or 8088 (mid to low range) and all 8-bit computers were fading by then. Technology was highly volatile then.
I don't know. The technology has changed too much to really settle one what needs to be taught. Heck, even the concept of a "file" is going away these days.
Oh, good, now people think I came out of the womb with a computer in my hands. You're barking up the wrong tree with this argument since I'm probably much "younger" than even you are.
What about computer literacy, at the level of understanding the software that makes such devices work, makes it less valid than history, science or mathematics as a required field of study?
Put your fingers in your ears if you'd like, the crucial point is that we've already got a system where you have to learn things you don't necessarily want to learn. What is it about the most important growth subject of the next century that exempts it from such an externally-imposed curriculum?
When people that spend thousands of dollars to learn programming can't even do simple coding exercises, what makes you think a high school student struggling under the current workload will do?
http://www.codinghorror.com/blog/2007/02/why-cant-programmer...
You know, maybe bringing back driver's ed wouldn't be a terrible idea after all.
You don't necessarily need to know how a car works to drive one, but if you don't you're completely at the mercy of those who do when something goes wrong. Even when things are going okay, you can only do magic rituals to your car, with no understanding. That's how most people interact with computers. It's a bad thing.
What to teach? The very basics. Some idea of processors, machine code, compilers and interpreters. Skim over computability, Turing completeness, the halting problem. Designing an algorithm to catch edge cases. Conditionals, loops, variables. Strings. I think that's enough to start off with. If they're still interested, set them loose with some real coding classes, or just point them to the Python tutorial.
High school students take Spanish. Why not programming?
You also seem to be making the mistake of thinking that writing and coding are mutually exclusive.
Youths in today's world only need to "understand how computers work" in order to use them in an academic sense not unlike we need to "understand how the human body works" in order to maintain one. Get the basic mechanics of use down and you're good to go. In the case of a computer that could be "touch here to facebook", in the case of a body that could be "wear a condom, listen to your doctor, and a caloric deficit will drop the weight."