Who Will Teach U.S. Kids To Code? Rupert Murdoch
theodp writes "For all of their handwaving at Code.org about U.S. kids not being taught Computer Science, tech execs from Microsoft, Google, and Facebook seem more focused lately on Plan B of their 'two-pronged' National Talent Strategy. So, who's going to teach your children CompSci? Enter friend-of-the-Gates-Foundation Rupert Murdoch. Murdoch's Amplify Education is launching an AP Computer Science MOOC this fall (Java will be covered), taught by an experienced AP CS high school teacher (video). An added option, called MOOC Local, will provide additional resources to schools with students in the CS MOOC. MOOC Local will eventually cost $200 per student, but is free for the first year."
Some of the subjects that will be included are:
* wiretapping for beginners
* how to put up ineffective paywalls
* how to run a thriving social media network into the ground
Of course, being a "computer science" class (by which I'm sure they mean "ICT for dummies"), there won't be some of Rupert's other specialties. Such as:
* How to influence people by a coordinator national campaign by the newspapers and other media you own (and thus ensure a victory for the side who promised you the most in the next election)
* How to lie, cheat and steal your way out of trouble
* News? We're not a news channel, we're an entertainment channel. And we'll take it to court to ensure we can lie while pretending it is news.
HELP MY ACCOUNT HAS BEEN HACKED BY AN ILLIBERAL ART STUDENT SET TO DESTROY THE INTERWEBZ!
When are people going to realize "coding" != "computer science"? (or <>, or ! .equals(), or ne, etc. depending on your flavor). Nothing against Java devs, but IT needs a little more than programmers in language X. There are millions speaking English, Spanish, etc., but not that many of them churn out bestsellers, or even mundane but usable prose. You're certainly not going to make good or even adequate writers by (only) teaching a language. You're not going to improve the IT industry by training a million more monkeys to (only) tap away at a million more keyboards.
But perhaps Oracle does like to see an increase in their user base.
[OK, rant over]
Free, as in your money being freed from the confines of your account.
Let them teach themselves. That's how many of the current generation of programmers got started. And it's even easier now than it was before. There are so many free resources on the internet to get you started. If there is any direct teaching, it should be in programs outside the regular school curriculum. More free day-camps and stuff where teachers can teach without having to worry about state imposed curricula. Students are free to be there or not to attend so you have kids who (mostly) want to be there, which creates a better learning environment for all. Most people I know who are good at anything aren't good because of what they learned about it in school, but rather what they did outside school to further their own learning.
Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
As the profession of software development matures, I increasingly question the value of teaching coding first. That gives the illusion that once you know how to code, you are ready to be a developer.
In my opinion, that approach is what has led to the pervasively vulnerable infrastructure of today. People think that because they can make something work in PHP, that's all there is to it.
I'm suggesting that teaching kids to attack and exploit vulnerable systems first might be more valuable. Once you understand the basics of that, you become powerfully motivated to avoid writing vulnerable code. And as you probably know, you need to learn some programming anyway to be an effective attacker.
I realize this will never happen. There are lots of people who would say, "Oh, noes, we can't teach kids to hack! They'll do something evil!" I would reply, if you are seriously afraid of having your systems compromised by high-school kids, then you should agree with me on the importance of teaching defensive programming early!
[Sir Garlon] is the marvellest knight that is now living, for he destroyeth many good knights, for he goeth invisible.
Computer science as much about coding as astronomy is about building telescopes ...
The first thing that needs to be done is not have all American students (who are there because the have some interest) quit these courses after the first several semesters. The second thing is to stop excessive outsourcing of development jobs. This has nothing to do with skill and training, its more about saving money. The third thing is that these businesses don't feel your computer science degrees are all that important anyway. You are putting to much importance on technical things when these companies believe their business models and management are the keys to success (not technology). When it comes to technology... the feel they can get anyone to do this work.
Let them teach themselves. That's how many of the current generation of programmers got started. And it's even easier now than it was before.
How so? Back then, a lot of people weren't doing "computing" style tasks on a machine that's digitally locked down. The only machine resembling a computer that was digitally locked down then was a game console, and game consoles didn't try to be all-purpose home entertainment devices the way they are now. Nowadays, a child might not have access to a PC but instead might have access only to devices running iOS, for which programming tools are priced way out of the range of a child saving his allowance.
It's hard to build an interest in astronomy without an interest in amateur stargazing, and it's hard to build an interest in that if all the telescopes to which you have access are digitally locked down to view only specific stars and planets, which the manufacturer claims is a safety measure to keep, say, non-professionals from pointing the device at our sun. Likewise, it's hard to build an interest in computer science without an interest in amateur coding, and it's hard to build an interest in that if all you have are iDevices and game consoles engineered specifically to lock amateurs out of coding.
Are they teaching Comp Sci or Java? There's a difference, after all.
When are people going to realize "coding" != "computer science"? (or <>, or ! .equals(), or ne, etc. depending on your flavor).
I think it'll happen when you read past the Slashdot title to the summary, and realize that the article is talking about computer science and that the whole "Who Will Teach U.S. Kids To Code?" this is a fabrication of the submitter/editors.
Nothing against Java devs, but IT needs a little more than programmers in language X. There are millions speaking English, Spanish, etc., but not that many of them churn out bestsellers, or even mundane but usable prose.
This is probably the most elegant argument I have ever seen for teaching algorithms, big O notation, and other theory topics, instead of languages, which is a switch most U.S. universities made after the decision was forced by the accreditation change in the late 1980's.
And it's absolutely, totally, completely wrong.
A craftsman must know his tools.
You need to learn at least one language deeply enough that you have a feel for the calculus of the language, and how to force it to represent any CS concept you want it to represent. Ever since they stopped teaching languages as a subject because they could no longer offer credit hours for doing so, the U.S. has been mostly turning out crap coders, except at schools like Brown that have self-directed programs where you can actually still learn a language from an expert practitioner.
A secondary consideration is that, when programming in a high level language, you should know what's happening under the covers. Java and other "pointerless" languages are an incredibly poor choice for doing that. So I agree on your condemnation of teaching the Java language, but it's for a reason other than the one you cite. The best way to understand what's going on under the covers is to use a high level language which compiles to assembly, and stop after the compilation to assembly; "cc -S" does this, although C isn't the only language in this category. Which brings me to the second point: apart from learning a single high level language to a great depth, it's also necessary for the student to learn an instruction set for a particular architecture, which, given prevalence, is going to mean either x86 or ARM these days. If you can't look at the high level language and know what assembly is likely to be generated from it, you do not understand your high level language. Without a grounding in assembly language, you are never going to have an intuitive grasp of memory layout or pointers, and if you learn "pointerless" languages, particularly ones with garbage collection, you may be able to program them, but you aren't going to be able to write a runtime for them yourself, with no intrinsic idea of memory layout, reference, or management.
Which leads us to our third consideration, and the one that gets in the way of problem solving using computers as a tool, which is really what we are trying to teach when we talk about teaching "computer science" or "coding": You need to repeat the process with a second high level language that also does not target a virtual machine. Only by being able to contrast the two calculus of the different languages are you going to be able to generalize in terms of an arbitrary computer language being able to be applied to a problem set. There's a reason that mathematics courses teach both Newton and Leibnitz style calculus to students, and it has nothing to do with not being able to solve problems with one that you can with the other. It has everything to do with the ability to generalize theory across systems.
The fourth and final consideration is algorithms, big O notation, and other topics, and how to represent them in your high level language. Yes, you need to learn this, but you need to learn it in a context of a language calculus, since throughout your career, if you end up coding, you will be called upon to translate these concepts to the
All the amazing programmers I've ever known started out self taught. They all have a back-story about how they had "this old machine.." or they would "go into computer lab on study hall.." or "..spent hours typing in the code out of the magazine..".
I don't think you can effectively "Teach" programming as a large portion of it is right-brained, but making some sort of CS syllabus available is a great idea for kids that actually want it. With all the action to abolish public education, I am dubious about any suggestions founded by capitalist juggernauts.
Join the Slashcott! Feb 10 thru Feb 17!
No they do not. Cyberwarriers do not need to know how to code.
Mere coder peon jobs can be outsourced to the countries we are at cyberwar with.
What do you fail to grasp in the job title of Cyberwarrier? It is about good management skills, marketing and politics.
I'll see your senator, and I'll raise you two judges.
Surely with all of these advances in techonolgy, most programming chores can be turned over to virtual robots in the future. If the predictions are correct that robots will replace most labor jobs, then couldn't they also replace most programming jobs, too? Might we not be headed back to the day where we looked at programs as accepting inputs into a black box and spitting out the outputs?
For sure, there will be computer scientists in the future, just like there will be physicists, but in the early days of the automobile and even into the middle of the last century, you had to be a mechanic to operate one. Today, everything is plug and play. Architecture used to require drafting and engineering skills, but today, you input your ideas on a computer and behold you have your plans.
At some point, with all of those design patterns floating around in cyber-space, isn't it going to just be a matter of a program assembling the pieces based on the parameters inputted by the user, not the programmer?
Why not trades schools / apprenticeships? like system?
College Computer Science is overly tilted to theory (very-es from to school to school) and can take 4+ years and 4+ years pure class room can be over kill.
And when you talk about skill gaps it seems lot's of people with Computer Science schooling seem to have them.
also other parts of tech like media arts good places like Tribeca Flashpoint Media Arts Academy are hurt by being only a 2 year school but the said thing is that you can learn alot more with real skills and real work there then at an 4 year school.
While we are it, let's teach everyone to engineer, fly an aircraft, and perform open brain surgery!
... that some parasite would come along and try and 'monetize' the MOOC craze.
Over the past few years con artists^w^w profiteers^w investors have set their sights on education in general.
Sheesh, evil *and* a jerk. -- Jade
I took AP computer science in high school, myself, and it really wasn't programming, it was pretty much the same as a college data structures class (arrays, linked lists, trees, sparse matrices, searching and sorting, etc.) Going straight into that without some earlier programming foundation doesn't really work so well. We need to start kids earlier to really get proficient.
The logic skills needed to code can be developed, too, but it needs support much earlier, including in elementary school math. I remember in 2nd-4th grade, our textbook was called "sets and numbers," and we did a lot with set theory, which my son's school hasn't. There are tradeoffs: he was into algebraic equations in 4th grade, which I never did until at least middle school. But overall it seems like he's had less emphasis on logic and discrete math and more on general/continuous math. My wife and I have tried to supplement it, but it isn't really standard anymore, where we live.
Anyway, if kids get enough practice with sets and set operations in elementary school, then logic operations a bit later (which and teach them how it's really the same, AND = intersection, OR = union, etc.) and throw in a few other concepts like variables, then they should be ready to start getting some early programming classes in middle school, which will stick with them a long time.
If you want Americans to learn programming, provide jobs for them.
Before you bash MS too hard on this, you should probably check out the amazing game/engine they're providing to xbox, xbone and win8 users for free:
https://joinprojectspark.com/
It's meant for kids (though I'm sure adults will become engaged) and is basically the AAA version of Kodu, a programming language that was built by MS Research with the explicit aim of teaching kids to code.
if you're going to be a computer scientist, you're going to need some zeros...
I've been wondering what is up with Slashdot lately, all these fawning articles in support of the astroturf campaign for getting more cheap programmers into the U.S. Despite all evidence to the contrary (good studies by professor Norm Matloff, and quantitative proof at EPI.org) we keep hearing about the horrors of not enough STEM workers.... I just noticed that Slashdot is part of DICE now. Ah..that explains a lot.
Are they teaching Comp Sci or Java? There's a difference, after all.
Yes there is, just like there is a difference between mathematics and engineering. One is theory the other is practical.
Correct. In theory Java is great. In practice, Comp Sci will teach you how to be a good programmer.
Murdoch's people don't code - but they sure know how to hack!