Strategic CIO // IT Strategy
Commentary
6/14/2013
11:10 AM
Connect Directly
RSS
E-Mail
50%
50%

Should All High School Students Learn Programming?

Google, Microsoft, Oracle and other tech giants propose that computer science become a required proficiency in Massachusetts public schools to help address the technology labor shortage. Critics call this a kludgy solution.

 8 MOOCs Transforming Education
8 MOOCs Transforming Education
(click image for larger view and for slideshow)
Technology is pushing education in two directions. One is up the mountain known as technology adoption. The other is into the valley of creating demand for more tech-savvy people.

As any CIO knows, adding technologies always involves a climb. Technology advocates and sycophants will call the climb a gentle stroll and extol the views from the top. But getting something valuable out of a technology can be a perilous affair -- CIOs fall off the mountain, those meant to use the technology get lost or trapped or crushed in avalanches. Even those who make it to the top often find the view obscured.

The climb could get easier if we had more tech-savvy people. What if everyone in the country actually knew something about programming? Why don't the schools educate people to be more technological? Shouldn't the three Rs (reading, writing and 'rithmetic) get an update?

That's a proposal from some major technology firms, including Google, Microsoft and Oracle, that are pushing to have the Commonwealth of Massachusetts require computer science courses for all public school districts and add computer science proficiency to the standard tests a student must pass to graduate from high school. Those tests currently include English, math and a science or technology field. If the proposal finds traction, Massachusetts would be the second state to mandate technology education, after South Carolina.

[ Gamification can improve student learning, but it needs to be done right. Read 3 Keys To Gamification For Education. ]

One of the leaders of this push, Google's Steve Vinter, told the Boston Globe, "This is really about workforce development."

The Globe reported that there are about 150,000 computer science and math-related jobs added every year in the U.S., and only 100,000 college graduates with relevant degrees. The tech companies argue that many more jobs than those 150,000 require computer proficiency, and that it should be a core part of our educational system. Meanwhile, only 713 high school students in Massachusetts took an advanced placement exam in computer science last year.

People need to be able to read, write, do math and reason. All of these subjects should be taught in the schools. But do all people need to be able to code?

Before you respond, consider these questions:

-- Why? Existing math and science classes should teach the major building blocks of reasoning we need for programming.

-- What language would be taught? My knowledge of BASIC and Pascal, gathered in high school and college, isn't even worth putting on a resume these days.

-- What do companies do with their workers when languages change -- send them back to high school?

-- If companies think a few single-semester high school classes in programming will help, why don't they offer it themselves?

As to that last question, there's precedent. IGN and Zoho are two relatively small businesses that still manage to develop programmers from unconventional backgrounds. Zoho runs its own university to train high school students how to program.

If these smallish businesses can do it, why can't Oracle or Google or Microsoft? It might be easier for them to attract people capable of teaching programming. Such people would certainly make more money in the corporate world. Companies could set up apprenticeships that would create work experience for would-be programmers. Besides, isn't it disingenuous for tech titans to suddenly decide that the government, usually bashed for incompetence, is the best way to educate workers?

Education CIOs know they face widely divergent climbs. Even in a high-tech state like Massachusetts, the topography of education technology varies broadly: Some schools exist in a technology desert, with poor connectivity, no infrastructure and no ability to invest in teacher training. Their climbs are fraught with peril. Other schools, with resources and time, might indeed find the slope gentle.

Also, requiring computer science might turn it into just another subject kids feel is force-fed to them, warns Alec Resnick, part of the founding team of the Somerville STEAM Academy, a proposed public vocational lab school in Somerville, Mass., that will focus on computational, project-based education modules for arts and science. The STEAM Academy is tentatively slated to open in the fall of 2014.

"I read the Globe article, and the first thing that came to mind is, 'I really hope that computer programming doesn't become just another thing to push down the pipeline,'" Resnick said. "There's this notion that school is tasked with information transmission. I bristle when I hear people say we need to add this thing or that thing to the pile, computers especially. It's not a topic that you cover the way you talk about traditional subjects. The most exciting part of programming happens outside the classroom."

While Resnick doesn't argue that it's important for people to have fluency in computing, he also points out, "We don't measure our English literature teaching by how many authors it produces. Should we measure our computer science programs by how many software engineers we produce?"

There's an issue beyond schools: it's the way we program. I recently interviewed the CEO of a Massachusetts software company who thinks we need fewer programmers. "Should everyone program? I think that's wrong," says Alan Trefler, CEO of Pegasystems, a fast-growing Cambridge company that makes enterprise software. He thinks the U.S.'s entire approach to programming is wrongheaded and stuck in the 1950s. What businesses need, he says, is to eliminate the need for so much programming.

Maybe that's not possible. Maybe programming should become part of the vocational school curriculum. But jamming programming into an already maxed school day seems like a kludge. Let's hope Google and Microsoft and Oracle realize they're going to fail before they start, and come up with something better.

Comment  | 
Print  | 
More Insights
Comments
Threaded  |  Newest First  |  Oldest First
Lorna Garey
50%
50%
Lorna Garey,
User Rank: Author
6/14/2013 | 4:47:09 PM
re: Should All High School Students Learn Programming?
I think in a perfect world, kids would all take a short course on the basics of programming, and those with an interest could then select more in-depth training as an elective. And, we should be doing a better job integrating tech into math and science courses where it fits organically.
OtherJimDonahue
50%
50%
OtherJimDonahue,
User Rank: Apprentice
6/14/2013 | 7:31:12 PM
re: Should All High School Students Learn Programming?
"We should be doing a better job integrating tech into math and science courses where it fits organically."

Absolutely, Lorna--that needs to be a priority.

Jim Donahue
Copy chief, InformationWeek
ChrisMurphy
50%
50%
ChrisMurphy,
User Rank: Author
6/14/2013 | 9:08:02 PM
re: Should All High School Students Learn Programming?
We have a shortage of programmers, but we're going to find enough people qualified to teach programming in every high school? Using computers to effectively teach core science and math is better and more practical.

That said, I would love to expose my daughters to the kind of short course Lorna describes below. Anyone know of a good such course online?
Andrew Hornback
50%
50%
Andrew Hornback,
User Rank: Apprentice
6/15/2013 | 9:26:19 PM
re: Should All High School Students Learn Programming?
Check out what's available on Coursera and the like... the price is right and if they keep up with the course, they'll learn something.

I also recall a university in the Midwest (maybe Indiana?) offering courses on C programming freely through the web. Just a Google search away...

Andrew Hornback
InformationWeek Contributor
Thomas Claburn
50%
50%
Thomas Claburn,
User Rank: Author
6/14/2013 | 9:29:11 PM
re: Should All High School Students Learn Programming?
Rather than looking at it from a requirement perspective, consideration should be given to showing student why programming can make them better at almost any job that involves knowledge work. It takes a particular mindset and aptitude to be a professional programmer, but almost anyone can derive some benefit from being able to write a Python script that automates some work-related task. Every journalist, for example, should know enough about code to extract data from a data set.
ggiese87101
50%
50%
ggiese87101,
User Rank: Apprentice
6/14/2013 | 10:49:59 PM
re: Should All High School Students Learn Programming?
I remember learning Logo (or "Turtle", as I called it) as a kid. It was fascinating to me that a few simple commands could create visually interesting patterns. And every kid in the class was able to figure it out. Various methods of teaching computer science should be taught to kids at nearly every level, and for a variety of reasons. Logo and the like are great for elementary school. MIT's AppInventor (appinventor.mit.edu) would be great for middle school or high school. Pure programming languages might be best left for electives?

As Thomas mentions, working with data sets and understanding automation (plus interfaces and prediction of results) are important skills needed to work with the tools necessary to do good math and science, but also to work with the "Internet of Things", or as a Wired article calls it, the "Programmable World". If everything we own and/or interact with has sensors and an automatable interface, understanding a somewhat complex system will be necessary for daily life!

Anyway, some amount of "pure" but basic/applicable computer science should be part of the curriculum, as well as integrated into other courses, and maybe even more than just math and science.

BTW, a local school has completely dropped paper books and notes and turn-in reports in favor of all-computer eBooks and Word documents (and etc.), and this is at a school that has "normal" high school class periods and class subjects with hands-on activities, not even close to a sit-in-your-chair-and-watch-videos school/home school model. Times are a-changin'.
cbabcock
50%
50%
cbabcock,
User Rank: Strategist
6/15/2013 | 12:00:35 AM
re: Should All High School Students Learn Programming?
I once sought a short, introductory course to computers and ended up in a Fortran programming course. Ouch. It taught me a lot, mainly that I wasn't a very good programmer. Teaching computer languages is going to be passe very soon. Even professional programmers will work from programming workbenches in the cloud that can formulate routines in multiple languages and provide functions on a graphical design board without the user needing to write a stitch of code. The course that's needed is still an introductory course to computers -- one that teaches what they can do and can't do, and how humans still need to use their heads. Charlie Babcock, editor at large, InformationWeek
jries921
50%
50%
jries921,
User Rank: Ninja
6/15/2013 | 6:08:44 PM
re: Should All High School Students Learn Programming?
Authoring systems were supposed to make both programming languages and programmers obsolete 20 years ago; yet we still have both. And to the extent that authoring systems were used, the people best at using them were programmers.

For better or worse, it's a lot easier to be precise and efficient with the written word, then with either the spoken word or a GUI. I don't expect that to change.
Chaz315
50%
50%
Chaz315,
User Rank: Apprentice
6/15/2013 | 4:58:59 PM
re: Should All High School Students Learn Programming?
What happened to the free market and supply and demand? If you want more programmers, raise the salaries and benefits and more people will choose programming instead of accounting, engineering or an MBA for example. All those choices currently pay better than entry level programming so thats where the talent goes.
jries921
50%
50%
jries921,
User Rank: Ninja
6/15/2013 | 6:04:00 PM
re: Should All High School Students Learn Programming?
First of all, I don't think there's a shortage of programmers. If there were, then programmers would make more and the unemployment rate for them would be a lot lower; and employers would be a lot less picky when hiring them (they might even be willing to train people, like my father was trained by the U.S. Marine Corps back in 1966 before there were any academic CS programs). Rather, this appears to be an effort to artificially inflate supply, helping to minimize labor costs.

Second, I don't think everybody has the aptitude for programming, just as not everybody has the aptitude to play a musical instrument. Those who have it should be encouraged, as learning programming is the most effective way to learn how computers work, but I see no public benefit in teaching people who lack both the proper mindset and the desire to learn. There are things that every citizen should know (like history, civics, science, and clear thinking, in addition to the 3 R's); computer programming is not one of them, any more than auto mechanics is (arguably, the latter is more important).

