Hacker News new | past | comments | ask | show | jobs | submit login
Obama Pledges $4B to Computer Science in US Schools (wired.com)
157 points by zds on Jan 30, 2016 | hide | past | favorite | 146 comments

How much of this will go to good teachers and interesting programs? And how much will simply be spent on overpriced machines (microsoft) and proprietary "connected classroom" concepts (apple)?

You don't need much equipment to teach CS. Basic machines will do. And there is no need to spend any money on software these days (f/oss). I worry that this money is less an educational initiative and more a handout to those companies who sell services to schools. Which organizations are behind this pledge?

This was my only thought. When a system is that efficient at squandering resources, you can't fix it by throwing more resources at it.

I'm reminded of L.A. Unified and the iPad debacle:


They bought over 120,000 iPads, they paid above retail, and nobody ever thought of implementing a policy assigning liability or establishing any procedure in the event of damages or theft. To iPads. That were given to the children of low-income parents. In low-income neighborhoods. In Los Angeles.

Another few hundred million dollars went of course to an overpriced and ineffective Pearson curriculum. Another few hundred million to "improve internet connectivity in schools."

All told they spent about $1.5 billion -- not nationwide on colleges, but in just 1 school district (LA Unified) -- and we really have nothing to show for it whatsoever. Apple made some money, Pearson made some money, some company that makes expensive routers probably made some money, and the citizens ... well, not so much happened for us.

School vouchers or, even better, tutor vouchers are the way to go.

If students actually had a choice in how education funding was allocated, they would spend it directly on higher teacher salaries to pay for the additional teacher labor hours necessary to receive individual one-on-one instruction.

They wouldn't spend it on proprietary learning materials, large classrooms, large facilities, large administrative offices, and large campuses.

Get rid of the "smart classrooms" and allow students to pay directly for instruction with a student\teacher ratio of 1.

I have no children, but I want to have an educated population.

When you take my tax dollars and give them to parents as vouchers, you reduce or eliminate my democratic right to influence how we educate the next generation.

Why should only the children and parents have a say in that process?

I'm not saying an elected school board provides perfect oversight, as the iPad debacle shows, but at least it has more public oversight than washing our hands of the problem and delegating all responsibility and economic power to the parents.

Also, there are any number of college students who use their money to go to schools with "proprietary learning materials, large classrooms, large facilities, large administrative offices, and large campuses", so no reason to believe that things will be different for primary and secondary schools.

And there is plenty of evidence to believe that parents are attracted by schools which advertise "smart classrooms", and tout (incorrectlu, IMO) how they use computers to teach more effectively than a teacher does.

You are unfortunately right on the money. Having spent the past few years in this space, I've been shocked at how quickly my drive and desire to work in it has eroded. None of this is really about driving kids into CS/engineering -- to your point, the only investment you'd really need for that to happen at this point is fantastic teachers. Instead, the vast, vast majority of this money will go into buying useless crap, overhead, and consulting fees, with little to nothing to show for it in terms of educational achievement. All you have to do is to go into the vast, vast majority of classrooms that are pushing these "coding" initiatives nowadays to quickly realize how little stakeholders are actually caring about what kids are getting from these classes.

For Code.org, you will find https://code.org/about/2015 to be quite interesting, including a breakdown of where money was spent. You'll see that a lot goes towards training teachers and building interesting programs.

Man................. You raise a good point. I read the headline and was pretty stoked to see my country reinvesting in itself. But this is US, fuck.

I think iPads are wonderful devices, but to think a school would buy them for their students just seems stupid and short sighted. I think Chromebooks offer the most compelling class room solution. They are hyper secure, come with a keyboard, and extremely easy to manage and share.

Computer equipment for schools is all about limiting how they can be used. iPad are given trackers. Desktops are locked behind content filters. The last thing anyone wants is some kid running unauthorized code.

I think the last thing anyone wants in a school system is some kid accessing porn, or something judged to be equally offensive. I see school tech policies each year. They're never worried about, and rarely ever mention anything that could arguably be interpreted as, prohibiting running unauthorized code. That would require school administrators to know what unauthorized code is.

My curriculum: give a student a laptop with a pornography filter compiled with debugging symbols, a compiler, and a book on reverse engineering and exploiting.

Never underestimate the power of hormone-driven learning.

And level 2: implement simple web crawler and combine it with the filter in creative way :)

Can I download a linux distro via a bittorrent client, then boot into that distro? Can run metasploit on a school machine attached to the school network?

There are plenty of things worse these days than kids downloading porn. Top of the list: kids creating porn. Terrorism, bomb threats, malware, cyberstalking, organizing flashmobs ... there are plenty of ways for kids to cause real trouble for a school far beyond them downloading adult content.

Guess what, I did run metasploit (and more) on school network. Nobody died.

And the fact is, if more people started exploiting things, things would get fixed. It's not 2000 anymore when neither vendors nor users gave any fuck about security. Nowadays metasploit doesn't turn you into as much of a god as it used to :)

And "creating porn, bomb threats, cyberstalking" - come on, anybody who wants that, can do that without school-provided computers. And yet few people actually do.

I think you completely misunderstood what I was saying.

Or something like Raspberry Pi. Reimage the SD card from know good master and the machine is good to go.

Who cares if kids install new software or screw something. I'd argue that this is what they actually should be doing, instead of running some crap overpriced "educational software" on locked-down hardware.

  > How much of [the pledged 
  > 4,000,000,000 USD] will go 
  > to good teacher and interesting programs?
It looks like about 1,000,000 USD will go directly to educators. [1]

[1] https://www.whitehouse.gov/blog/2016/01/30/computer-science-...

I don't even see that single million going to teachers. At most, I see lots of money for "training" teachers, but that isn't money in their hands. That's filing PD days, not hiring teachers with CS backgrounds to actually inspire kids.

Some consultants are going to make a ton of money selling some stupid "solution" backed by a couple anecdotes, a mediocre book, and a single never-reproduced study, though. Then administrators will only implement the parts of the program that don't make them uncomfortable (maybe half of it) and in two years they'll be scratching their heads wondering why it didn't work like the stories in the book.

And it'll probably add another 15 minutes of paperwork to every teacher's day, somehow.

Just like any other time a bunch of money is thrown at teacher training and curriculum.

