Hacker News new | ask | show | jobs
by throwaway420 3799 days ago
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.

9 comments

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.

http://www.nationsreportcard.gov/

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.

Why?

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.

http://www.nationsreportcard.gov/

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.