That said, I do think programming should be offered to high school (and possibly middle school) students as an elective. It's a useful life skill, no matter what one ends up doing for a living, but we shouldn't pretend it's for everybody.
Number 6
50%
50%
Number 6,
User Rank: Moderator
6/17/2013 | 2:57:48 PM
re: Should All High School Students Learn Programming?
Excellent points. That was the setup we had, and fortunately my public HS was way ahead of its time offering programming as an elective to all students. Once I took it, I was hooked.

I can't justify requiring everyone to take it, however. There's also a shortage of physicians, so why not start teaching everyone organic chemistry in HS? Oh, right, not everyone would do well and it would also lead to an oversupply, which would depress incomes for doctors. And the AMA would make certain that would never happen... unlike engineering's professional organizations.
Michael Fitzgerald
50%
50%
Michael Fitzgerald,
User Rank: Moderator
6/19/2013 | 12:49:17 PM
re: Should All High School Students Learn Programming?
I would agree that requiring students to take a semester of programming in high school warrants serious consideration. MassCAN sounds like it wants a lot more, though let me note that I could not reach the MassCAN people directly.
Zman7
50%
50%
Zman7,
User Rank: Strategist
6/15/2013 | 9:29:19 PM
re: Should All High School Students Learn Programming?
Are you sure about Oracle and Microsoft? I worked at Oracle for 10 years and took class after class of all sorts of programming. They even had a division called Oracle University. Has this stopped or are you just assuming?
I do know that it might be cheaper to import Indian programmers under phony H1B visas (rather than train US workers) because there was a lot of that going on too...
Andrew Hornback
50%
50%
Andrew Hornback,
User Rank: Apprentice
6/15/2013 | 9:33:05 PM
re: Should All High School Students Learn Programming?
Was Oracle University an internal-only division? I know of a few organizations that have similar structures that are only for employees - makes it easier to shift them between division if they understand more than one product.