I'm sure many teachers would appreciate a few paid summer days they wouldn't have had before. I agree that it's a woefully tiny amount from the entire initiative, but teacher training can still be a good thing for teachers and for kids.

The organizations that want to sell common core style instructional materials to school districts. Their lobbyists just wrote them a $4B check.

This is more fitting with the US style of "just toss money at it" philosophy. Spending money effectively is hard, but the US has absurd amounts so just try to outspend the inefficiency instead.

It is hard for the feds to do more than throw money. Education is a state or even a local issue. Obama cannot be seen telling school boards what to teach else half the country recoil from the concept.

If they want to throw money around, they should fund an individual tutor voucher program which offers students a choice in how the money is spent.

Then students can spend the money directly on additional teacher salaries by seeking out individual instruction rather than spend it on proprietary learning materials.

Improving education isn't hard if the student/teacher ratio is 1.

> there is no need to spend any money on software these days (f/oss)

I think FOSS should be considered, but more important is that they study which software gets the best results and pay for that if needed. Also, let's remember that FOSS often is not user-friendly and most students have nothing close to the typical aptitude found on HN, nor the interest, nor the expertise and years of experience. Most will not grow up to be professionals in the IT industry. Emacs and Vim probably aren't going to yield the best results, for example.

O-O_language + $free_IDE is good enough for the vast majority of educational programming. There are free gui "intro to intro to programming" drag + drop IDEs/teaching tools available as well.

IMO there is no need to pay for programming related software in an educational environment

Have you seen any research on this subject, or do you have expertise with teaching K-12?

I use Java and jcreator in my classroom. Both free. There are also free tools that help students get a grasp of concepts before mastering the syntax (bluej, scratch, alice)

There are also packages that help with teaching, karel J robot comes to mind.

I also use codehs.com as a supplement for my class.

Great, thanks. Any thoughts on what works and what doesn't, more generally?

Also, what do you teach and to students of what levels of aptitude and skill?

According to the National Center for Education Statistics there were 98,817 public schools in 2009-2010 fiscal year. 4 billion / 98,817 = 40k each. So it's not that much money towards it.

From my understanding the money is far from evenly divided.

Far from software and hardware. A good chunk will go to administrative overheads, pensions and the like.


Also, Bill Ayers Benghazi Muslim birth certificate, right?

People are intelligent in many different ways and I don't believe that most people have the abstract thinking skills necessary to really thrive in computer science.

Forcing everybody to take part in computer science education is probably going to frustrate the hell out of most people (make them feel stupid and annoyed at having to do this stuff) and dumb down the curriculum for the small percentage of kids who would naturally thrive at this stuff.

Also, given the insanity in the education field, I don't see too many actually good computer science teachers wanting to be there even if more money is being thrown around. If I had to guess, a lot more career minded Machiavellian types are going to be trying to grab onto the gravy train and get some of these gigs and the side effect of this will be that the kids get even crappier teachers.

Like most government programs, on the surface this sounds good. I could very well be wrong, but like most government programs it will probably end up costing more money than planned and have the opposite of its intended effect.

Most people are not going to be novelists, but all students learn to write. Most people are not going to be mathematicians, but they all learn basic math. Sure, if you are bad at it, it will frustrate you. Go talk to any 10 year old and you will find this is already true for existing subject. Pick any subject - learning it in school doesn't mean you are going to do it for a career, but it is part of education so that you understand enough to get by in a world where those subjects are important. It is also an opportunity for kids who do excel at it to learn that at a younger age and have more time to develop their abilities. but we are talking about basic education, not bootcamps to turn every kid into a coder.

Also, the existing programs are finding that you don't need, or even want, computer science teachers to be teaching kids. You want professional educators, who understand children and their development, to teach kids. Again, we're talking a basic level of curriculum, so having a professional elementary educator learn a new curriculum is working quite well already.

As far as actually developing that curriculum, code.org is a really good basis for it, which many local programs are using. most supplement it with additional material, and I know of at least one program that is funding grants to districts to develop their own local programs, while at the same time formalizing curriculum in a way that they can be shared nationwide with districts that have not yet had the resources to create their own.

This is not a new idea coming from the government that needs to be tried - it is an existing idea already succeeding in some districts that may receive funding to expand.

In an average person's day to day life they will read and write things. They will also have the opportunity to perform basic math. Sales, left over change, how much time is left. They may even use a computer. But the average person will never even come close to programming at all. Let alone on a regular basis. I think it is important to have it available. It might be worth introducing it as a small subject. But programming is not easy, and not useful enough to teach as a basic subject

It wasn't that long ago that you could have said the same thing about the avarage person never even coming close to reading/writing. The avarage person doesn't come close to programming largely because they don't know how. Improving our education & tooling will go a long way to solving this.

I'm of the opinion the average person doesn't do any program because they have no idea how it can help because they have no experience doing any. Its hard to use a tool to do something if you have no idea what the tool is even capable of.

Think about all the little things that you do with your computers that non-technical people wouldn't do. If you couldn't do math you would have to trust that your change was correct or derive some counting based mechanism. If you couldn't write or read you would need to rely on memorizing things or ask people who could.

While it might not be "real" programming I would suggest that basic exposure to programming in school would make the following activities (not limited to them obviously) more accessible to the population and it would be a Good Thing (tm)

* Figuring out why their computer/gadget isn't working

* Writing small scripts and/or using scripty features like functions in Excel

* Be a more informed customer of technology products

* Find software to address solved problems (just knowing to look is half the battle here)

* Better understand URLs (improve computer security, know that it's a stupid listicle and don't bother clicking, etc)

I'm sure there's more good things and would love to hear others. I tried to keep them on the same order as being able to read the fine print or balance a checkbook style benefits since we've decided that education shouldn't imply to children that they could grow up to be authors or mathematicians (kidding!).

It's not an easy subject at all but even just understanding the basics are hugely helpful in terms of un-abstracting the machines we use every day. I think it's hard to overestimate how much easier life is when you can address more of your own problems.

Let's say there's a program that takes a list of things and prints envelopes or something. If you or I submit the list and it keeps dying on me, but another list worked fine, I'll probably check the list that doesn't work. Hm. Oh look, there's an umlaut in this guy's name, maybe it doesn't accept unicode [s/ü/u, try again].... awesome, it works.

You only need to have been exposed to loops and character encoding and bad input to have that be your response instead of "GAH! THE MEAN PROGRAM HATES ME!".