Andrew Hornback
InformationWeek Contributor
Number 6
50%
50%
Number 6,
User Rank: Moderator
6/17/2013 | 3:00:28 PM
re: Should All High School Students Learn Programming?
And many of those corporate "universities" have been cut back significantly.

Check out Dr. Peter Cappelli's "Why Good People Can't Get Jobs" or a summary of his work at http://blogs.hbr.org/cs/2013/0... -- One of his explanations is that companies no longer want to spend to train new employees in the skills they need.
Michael Fitzgerald
50%
50%
Michael Fitzgerald,
User Rank: Moderator
6/19/2013 | 12:38:10 PM
re: Should All High School Students Learn Programming?
It's a good point to raise, and perhaps worth a follow-up -- why isn't the existence of something like Oracle University, or Microsoft university, etc. enough to do the job? I assume Oracle U does still exist, but is not targeted at teaching non-programmers the art of programming.
Andrew Hornback
50%
50%
Andrew Hornback,
User Rank: Apprentice
6/15/2013 | 9:31:29 PM
re: Should All High School Students Learn Programming?
Okay, I've got to throw this in -

When I was in high school (back in the stone ages) in a small town in Virginia, it was REQUIRED that all 8th graders have one semester of Computer Literacy. Period. We had to learn keyboarding, word processing (with Word Perfect 5.1), spreadsheets (Multiplan) and simple databases (Paradox) as part of the curriculum.