It's a contrived and simplistic example but just watching my family around technology is kind of fascinating and sad because there is definitely a kind of mental tax or anxiety about what they perceive to be the pernicious beyond-control nature of their devices. Maybe that's actually the best reason to expose kids to programming: in order to avoid a sense of helplessness and that these machines are controlled by magic wielded by others. Given the overwhelming influence that programs are playing in people's lives it almost seems unfair not to expose people to the basic mechanics of how they work.

I agree with you. Just some people can't handle math/physics/literature/or whatever doesn't mean we shouldn't teach. The key is going to be how well they deliver the material. If done well it could encourage people on the fence. If done badly it could scare away potentially good programmers.

I think you're overestimating how hard CS is compared to other fields (hint: it's not harder). They teach calculus in high school. And calculus-based physics. They have autoshop and woodshop which is honestly very similar to the kind of CS I would imagine high school students learning (understanding systems, debugging, building them, learning which pieces fit where and how to make them do what you want, following tutorials and being able to figure things out when they go wrong)

what percentage of high school students actually learn calculus and physics (and get at least OK grades)?

Only 26% of high school seniors are considered "Proficient" at math, which I can assure you is a MUCH lower bar than knowing calculus.


Right now, every single high school has (or, should have) teachers that can teach Biology, Chemistry, Physics, and Calculus.

Basic Java Programming is waaaaay easier to learn to any one of those.

Learning a programming language is also about as difficult (and probably easier for some) than learning a foreign language (Spanish, French, etc) for 1-2 years which most states require.

I would just like to point out that students in the US do not actually learn languages in school. The "1-2 years" is hardly sufficient and US students do not graduate with the ability to read/write/speak another language besides English, as kids in countries like Taiwan, Netherlands, etc. do

I never suggested 1-2 years was sufficient or effective. In fact, the 2 years of the required Spanish I was taught was quickly forgotten by the time I graduated.

At least by learning programming, students can learn concepts and ways of thinking about problems that they can reuse later in life.

I was arguing with a friend about this long ago. He won the argument by simply asking me to translate the word "rectangle" into Spanish. It really opened my eyes to just how inadequate my foreign language education had been.

I don't know, I think this is more of a "Computer Science is the new Math" approach. My only concern is, what programs will be cut to make room for this program? And you know all schools will do this because government funding!

> People are intelligent in many different ways and I don't believe that most people have the abstract thinking skills necessary to really thrive in computer science.

Isn't the same true of math, which we already teach in schools extensively?

The majority of people flail away and struggle to get through the three years of high-school level math they are typically required to take, which usually tops out at some kind of trig/pre-calculus level - which is just about what you'd need to know to be a carpenter who could figure angles and lengths without relying solely on rules-of-thumb. Maybe they take a softball stats class their senior year.

Evidence would suggest that most people don't really have the abstract thinking skills necessary to do math either.

Maybe they don't, in a way, but are you sure they still don't benefit from it, even if they find it hard and even if they only reach a pre-calculus level?

I think the primary benefit of teaching everyone comp-sci is to expose people to it who would have loved but may not have had the oppurtunity.

I've got a couple of friends my age (35) who got into programming in the last few years and absolutely love it, they didn't get into it when they where younger because they didn't have access to the machines (mostly a matter of your background, even the "cheap" home computers in the 80's where not cheap, I was lucky, my parents were not wealthy but my dad had an interest in computers so we had one from 87 onwards nothing spectacular I was still using a 386 in the late 90's, didn't get on windows until ~2000 by which point I was already a Linux user)

> I think the primary benefit of teaching everyone comp-sci is to expose people to it who would have loved but may not have had the oppurtunity.

Honestly, I think the primary benefit of teaching everyone comp-sci is so that when they have to experience complicated systems, they have a great set of mental tools with which to model them. Same benefit from learning basic logic in school maths.

That's a very small, unambitious value of the word "extensively".

More than music, foreign languages, chemistry, physics....

"English" and "math" are the two things you'll be taking constantly in middle school and high school.

Have they finally gotten rid of "American History"? Thank Goodness.

US History is typically one year in high school. Maybe with another semester specifically on US Government (what used to be called "civics" I guess).

I pretty much agree with this sentiment. The way Math is taught in school made me hate it.

It's just like you said. Math frustrates the hell out of most people, and probably makes them feels stupid.

The education system in North America is just not ready for this.

I feel like what we should be working towards is an integrated "problem-solving"-based curriculum. The test-based stuff has us stuck in "memorize these things" mode.

For most kids, math is way more interesting if you can move past generic formulas and into real-world use cases. I remember continually asking math teachers "And what would I use this for?" and never getting an answer which left me super-frustrated and uninterested.

Instead of breaking them out into different "tracks", integrating math, logic, and CompSci into existing courses might produce some interesting results.

When we're talking about computer science, we're not talking about learning algorithm complexity theory or binary search trees or discrete math or anything like that — those ideas will always be there for students who want to find them. A basic level of CS involves knowing how algorithms work, and knowing how computers and code function at a fundamental level.

It's quickly becoming more and more important to be familiar with these concepts, because electronics are getting more and more complex and their use cases are becoming more and more universal by the day.

I don't need to know the details of how an internal combustion engine works in order to drive so why would I need to know about how code functions at a fundamental level in order to play Angry Birds?

So long as this doesn't translate into a grant that confuses CS with Programming I'm all for it. Students already have to learn mathematics. Learning about computation is just as important these days.

Except there are limited hours in the school day. Every new thing you add to the required curriculum dilutes the time you can spend on any of it.

It's OK to have computer programming/computer science available as an elective, but with the way we seem to struggle just to get kids to be able to read, write, and think competently we don't need to be piling on.

Kids need to know what they've always needed to know: how to read, write, express ideas, think logically, and have a decent grasp of math, science, history, and their responsibilities as adult citizens.

I have never seen a kid who had any trouble picking up an iPad, a video game, or sitting down at a computer and working out how to do what they need to do. You don't a need computer science education to use technology. K-12 required subjects should stay focused on the essentials. Keep stuff like Computer Science as electives for those who find it interesting.

>Learning about computation is just as important these days.


I think analog31's answer gets to the gist of it for me. Lots of kids have a very hard time understanding how math is relevant to them beyond basic arithmetic and a little algebra. However, it's important enough that we dedicate all of k-12 to teaching it.