Now, granted, this isn't programming, but for a small, "backwoods" Virginia public school system to be thinking like this during the Reagan administration speaks volumes.

Of course, we also had the option to take Computer Science I (BASIC), CS II (Pascal), CS III (C, although the only person to ever make it to CS III was already versed enough in C that he could have taught the class). I ended up taking CS I when I was a senior, just to have something to do and could have taught the class since I had been programming in BASIC (interpreted and otherwise) since the early 80s.

What I think would be much more important than teaching the syntax of a specific language or package would be to teach basic software engineering skills - being able to look at a problem logically, apply logic to solving that problem, develop a strategy of solving that problem and then implementing the code to solve it.

Teach the entire software development lifecycle, not simply something with a little more depth than being able to put "Hello, World!" in a window on a screen using a specific language on a specific platform. I believe the idea of transferrable skills is going to be much more important when a student goes on to higher education than it will be to know how to write code in a specific language.

Real world example time - how many folks learned COBOL 30+ years ago that kept up with technology and now code in something like Java, Ruby, etc.? Does knowing COBOL syntax really help with modern programming languages? Now, does knowing how to create, organize and analyze code translate better for use with more modern languages? Technology changes, students need skills that can keep up with those changes.

All of that said, should /everyone/ know /something/ about programming? Indeed - especially with the advent of the consumerization of technology upon us. Knowing how to do simple troubleshooting of an app or whatever is going to be critical when everyone is wandering around with a smartphone, tablet, wearable computer (or combination of all three). Does everyone necessarily need to know how to write web code to do SQL queries? Not in my mind.