Yet, computation is basically what runs the world and there's immediate and gratifying application for even very simple and low levels of it. Students learning about computation...and what's computable...can relate to it much more readily and can start looking for applications of this knowledge much more readily than what they learn in mathematics.

But the two subjects are married at the hip (like literature and history) and one can readily lead into another if they're both present.

Just as important, the tools that exist for exploring computation are really quite good these days and students can do some really cool stuff if the environment is well structured. Imagine sitting down in a class and the assignment is to use Python to build a simple sentiment analyzer. Classroom materials are a list of scored sentiment words and a few dozen excerpts from literature or news.

Or reinforce mathematics lectures on probability by building a bloom filter.

K-12 education on computation, if done well, could help tie together many of the other subjects that students are taught and provide immediate application.

(imagine if the assignment for a 10th grade art class was to produce a demoscene demo!)

Perhaps one reason is that outside of school math, computation is actually how most people do math, and to a considerable extent, science.

Don't get me wrong, I was a math & physics major in college, and love doing derivations and proofs by hand. But in my present job, if I have to solve a math problem, or perform an experiment, I reach for my computer.

As it stands, school math is limited to problems that can be solved by hand in "closed form," creating a stilted view of what can be done with math.

I realize that programming is not CS, but an introduction to computation, within the math and science curriculum, might be a way to make those subjects more interesting and relevant, while also providing some preparation for kids who might develop an interest in CS later on.

I think what you are overlooking is that kids CANNOT really do math. 67% or 8th graders are rated as "not proficient" in math, and that is compared to the government standard (which I would bet money is incredibly low). How will they do algebra in a program when they can't do algebra on paper?

BTW, its even worse for 12th grade.


great points. I see this program and wonder why we (in the US) go into such contortions away from teaching - math.

Just teach kids how to think in math and they will take to most CS topics like fish in water.

We already teach 12 years of math, from 1st grade to 12th: Addition, subtraction, multiplication, division, polynomials, rationals, pre-algebra, algebra, geometry, trigonometry, pre-calculus, calculus, sometimes probability and statistics. How much more math do you want?

Also, you do not need to know Calculus, or pre-calculus, or trigonometry, or geometry, or algebra, or pre-algebra in order to build, say an Android twitter app.

>Also, you do not need to know Calculus, or pre-calculus, or trigonometry, or geometry, or algebra, or pre-algebra in order to build, say an Android twitter app.

At this stage you don't really need to know comp sci either. Just watch a tutorial and follow the steps.

Unfortunately, our schools DON'T teach 12 years of math. They act like they do, but kids don't learn it. And very few kids get to the pre-calc level. Particularly in the schools that will be targeted by this government waste.

If you read HN, you had a better math and science education than 90% of this country, don't act like every kid was as precocious or as motivated as you.

I currently teach basic CS in an inner-city school, on a volunteer basis.

Unfortunately, the problem isn't "US public schools lack {{important thing}}". The problem is that US public education is deeply broken.

It's interesting to see the momentum living wage/minimum income campaigns are getting. But education equality, for which there must be a better term, isn't often brought up.

At the school I'm in, when a kid with any potential comes in, the only course of action is to to help her transfer out to a school where she will actually learn something. Sadly, this is not the exception - there are literally millions of kids around the country in similar schools.

At the school I'm in, when a kid with any potential comes in, the only course of action is to to help her transfer out to a school where she will actually learn something. Sadly, this is not the exception - there are literally millions of kids around the country in similar schools.

Why aren't they learning anything in your school? What should the school be doing that they are not doing now?

Inner city school. First of all they often have basic infrastructure issues: leaky roofs, poorly- or non-working heat, rodent and insect infestations. OK those things are in theory correctable.

Secondly is the demographics. Inner city kids are often from low-income single-parent homes, living with foster parents or extended relatives, moving a couple of times a year, one or both parents may be incarcerated. Being around substance abusers is another big problem. Education is really low on the list of things they or their parents care about. And it's impossible to fix that at school.

Would you say that once (a part of a) society is broken, it's broken for good? And that we would have to "transfer" people out of it if they are to have a future?

I wouldn't say broken for good, but I would say that education isn't the solution for what is fundamentally a social problem. In D.C., the public school district spends $30,000 per student (only slightly less than tuition at Sidwell Friends, where the Obamas send their kids). Many of the buildings are beautiful. And school performance is a disaster, because the vast majority of the families are low-income. Better schools and more qualified teachers are never going to fix their problems. It'd be better to just take a third of that money and write each kid a $10,000 check every year.

I hope it's not broken for good, but I do maintain that in this example it's not something that teachers or schools are going to be able to rectify. And I agree that pragmatically, when you have one bright kid among 100 heathens, the best thing you can do for that kid is get her someplace where she can learn something.

Only a tiny fraction of the population needs to understand computer science. Most people will struggle through it, learn to hate it, and immediately forget it after they graduate, just as they do with math and science. Meanwhile, college professors will have to spend inordinate amounts of time unteaching all the stupid things kids learned in K-12, because there is no way to structure these curricula in a way that serves as a good foundation for those who will actually major in the subject and is simultaneously approachable for everyone else.

Public education should serve some practical purpose: teaching kids the basic skills everyone needs to be productive in the workforce and to contribute as citizens. To that end, I'd advocate taking courses away instead of adding them. Math and science education in K-12 is a disaster and a waste of time for all but a small fraction of kids. We'd be better off taking those out, shortening mandatory education to K-10, and letting kids who actually want to go into particular fields study the relevant coursework when they're old enough to actually learn it properly.

I disagree with your claim about the impossibility.of broadly accessible foundational CS that is still good ground for majors; not only so I think it's possible, but I think at least one viable approach already exists in How to Design Programs -- the text itself may not be ideal for secondary students (though IIRC is been used successfully at that level), but the basic method and approach for teaching computing as a core subject is sound.

I'll check out that text, but I'm skeptical. We had a CS requirement for all engineering majors at Georgia Tech, and even among that group it was frustrating and largely a waste of everyone's time.

Of course, I also don't think we've succeeded in that goal with math and science either. Physics was a requirement in high school, but our physics classes in college taught everything from the ground up because god only knew what kids learned in K-12.

Public education should not be about making good workforce for capitalists. It has a higher purpose.