And finally, the best class that I ever took was actually classified as a Philosophy course, but was a requirement for all engineering, sciences and computer science majors as well. Odd, right? Well, one would think that (Symbolic) Logic and Critical Thinking would be a more popular and more widely required, but at least not at that school. If you teach kids (or people) how to think, you open the entire world up to them.

Andrew Hornback
InformationWeek Contributor (and BASIC, Pascal, C and Fortran programmer)
Number 6
50%
50%
Number 6,
User Rank: Moderator
6/17/2013 | 3:04:57 PM
re: Should All High School Students Learn Programming?
Like yours, our local middle school also taught all students "Keyboarding," which replaced the old Typing course. It did teach the students how to use the basic office applications: word processing, spreadsheets, presentations. Good skills for anyone to know no matter what career they ended up in, and certainly useful for any subsequent school and college courses.

Programming? Keep it as an elective, but encourage all school systems to offer it.
DavidC047
50%
50%
DavidC047,
User Rank: Apprentice
6/17/2013 | 7:16:23 PM
re: Should All High School Students Learn Programming?
Nothing wrong with all high school graduates having worked through one project giving a set of instructions to the little man inside the box, same a few weeks learning to sew a button or make a birdhouse.
Maybe a few of them will realize they want to study it more.

But "so local tech companies donG«÷t have to rely on foreign workers to fill future programming and engineering jobs"? Besides the fact that they don't have to (stop showing young would-be engineers that they are setting themselves up for a career of stagnant wages, if they can find work in their field at all, and the right kids will do what they love -- as others wrote there are plenty of unemployed and under-employed engineers available now) there is no way to teach what one learns in a 4-year college degree plus years as a junior engineer in one, or even several, high school classes.

Kudos to the Gates' and Zuckerberg's and Karp's who had brilliant ideas at the right time and were able to develop them to marketability. If you were a manager with a legacy project that needs maintenance and enhancements and isn't a quick and dirty operating system nor a Web 2.0 social application nor a photo sharer, would you rather have one of those wunderkinder on your team, or a trained and broadly experienced engineer?
jonten
50%
50%
jonten,
User Rank: Apprentice
6/18/2013 | 3:37:35 PM
re: Should All High School Students Learn Programming?
In the mid-1960s, when I was in middle school, it was decided that we needed to be exposed to "new" math. This was exposure to binary, octal and hex math that was totally useless and only served to confuse most of us. This looks like the same thing. I can't begin to list all of the programming, DB and HTML type languages that I've been exposed to over the last few decades in IT and most of them are no longer in existance. With things changing so quickly, the language they learn in HS will be outdated by the time they graduate. Most of the kids in HS will never move on to high tech jobs so why add this to the mix when most students don't seem to be grasping the basic HS courses.Make it an elective in HS and let them broaden their knowledge post HS.
sixscrews
50%
50%
sixscrews,
User Rank: Apprentice
6/18/2013 | 10:08:37 PM
re: Should All High School Students Learn Programming?
It's not programming that's important - it's learning. And we are abandoning learning, substituting a collection of (soon to be obsolete) technical manuals and a slide rule or a calculator or a desktop computer or a 'smart' phone or a tablet or a brain-driven whatever for the real thinking that can derive knowledge from scattered information. If we don't understand the tools we use they will use us - and we won't like it.

And in the same vein I beg to differ with jonten's comments on binary, octal and hex math as being 'totally useless .....and... confus[ing].' I, too, was a new math victim in the mid '60s and, as with any subject, a the teacher who doesn't understand the material can't help the students, either. I guess I survived some bad teachers - I'm sorry jonten didn't.