Sure, but where does math and science fit into that higher purpose? I think the focus on those is actually driven by the (futile) desire to please capitalists--because good paying jobs often require those skills. If we're talking about educating citizens, I think it'd be way more valuable to replace chemistry and physics with courses in the philosophy of science and algebra and geometry with courses in logic and statistics.

It's insane to me that we spend so much effort trying to teach kids subjects like algebra that they'll never really understand and that 95% will never use again, and we don't teach courses in European history, formal logic, or Bayesian statistics--subjects that would give kids practical insight into issues that affect them directly.

Uhh, I don't know what planet you're living on where people don't need to use algebra. Almost everybody I know uses algebra regularly. How do you suggest we do statistics or any kind of science or teach kids anything about the world without first teaching algebra? Formal logic is essentially a more abstract and complicated algebra which isn't useful in real life.

And understanding the world around you (science) and learning the language that the world works in (math) are worthwhile in and of themselves for every student just as general human knowledge. Removing science from the basic curriculum entirely is absurd at its face unless we allow, for example free college for everyone. It's essentially saying "the poor can't learn about the natural world".

You can't say that since sometimes teaching science to kids doesn't work we should just delete it from our entire educational program and not try. Most students get a lot out of chemistry and physics though many of them hate it. (note: often times the subject the students hate most are the ones that are most important; they hate doing hard work) They learn that mysterious phenomena are not so mysterious, they are just complicated and can be understood and controlled with some study and some mathematics and experiments. This is an invaluable lesson for students to see hands-on and cannot be removed from curricula.

I think the focus on things like tech, and people saying "not everyone needs to go to college" are driven by the desire to please capitalists.

Academic studies in logic (well, formal logic) are I think overrated as far as their ability to train students to think rigorously and carefully is concerned. Though I agree with you 100% on philosophy, and high schools already teach statistics. Informal logic and rhetoric, yes. Ethics, yes. Philosophy of <insert any subject here>, yes. Statistics, sure, once they know enough mathematics to begin to understand it.

> Uhh, I don't know what planet you're living on where people don't need to use algebra. Almost everybody I know uses algebra regularly.

Yet, only 20% of those surveyed reported using even basic algebra at work, and a lot of those were tradespeople who could have easily been taught the necessary math post-K-10. http://www.theatlantic.com/business/archive/2013/04/heres-ho....

> And understanding the world around you (science) and learning the language that the world works in (math) are worthwhile in and of themselves for every student just as general human knowledge.

This is an ideological statement more than anything else. I can just as easily say it's much more important for educated citizens to learn history and philosophy, so they can understand how the social structures around them work.

> You can't say that since sometimes teaching science to kids doesn't work we should just delete it from our entire educational program and not try.

It's not clear to me that science education even works often or that adults retain anything meaningful.

> Academic studies in logic (well, formal logic) are I think overrated as far as their ability to train students to think rigorously and carefully is concerned.

I think it's a lot more useful to teach a kid that here are fallacious ways of trying to prove a point--something they can use in real life--than teaching them about the periodic table or cell division (especially since you're largely going to teach them a very dumbed down version of the latter anyway).

>Yet, only 20% of those surveyed reported using even basic algebra at work, and a lot of those were tradespeople who could have easily been taught the necessary math post-K-10.

I agree with you most 'work' today, especially white-collar but non-professional work is mind-numbing and empty and requires almost no skills of any kind besides a pulse. But that's just work. Have fun teaching people about their retirement plans without algebra. Balancing their budgets/checkbooks. Estimating costs of things. Understanding risk. Making decisions about anything that involves quantity. Should I have to call and pay a professional algebra-expert to understand and make decisions about my credit card? How will I know if he overcharges me?

>This is an ideological statement more than anything else. I can just as easily say it's much more important for educated citizens to learn history and philosophy, so they can understand how the social structures around them work.

Of course it's ideological; the entire project of education based on a mix of ideology and a purely a capitalist endeavor designed to provide government subsidized job training for tomorrow's workers. I absolutely agree with you about history and philosophy, but we aren't talking about removing history or philosophy from the curriculum, we are talking about removing science and mathematics. I think /every/ student should learn physics and biology and philosophy and history and rhetoric and statistics at least at a rudimentary level -- half of which require, among other things, mathematics.

Having a sense of how something generally is from what you learned a long time ago in high school is intangible but very valuable. Does it really matter where or what Asia is, or whether or not it's a continent? Does it matter whether America was founded 200 years ago or 2000 years ago? Does it matter what the Bill of Rights says? For the vast majority of people, no. But it's important to have a sense for the world as it is. The universal children's curriculum is a tiny slice of human knowledge given to everyone so that nobody is as ignorant in any topic (save perhaps subsistence farming) as the humans of 1000 years ago were. That's called progress.

>I think it's a lot more useful to teach a kid that here are fallacious ways of trying to prove a point--something they can use in real life--than teaching them about the periodic table or cell division

Informal logic and rhetoric would be a welcome addition to a curriculum that often doesn't include any sort of philosophical reasoning at all, I agree. But I think it's useful for a different reason. Argumentation is NEVER about deductive reasoning or being correct in real life, which is why formal deduction and logic is completely useless outside of a classroom -- even more useless than the periodic table or cell division. Real life is only about persuasion. And the list of logical fallacies is a list of effective persuasive techniques: if they weren't effective ways to fallaciously argue nobody would ever bother mentioning them. So I'm a little torn on teaching high school students lists of highly effective rhetorical weapons. I've seen the consequences of having them unleashed on internet commenters and the results so far are grim.

So it's not in a child's interest to prepare them for jobs that pay well?

But the dumbed-down version of science and math you get in K-12 doesn't prepare kids for those jobs anyway. Those people actually going into science and math jobs will learn "real science" and "real math" in college.

That's really just an indictment of the implementation, not the idea.

Only in the same sense that instances where people died strapping wings to their arms and trying to fly are an indictment of the implementation, not the idea.

> workforce for capitalists

Regardless of the reality of capitalism, work must be done in order for people to eat. That work could be actually plowing fields and picking fruit. Preferably, it is building and configuring machines to plow and pick.

Public education should be about enriching lives. A large part of that is teaching people the skills they can use to satisfy material needs.

All of this remained true under governments that humanity has so far built which strive to abolish capitalism. If you insist that we should not try to improve the human condition until we have abolished capitalism, then it is your burden to explain how to do that.

Public education is little more than a dumping ground for children, to get them out of the way so their parents can go to work.

In many places, yes. This was not the case with the public school. But I had the privilege of a mother with the time and meticulousness to build a bunch of excel spreadsheets and find a ratpoop-filled house in a rich neighborhood.

At a certain level, I do agree with you. However, the reason why we have such drastic differences in how people perceive and solve problems between different domains is because of specializations. They affect our abilities to communicate with each other and share ideas. True, we get stuff done and we are making progress but I don't think this is the ideal situation to be in. I don't believe any of the skills that we learn in the school are so ridiculously hard that some people cannot learn at all. I think with better teaching methodologies and more game oriented learning, we can do much better. We will be able to teach kids much faster and improve their understanding. As we push forward with our understanding of this world, having more people share a much broader base of ideas is good for the society. It's affects on the functioning of society are imperceptible but they are there, and they matter.

I don't believe there is any shortage of computer science talent. I believe there is only a shortage of students graduating with CS degrees from schools like Stanford and MIT which is what many employers are looking for. NACE figures really seem to indicate we don't need more junior level programmers as 42.5% of graduating seniors majoring in CS did not have a full time job offer (not even in unrelated fields) at the time of graduation. http://career.sa.ucsb.edu/files/docs/handouts/2014-student-s...

It's about supply and demand.

More people who can program means that programming is a less valuable skill and that programmers are compensated less. And cheap labor is the holy grail.

Things like this are pushed by the business elite and then sold to the public by politicians as enabling a middle-class lifestyle. Which will be true, for a little while, in some parts of the country. Already that is barely true in other parts of the country. The next state over from me, junior developer wages start at 25k and rise to the mid-50s as you become more senior. Yes, the cost of living is lower, but not that much lower.

I doubt truly substantive change can be made in the developer market through increased government funding of the curriculum, but they will find other ways.

As someone who has been trying to hire CS talent, I can say that most of my interviews have been pretty underwhelming. Maybe 10% possess the level of talent and interest that we're looking for, and as few as 50% can even code fibbonacci. Like 20% are able to write a successful nlogn sort. And that's after I tell them that sorting will be a part of their interview!

I'm not sure that more schooling is the answer, but I do feel like we are always strapped for talent. The people who pass are usually spent a significant amount of time teaching themselves.

More schooling is definitely not the answer. By your numbers, funneling more kids into CS programs is creating 9 extra employable graduates with debt for every 1 extra graduate worth hiring.

How many people do you interview annually? Do you happen to keep metrics of what things your top performers did well at the interview? I'm curious to know if implementing a sort correlates with performance.

I've probably done > 100 interviews, and it's hard to see the correlations. Man, I so wish I would have kept records.

Of the many people that I've worked with, I'd say < 0.5% have been 3x programmers, maybe 5% have been 2x programmers, 20% have been 1x programmers, and the rest have been ... meh. (In comparison to me, and I'd guess that I'm probably a 3x programmer.) And, ALMOST ALL of these people had successfully passed an algorithm and programming based interview.

>Maybe 10% possess the level of talent and interest that we're looking for

I am curious how you judge "interest."

have you tried recruiting people without CS degrees?

Degrees from standford or mit only matter in your first job, or to idiots. There is a shortage of good practitioners. In the startup I worked in, in seattle, we basically failed because we could never hire the 15 more people on top of the 5 we had. We paid market prices plus the usual worthless questionable stock options, but everyone we liked had multiple offers. My new company wants to hire 20 devs a month for the next 2 years. Microsoft keeps shedding people but amazon, google, facebook, oracle, hp, emc/vmware everyone is hiring like crazy.

> We paid market prices plus the usual worthless questionable stock options, but everyone we liked had multiple offers.

And they didn't take yours. I don't mean to be critical, but in my experience, when a company says they pay "market prices", they mean the market in their imagination instead of the real market. Maybe the offer wasn't big enough. There was some reason those candidates turned you down.

And sure, maybe you couldn't afford to make bigger offers. Not all businesses are viable. If I could hire labor for $0.50/hour I'd own a business, but I can't.

> emc/vmware

VMWare was in the news recently as cutting 900 jobs. Maybe they are hiring. In which case I expect we would find that expensive senior developers are being laid off and cheap new grads are being hired.

right, fair points. i agree market rate is usually code for bullshit. a year or 2 ago vmware was a competitor. as far as salaries, I can say something about the range we paid. I thought it was high for a startup. an intern might make 75k (I know google and msft pay more), a person with a few years (~5) of exp makes 130k and a senior engr makes 150+. a very senior eng. or lead might make over 180k. sure, google pays more. but these are decent salaries.

> .... only matter in your first job, or to idiots.

Today, every job is your first job. We are all contractors, constantly re-interviewing and justifying ourself to our customers.

And the idiots are in charge. Every founder who needs my help seems to be a 20-something kid who thinks knowledge is something you can pick up at a trade show or week-long intensive at some resort.

Your last line doesn't make sense. If they think that, then they are going to fail. Hence, they won't be in charge...

In an ideal world yes. In realworld, many "founders" are not there because of any great skill to competence. I now a couple that are just rich kids playing with a few million of family money. They hire their friends and work on getting investor money to keep the party going, but nobody has any real hope for the long term. Being involved with a tech startup is almost a fashion trend for some people.

The real problem is not computer science.

Everyone in the United States cannot be a programmer - its going to lead to the same problem we have with law, business, etc. Too many graduates leading to labour oversupply.

Government will always be slower to respond then markets.

So even though right now there is a shortage of programmers - it might not be the case once these student's graduate.

So Govt is always one step behind the movements in markets.

What is more important is helping students understand how important learning is. Even though my skills in programming helps me get paid - I use the knowledge I have in biology ( learnt in school ) to make informed decisions as a consumer. My knowledge in writing helps when I need to explain a difficult concept to my bosses. My skills in mathematics helps me model problems in much more efficient ways.

Being a programmer in a society with no doctors, or chemists is no fun.

Its understanding that the economy is extremely complex - and rather than create bursts of inefficiency in one area - the best thing to do is facilitate the system to perform better - maybe make it easier for labour ( students ) to choose what they want to do with their lives - rather than burden them with student debt ?

> Everyone in the United States cannot be a programmer - its going to lead to the same problem we have with law, business, etc. Too many graduates leading to labour oversupply.