For me, something stuck and when the time came to make those seven segment LED displays work (circa 1974) that hex math came back like gangbusters - and has never left me - just as the logarithmic conversions related to the slide rules that seemed so arcane, important and useless at the time are still useful when I work with filters, power devices and RF.

As for HTML - I don't write raw HTML anymore but it sure is useful when trying to figure out why a web page doesn't look right - it's the pidgin language of the web, often used but never honored.

But to get back to education - the word 'mathematics' comes from the Greek root 'to learn' - it is a way of training the mind and is closely connected to the key liberal arts of grammar, rhetoric and logic. Add arithmetic, geometry, music and astronomy and you have the seven classical liberal arts that are the wellsprings of our Universities.

If we equate education with knowing where to look in the manual we are the poorer for it - and we will never be able to write the manual, let alone build the thing the manual is supposed to describe.

Two thousand years ago Titus Livius bemoaned the decline in the education and morals of the youth of Rome - and each generation before and since has done the same. Times change, what we think we know changes, but the essential functions of the human brain do not change and if we think a quick look at the current (or two versions back) manual and a few lines of the latest coding language are 'knowledge' we are in bad shape - learning, in its core, does not change, and it is the responsibility of all of us to learn all we can before time overwhelms us all.

ss/wb
NJ Mike
50%
50%
NJ Mike,
User Rank: Strategist
6/19/2013 | 11:32:15 AM
re: Should All High School Students Learn Programming?
These companies want all students to learn computer science. That is so nice and noble. However, unless you're going to extend the school day and/or year, you will have to drop something from the curriculum to make room for it.
We don't have enough people who know how to program? Basic economics says if there is a shortage of something, raise the price you are willing to pay for it, that will increase the supply. Pay programmers more, and more people will be willing to learn how to become programmers.
Michael Fitzgerald
50%
50%
Michael Fitzgerald,
User Rank: Moderator
6/19/2013 | 12:46:40 PM
re: Should All High School Students Learn Programming?
A practical issue with proposing to add computer science as a requirement are the number of things already jostling for time in the school day. I've had people make arguments that financial literacy should be added, and that every student should learn a second language (a spoken language, not a computer language). It's also a big question as to where we would find enough teachers who could teach computer science.I've heard anecdotally that it's hard to find math teachers, which would suggest a problem finding computer science teachers. I did not find statistics specific to Massachusetts on math teachers (I did find a report suggesting that there could be a shortage of math teachers in the future). If anyone has them, I'd be interested in seeing them.
Saska
50%
50%
Saska,
User Rank: Apprentice
6/23/2013 | 6:44:18 AM
re: Should All High School Students Learn Programming?
I like the article.Coding should be introduced to schools as a regular or at least an optional subject to choose, since the technology and the education itself are going in this direction.The curriculm needs to be created in a manner that it will not reject students' interest, but the opposite. Proper teacher should teach it.
AdamFort
50%
50%
AdamFort,
User Rank: Apprentice
1/30/2014 | 6:00:33 AM
re: Should All High School Students Learn Programming?
Obama and Google talk about "Hour of Code". So I beleive each kid should try to code some basic things in interactive way.
Transformative CIOs Organize for Success
Transformative CIOs Organize for Success
Trying to meet todayís business technology needs with yesterdayís IT organizational structure is like driving a Model T at the Indy 500. Time for a reset.
Register for InformationWeek Newsletters
White Papers
Current Issue
InformationWeek Tech Digest - August 20, 2014
CIOs need people who know the ins and outs of cloud software stacks and security, and, most of all, can break through cultural resistance.
Flash Poll
Video
Slideshows
Twitter Feed
InformationWeek Radio
Sponsored Live Streaming Video
Everything You've Been Told About Mobility Is Wrong
Attend this video symposium with Sean Wisdom, Global Director of Mobility Solutions, and learn about how you can harness powerful new products to mobilize your business potential.