I agree. This just seems like an attempt at a poorly thought-out quick fix. The country has a lot of problems with unemployment/underemployment, so they're fixating on to one job category that's "hot" with a high pay/education ratio as the solution.

But since the real solution is to do something effective about economic inequality, misguided quick fixes are what we're going to get.

Plus, the more CS grads, the more competition for jobs, and the less they have to be paid and the more disposably they can be treated. I'm sure big employers are salivating over that just like they do over an increase in the H1-B quota.

> Everyone in the United States cannot be a programmer - its going to lead to the same problem we have with law, business, etc. Too many graduates leading to labour oversupply.

This is misunderstanding the future state of the programming professions of the future. This is understandable, since you're merely projecting the current state forward, but things will almost certainly change.

Up until now, the majority of programming jobs have been filled by people trained in CS and we've had to learn whatever disciplines which we're asked to apply our programming discipline to. But as we're able to layer more and more abstractions on top of the machines that do our computing, programming will become much more accessible and the situation will change. In the future, the majority of programming will be done by domain experts who learn enough programming discipline to automate their field. There will always be a small, niche of core CS practitioners that advance the state of the art of the tools used at the higher levels. But they will be that will be a very small percentage of the workforce.

The important thing isn't that we create more CS graduates. That will cause the problems you foresee. What we need to do is ensure that all graduates outside of CS are trained in basic computer programming.

Understanding computing and programming is useful in careers that aren't specifically centrally about programming, in much the same way that being able to write is useful in careers other than professional writing. But, sure, more people programming will mean more people who are can take jobs that are centrally programming jobs, which is a good thing for everyone except incumbent workers in the field who have more competition.

It also means people working in other fields who can more efficiently applying computing to their own domain, either directly or by being better able to identify opportunities and work with people who are primary programmers.to realislze them. That's also a general win.

Makes me wonder if education maybe should not be about satisfying markets.

The trouble is, things are always about satisfying markets, whether we like the market it satisfies or not.

For example, in the early days of the university in England and France, higher education served to satisfy the market of younger-child aristocracy who needed something to do to make them valuable to their family. It's no coincidence that monastaries, reading, and higher education were very often neighbors, and sometimes part of the same organization- they served chunks of the same market. That the universities started opening themselves to lower scions of aristocracy was a side-effect of how profitable that market could be, and the value that graduates could provide. [0]

In a more modern example, the disciplines of higher education that have less-certain ROI, but are still judged to be valuable, or serve education for education's sake: I would say that those serve the market of people who are either idealistic, or believe they understand some long-term feature of humanity that the 1-year, 5-year, or generational time-scale markets ignore. They pay the price, but they still do hope for ROI of some sort- even if not in cash.

Even more nebulous things, such as very low-overhead charities, serve a market- the market for people to feel generous, to avoid guilt, or to serve causes that the traditional free market overlooks. That so many charities are very high-overhead, or so bad at satisfying the ends they ostensibly aim for, seems to be a symptom that people don't care so much about the assuaging, as the fact that they have attempted to assuage.

So, are there ways to remove education from the capricious, short-term, short-sited nature of the modern free-market? Of course. State action, benevolent organizations, and other more attempts at far-sitedness are a good way to adjust the externalities of education. However, you simply cannot remove education from the market.

[0] - https://en.wikipedia.org/wiki/Medieval_university

Do we really want to "reduce such a beautiful and meaningful art form to something so mindless and trivial[?]; no culture could be so cruel to its children as to deprive them of such a natural,satisfying means of human expression. How absurd!" - Lockhart [1]. He was talking about math, but I am sure the same results would occur with computer science "education" if done in high schools.

"One of the best ways to stifle the growth of an idea is to enshrine it in an educational curriculum." - Hal Abelson[2]

[1] https://www.maa.org/external_archive/devlin/LockhartsLament.... [2] https://www.cs.berkeley.edu/~bh/ssch0/foreword.html

Related anecdote:

I had "computer science" classes in middle school in France. They consisted of typing classes. I still remember sheets of "QSDF JKLM" or whatever it was that had to be typed x times before moving on to a slightly more complex pattern. I think the class was graded based on how far you got down the sheet by the end of the hour.

"Now class, boot up visual studio. Today we'll be continuing our lesson on the Abstract Factory pattern."

If you're going to inspire students you're going to need a lot of teachers who are experts in CS. Unfortunately, our current education system doesn't allow experts to teach so now someone who knows CS is going to have to go get an education degree as well, just to take a massive pay cut.

A different opportunity around this is the TEALS[1] program. CS professionals teach a early morning CS class two to three times a week. The member school in my area is close enough to make it to my morning stand-up at work afterwards.

Granted, the teacher stipend is inconsequential so it's much more of a volunteer position, but that's significantly less sacrificial than being a dedicated teacher.


This is true of all subjects, though. The purpose isn't to train world class engineers out of high school, it is to expose more people to the subject and the thought processes that go into it.

> This is true of all subjects, though.

No, it's not. You're not going to do better with your English degree than English teacher so there's no disincentive to becoming one. Hence, students get reasonably competent English teachers.

High School CS teachers, on the other hand, have to be completely incompetent or insane to choose to teach for $40k when they could be writing CRUD apps for $100k.

Ah, but that $100K will last for but one generation as the market is flooded with students that can write CRUD applications.

I write firmware for $90k and I'm insane enough to have always wanted to be a teacher.

Now I'm imagining what "Firmware Madness" would be as a fear mongering video to scare kids away from writing firmware.

>our current education system doesn't allow experts to teach

This isn't true in my state.

Can anybody explain to me this push for everyone to be a programmer? Is there a belief floating out there that everyone in 10-20 years is going to have to know how to program? I just don't understand it. Who's going to teach computer science to kids? How many software devs do you know how quit their jobs to teach at a high school? If not them, who's qualified to teach this subject?

This will ultimately end up with unqualified teachers teaching computer science while kids are fucking around and playing computer games. What an atrocious waste of money. Why not spend $4B to fix piss-poor American education system so that we can produce graduates who are ready for college and not trying to catch up taking Algebra I or basic reading /English.

My guess is for the same reasons as other high school topic: so you can understand how the world around you works, and so you can get a taste of what you might want to study full time in college and feel prepared for it.

To emphasize the second point, I only started programming in college sophomore year due to a requirement in my original major, and would have been too intimidated to take it otherwise thanks to all the other kids that had learned before college (a situation unique to CS). Yet now as a developer I earn more than me or my parents could ever have dreamed, just because my college happened to require I take the course.

I know others who were too intimidated and weren't forced into it. What if they'd tried it out in high school? Maybe they too would have a shot at what is arguably among the best careers in the US (good pay / reasonably low stress / low cost of entry).

I'll wait for it to pass and for the actual RFP to be created. I was very disappointed in the whole broadband money that was restricted to areas and groups that had an interest in keeping the existing infrastructure status quo.

As I said elsewhere: That money needs to go directly to raising teacher salaries. Currently, teaching is a pretty crappy career for anyone that's not extremely self sacrificing and idealistic.

Starting salaries for a teacher -- after additional years in school -- are something like a half to a third of a salary for a programmer in the USA, as far as I can tell. The upper bound for salary also seems much higher in industry. So, salarywise, it's a bad choice.

The job is seen as socially important, but not to the degree that enough for amazingly talented people to flock to it in the numbers that are needed. So, prestigewise, its' also a bad choice.

As a result, the bulk of teaching positions are not held by the best and brightest. They're often not even held by the good and bright. There aren't enough people who would prioritize children over their own futures. And as long as teaching suffers from a lack of respectability or a lack of salary, teaching is going to suffer. And before you blame the institutions -- institutions are run by the people who went into this system.

So basically another class for kids to play minecraft in while the teacher who doesn't even have a degree in Comp Sci attempts to teach programming.

Is this a good thing? I'm reminded of the "well-meaning" pushes by large tech companies to flood the market with immigrant labor and drive salaries down.

Though I wouldn't say this is malicious I think it may have the same effect. We will get many, many more bad programmers. We still have no good way to tell a good programmer apart from a bad one. We have no licensing, we have no professional organization, we have no standards.

Right now the barrier for entry is really, really low for an upper or middle class person who wants to learn about programming and CS. For the poor, what good is CS if you don't have regular access to a computer? How many graduating seniors in poor communities own their own laptops? Have consistent internet access? I think a pledge like this needs to focus all of its attention on low-income students for it to be worthwhile.

I think computers are pretty prevalent.

These days I struggle to find a lot of use cases for non-IT-people to use programming. It makes a fine hobby, but not better than another hobby.

For a while I was enthusiastic about things like Greasemonkey which would have allowed people to modify the software they use on a daily base. But it doesn't seem to have taken off, and presumably web clients are increasingly more complex so that "greasemonkeying" become too complex, too.

Long story short - I'd be happy to hear about examples for ways that non-IT-people could improve their lives with programming.

I have even considered to donate part of my time to solving such problems, choosing from user-submitted problems.

I had an excellent intro CS teacher in 9th grade who was ex-Army with an actual CS degree. He also taught Algebra. We got to spend a year of course basically playing around in Hypercard.

I also had a mediocre programming class in 10th grade at the Sr. High school taught by a part time business teacher. We spent a semester programming in Basic on a decade old IBM box. You can guess which class was the better influence on my decision to go into CS full-time.

The frustrating thing was that there was an entire lab full of 5-6 year old Macs that we were not allowed to touch outside of typing classes, so the decision to use the crappy 10 year old non-GUI machines was basically curriculum related.

The point being, teachers are important (and this initiative won't help with that), but even getting some good tech into the hands of students would help more than you realize. There are still schools with not enough resources to teach a decent CS course or more than a vague idea of what kind of curriculum would cut it in the real world.

Let me fix the title: Obama Pledges $4 Billion to Computer Science in US Schools, money from the USA tax payers.

Your money. Not his money.

IMHO, it is a mistake to teach kids something like computer science early on in school. The focus of a school should be to teach kids transferrable skills in the classics: mathematics, art, latin, etc. The students will always have time to specialize, but they will never get a chance to build a solid foundation.

I'm transferring to a UC in computer science soon. This is the last year in which computer science will not be considered an "impacted major" at my school. A sign of the times. Recently everyone's been talking about making CS mandatory in high school. And looking around on the web I see that some of the resources for learning computer science are very nice indeed. Is it petty to be worried that there will soon be so many computer science people in the world that I wont be able to make a living in computer science? I feel like a hypocrite for being an advocate for single payer healthcare, which is a step forward but might destroy a lot of jobs in the insurance business, and simultaneously hoping that computer science remains somewhat exclusive.

I can't wait for the labor surplus to drive down my wages.

At my High School, everyone had to take a Computer Science class for at least 1 year.

My year had 60 students and I'm the only one studying CS/working in the industry. I'm pretty sure your, mine and everyone's wage will be alright.

Yes, only an anecdote, but it's not like everyone is switching from their dreams to become a doctor/lawyer/pilot/xyz to a CS job just because they had a HS class.

That's not how it works.

First of all, teaching everyone computer science will not create more programmers. I doubt that's even the intent.

Second, if there were more programmers, there would eventually be more jobs.

More business people would realize the amount of surplus (assuming it ever happens) and they will find ways to utilize it.

or, more technology startups could spring up.

There are still a lot of problems in this world that technology can solve.

Does teaching algebra drive down the salaries of engineers?

I think that the learning curve between "able to automate simple things in Excel" and "doing software development as a career" is high enough that it's not going to do much to wages.

I honestly don't think we've figured out how to teach people how to code yet, so throwing a ton of money at this apparent problem will do little.

And they'll just train mediocre math teachers to be even more mediocre CS teachers. Teachers are generally expected to have a degree which is closely related to what they'll be teaching. This is not the case for high school CS teachers.

When I was in high school about 10years ago or so everyone was required to take a computer class. Computer science was the only AP class (More GPA Points) so everyone took that.

This is just more bullshit to waste money on. In 8 years of development, I can count on one hand the programmers who showed any interest in programming outside of work, or that have GitHub accounts, or that know what a Binary Tree is. Programming has become, for the most part, Web development and the barrier to entry is so low that anyone can enter it after studying material off the Internet and watching YouTube videos. To be even more controversial, CS is not even needed for most programming today, but only for passing interviews.

100% agree. A basic Udacity course in programming can be very effective in teaching programming. These days all the Necessary educational material is available free off the internet.

How about he reforms patent law further first? Not much good having computer scientists innovating if some patent troll comes along and stymies that innovation.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact