Should Kids Learn to Code?

It can be hard to learn when you're not good at it nor are you interested. I avoided learning how to do any sort of programming until I needed it to perform tasks for my job, before that it was one of the most boring and tedious subjects I did, and when something is boring and tedious, you don't learn all that much.

my son is a math wizard, 2 of my nephews have been offered scholarships to good schools, based on their math aptitude.

If they can learn algebra, they can code, if they excel and enjoy algebra, they should code.
 
Yeah, personally I don't see the point of programming as a core unit on schools and I don't think it should be mandatory. Its a trade specific skill, you either have a job that uses it, or you don't, most people don't. I think it should be there as an elective unit, but that's about it.

Most subjects I can think of which are currently core units I can think of reasons why they're core units as they teach general living skills, programming I can't, its a specialist skill and the only reason you'd make it a core unit is because you're trying to stay trendy.

It doesn't even have anything to do with computer use, as basic computing skills are far detached from actual programming. I can use a window manager in various operating systems, fucked if I know how to program a window manager and I don't see why it'd benefit anyone to know how to program a window manager unless, ya know, they're working for a company that is making a window manager.
 
my son is a math wizard, 2 of my nephews have been offered scholarships to good schools, based on their math aptitude.

If they can learn algebra, they can code, if they excel and enjoy algebra, they should code.

I did 4 years of engineering. Plenty of maths, physics, chemistry, thermodynamics, all that wonderful stuff. I did pretty well at maths and enjoyed it too and overall graduated with 1st class honours. Didn't change the fact I didn't like the computing/programming subjects I did. I certainly wasn't bad at it, there were people who were better than me, a lot more people who were worse. I just wasn't interested in doing programming so it became boring and tedious and despite the fact I got above average marks in those units, I still can safely say I learnt sweet fuck all in them because I didn't have an interest.

Its only when I had a job where I need to perform large calculations requiring specific programs to be written to do the calculations and automatically process and generate images for large sets of data that I learnt how to do any of it... and I can safely say the programming units I took did not help in doing it since I'd forgotten whatever was required to pass the exams a couple of years earlier.

Hell, one of my mates who went through undergrad with me is currently working on writing a CFD solver code, that's all he's been doing for the past year, and he did pretty average at the actual computing course when he did it.

To do well in a subject and for it to be beneficial, the more important thing is you need an interest in it, secondly its good to have an aptitude for it, but that's not a requirement by any stretch. If they have that, good for them, but you shouldn't have to be begging them to do it if they have an interest ;)
 
True...I suppose. The proven parts should be bug free for what has been proven though. But I see that as a different than actually writing the code.

But even when one has "proven" the correctness of code, what has actually been proven? Again to the text box example, let's say the criteria for the test says, "User enters a a value in dollars and 12 months of compounded interested is display in label field below the input." There's a ton of errors potentially in the test I just stated. The reason that test driven development is popular these days is that is that testing, the "proof" and the code, the "theory" are really one in the same in that they both should match in expectations and outcomes and that one can just as easily write an incorrect "proof" as they can a "theory".
 
But even when one has "proven" the correctness of code, what has actually been proven? Again to the text box example, let's say the criteria for the test says, "User enters a a value in dollars and 12 months of compounded interested is display in label field below the input." There's a ton of errors potentially in the test I just stated. The reason that test driven development is popular these days is that is that testing, the "proof" and the code, the "theory" are really one in the same in that they both should match in expectations and outcomes and that one can just as easily write an incorrect "proof" as they can a "theory".

Everything you say is correct.

I still disagree with the assertion that teaching programming is teaching logic. It is instead teaching an application of logic. Everyone has some basic intuition of logic, and that is what is being exploited here.

Studying logic should be application agnostic, although to understand it we would likely look at examples of actual applications.
 
A few of you are really taking this topic to extreme. All some of us are saying is that there should be some exposure to programming. I took biology and disceted a frog. I did not become a surgeon. I took shop, built a dog house and rebuilt a lawn mower engine. I did not become a carpenter or mechanic. I had to take band class and got stuck playing a trombone. I did not join a Blues Jazz band. I had a semester of Drama... dropped it ASAP! haha ... I did not go into acting. :D I did, however, take math, algebra, and geometrey and loved it. So I chose ELECTIVES in advanced algebra, trig, calculous, physics, and did get a job in CAD. That led me to the GIS field, and I'm considering furthering my education into Engineering. It's the exposure we are talking about (aka programming 101) so the kids can tell if it is something they would want to pursue or not. As it is now its so easy to be intimideated at the thought of programming and where to start because there were no introduction courses to it. Not everyone took advanced algrebra or advanced trig, but those of us who did chose to because we took a liking to it and it set a path for a career. No different then some who will take a basic programming course and barely get through it and not choose to touch it again. But there will be some who will excel with it and choose to take up the ELECTIVE cources in programming their Jr and Senior high school years then to colledge or trade school and start a path for their future. No one is suggesting we bring in teachers from Apple or Microsoft's development team and train every student to be the next Bill Gates or Steve Woz and have the skills to write software when graduating. Just basic introduction to it. Like it or not, IT (that is, Information Technology, not just the office nerd) and computers make up the largest portion of jobs and the earlier we get the youth exposed to it the better chance they will know if they want to make a carreer out of it. The sooner they know what career they want, the better chance they'll take the appropriate courses for it and get a degree in a field they will benefit from. Way to many get a college degree in a field or on a subject matter they will never use and wast $30k in doing so, leaving them with 10-15 years of debt while they wait tables cause they can't get the job they should have prepared for.

Some say they will never touch programming, well office personel use Excel or other databass software. Guess what, there's programming at work there. They call it formulas, but it's programming.
 
Everything you say is correct.

I still disagree with the assertion that teaching programming is teaching logic. It is instead teaching an application of logic. Everyone has some basic intuition of logic, and that is what is being exploited here.

Studying logic should be application agnostic, although to understand it we would likely look at examples of actual applications.

True, computer programing and binary logic are disciplines in logic, not the entire subject.
 
True, computer programing and binary logic are disciplines in logic, not the entire subject.

I think, more specifically, computing in general is very mathematical and there starts to be some overlap of what is logic and what is math and what is computation.

Is the church-turning thesis logic, math, computation or philosophy or some mixture of all of them?

None of this has anything to do with this thread...btw.
 
I think it wouldn't hurt to start testing something like this out. Personally, I think we could benefit greatly from something like this.
 
Problem is a lot of kids don't "GET" certain subjects, is why math and reading scores are often very different. I'm sure most would benefit greatly, just as much as most would benefit form some kind of "human decency" and "parenting 101" class.

Math is a fundamental skill and its good they push it on people up to around algebra 101, beyond that, its just beyond the "attention span" of some kids. Not everyone is going to easily understand advanced calculus, and i've found it to be a very non-worthwhile life skill, especially now days when most can hope for a 10/hr job with benefits.
 
I learned Basic when I was in 5th grade, it didn't make me like programming.
 
I plan on teaching my kid nuclear physics instead. Coding is so stupid anyone with a boring life can do it...the market will be flooded with so many script kiddies from now on that IT will not be the place to make a decent living.
 
http://hardforum.com/showthread.php?t=1656080 claims to differ on the programming job market (I've experienced this problem in person)

There are many indirect benefits to programming (like problem solving skills) - but until we get things like algebra and reading comprehension being retained at a decent rate there's really no point apart from it being an elective; which many schools already have.
 
If you're that keen on teaching logic, why not just teach actual logic? I think even more than programming, the philosophy sub-disciplines are under-taught in grade schools. Teaching logic, fallacies and proper argumentation for things like human rights or god would go a long way to improving the general population.
 
Problem is a lot of kids don't "GET" certain subjects, is why math and reading scores are often very different. I'm sure most would benefit greatly, just as much as most would benefit form some kind of "human decency" and "parenting 101" class.

Math is a fundamental skill and its good they push it on people up to around algebra 101, beyond that, its just beyond the "attention span" of some kids. Not everyone is going to easily understand advanced calculus, and i've found it to be a very non-worthwhile life skill, especially now days when most can hope for a 10/hr job with benefits.

It's not that kids don't "GET" it, it's that kids don't care to learn it.

Unless American babies are born severely retarded, the ONLY reason we are unable to match a rigorous schooling schedule like all the countries currently ranked higher than us is because of lack of discipline and laziness.
 
It's not that kids don't "GET" it, it's that kids don't care to learn it.

Unless American babies are born severely retarded, the ONLY reason we are unable to match a rigorous schooling schedule like all the countries currently ranked higher than us is because of lack of discipline and laziness.

Keep in mind that we're only behind in average. That is to say, our best schools compete quite well without the same rigorous schooling schedule (at least not involuntarily.) It's not that we have a failed ideal case, it's that far too many of our schools/communities can't even come close to approaching that, and our worst are probably the worst of any first world country.
 
Computer instruction today (maybe always has) happens within it's own domain. It only takes the inquisitive mind to learn and build on that foundation. For example the proliferation of JavaScript libraries that a few years ago didn't even exist.

That being said, higher powers are at work bringing new ways to create apps, to the masses. e.g.

http://fuse.microsoft.com/page/kodu
 
Agreed.

The purpose of the school system is to produce a thinking, independent, functional adult.
They fail miserably in too many cases.
Of course there are some people in this country that don’t want independently thinking individuals, but that’s for another thread :)

Too many kids need remedial math or English when they get into college. FAIL
Too many high school grads can’t even balance a checkbook, understand a loan document, or fill out a basic 1040-EZ tax return. FAIL

Part of the problem is that everyone is told you can’t be a successful unless you go to college.
Most occupations don’t really need a college education, a proper 2-3 year trade school should be enough.
I’m not talking about some of the worthless mills that turn paper MCSE’s for example, but real hands-on training instead.

Something else to consider. The average IQ in the US is 98.
According to one survey I’ve seen the average IQ for Computer Science workers is 128.
It’s a bad assumption to assume most the population is even capable of understanding programming.
Since IQ’s follow the basic bell shaped curve, for every person with a 128 IQ, you have to assume there is someone with a 68 IQ.
How are you going to teach C++ to someone with a room temperature IQ?

IQ is borderline pointless in my opinion. IQ can be improved just like anything else in life and if someone wants a high IQ they can obtain one even though IQ is 1 dimensional and only tests your logic skills.

I taught myself how to program and can do so somewhat decently and I believe that nearly anyone can learn how to program. The real problem is getting someone interested in programming as most people find it boring and tedious work and it takes a mathematical mind to really enjoy programming.

I only program because I need to have that tool in my arsenal to do what I want/need to do (game design/development). Programming can be fun though one that you start to design your own software and find real world uses for it.
 
and our worst are probably the worst of any first world country.

Nah...the majority of "our worst" can usually still drive cars and read enough to pass a driver license test. I'd wager that "our worst" on average (I know, on average again) are leaps and bounds ahead of those from 1st world nations that don't even have schools or driving tests...
 
Which first world countries don't have schools or driving tests? o.o

My point is that the worst schools in Detroit/Oakland/NOLA/DC/etc. are worse than any schools in other first world countries and are comparable with the worst third world schools.
 
teaching code isn't going to fix our shitty school system, shitty parents, and stupid kids.
 
First, who is going to teach the class? I would assume that for most programming classes this really isn't an issue. Either there is a math teacher (or something) willing to teach the class or the class doesn't exist (presumably students hear ahead of time/drop out of the case where some hapless teacher is stuck by the administration in some class they are clueless about). Once the class is required, you will likely need full accreditation (in presumably something obsolete about Pascal).

What is the goal of the course? Most courses focus on what is used in the industry (or at least was used when the course was planned). Sticking to something like Java (or FSM help you C++) means a large chunk of the (first) course is teaching the language before even getting to problem solving. Teach something like python (or even pascal, although finding a pascal compiler might be a problem) and you can spend more time on the logic and problem solving. Most of the arguments about programing class != thinking are accurate for classes like C++ (I've heard that at least one AP programming class was a study in C++ semantics).

I'm curious if there are any "hardcore" classes that start with something like LISP or MIX (not knowing assembler means no understanding of the hardware, period). This can be a great place for geeks to start, but can you imagine inflicting it on the general population? Maybe something like standard=Javascript(preferably python, but the way things work will probably require whatever is commonly used by coding monkeys), honors=python, gifted=LISP [or not. A few years back MIT dumped LISP for python. Such a class could probably copy as much MIT free courseware as possible.]
 
I don't think so. Not only because most people won't actually use what they learn (it'll be another one of those things that people are forced to learn and then forget within two weeks of finishing the class), but also because the pre-requisites of logical and critical thinking aren't taught either; regardless of how important coding skills are perceived to be in any society, critical thinking is far, far more important, and should be given a much higher priority.

IQ is borderline pointless in my opinion. IQ can be improved just like anything else in life and if someone wants a high IQ they can obtain one even though IQ is 1 dimensional and only tests your logic skills.

I taught myself how to program and can do so somewhat decently and I believe that nearly anyone can learn how to program. The real problem is getting someone interested in programming as most people find it boring and tedious work and it takes a mathematical mind to really enjoy programming.

I only program because I need to have that tool in my arsenal to do what I want/need to do (game design/development). Programming can be fun though one that you start to design your own software and find real world uses for it.
It can be taught...but do you really have the time?
 
Teaching children to code a bit would be useful in many other ways than turning them into actual programmers.
 
I don't think this is really important, rather to teach them more about sex, society and such a stuff kids need to know. If they would have to learn coding, than why not electronics, construction and so on?
 
I say YES... much more useful in day-to-day then some other classes. It teaches patience and typing if anything else. I believe it was a requirement for me in K-5... doing Applesoft Basic classes, that turtle drawing game, a few others...
 
I think an introduction is a good idea.

Depending on the schools curriculum it could be integrated into math or computers. I would not be surprised if most schools do in fact require a technology course. It could also get packaged into a math class when you do logic.
 
Apparently not. Do you know what percentage of schools FAIL "no kid left behind" minimum test standards for reading and math?

http://nces.ed.gov/nationsreportcard/pdf/main2011/2012457.pdf
http://nces.ed.gov/nationsreportcard/pdf/main2011/2012458.pdf

More programs are NOT the answer.

Try watching "Waiting for superman" on Netflix.

I have and the issue are completely different from the political reality that school boards and the blob of education is really the problem and the detriment of children, not so much what we would like our children to learn.
 
FIne, forget programming. Just a basic class on simple logic and reasoning. Christ, the blob has completely killed home economics classes and we have kids that can't cook, clean, or do the basics for themselves.
 
I think it is a stupid idea, not everyone is destined for the IT industry.

Not everyone uses a second language or becomes an artist, either, but they have those stupid classes. I could have easily lived an entire life without making bad paintings or etching mirrors.
 
Or, if I write a function that calculates a Fibonacci sequence, or the nth digit of Pi. It is syntactically clear from the code that the function will do what is intended?
If it's correctly-written, and if the viewer has no issue in understanding it, yes. If the correct approach for calculating the ninth digit of Pi is implemented, and barring any bugs which might effect the output of that routine, it is clear to viewers of the code will do exactly as it intends.

If programming worked in any other way, I'm not sure anyone could do it.
 
I believe coding is fun and it could be teached in high-schools or even lower.
Why?
Because every country NEEDS engineers. If you want to get some you have to show them that it's fun.

Sure, math will show you how logic works, but how real-life it is when sitting in class?

What about writing a small app that really does something?
Writing your own calculator?
Or maybe even take arduino or smilar 20$ hardware part that's very easy to start programming and mix in basics of electronics from physics classes?
How cool is it to make your own lock that needs code to unlock? Or your own blinking lights for bicycle?
Another good idea might be to show some cool easy inventions like this; http://www.kickstarter.com/projects/revolights/revolights-join-the-revolution
Spend 1h showing a prototype, let kids quess how it works and then explain all details and show them that it's not that hard to do. Maybe spend the next hour to build your own prototype with kids?
Sure, it needs time and (little) money, but if you want to have enginners you sometimes have to go the extra mile and make them curious how things work.
It might also be a great way for universities to show kids what they can achieve by going there.

If you want kids to get involved you have to show them something that's fun. Not many get involved in math by just sitting in classroom. I have learned most math because I needed it for programming ;-)
 
Nah...the majority of "our worst" can usually still drive cars and read enough to pass a driver license test. I'd wager that "our worst" on average (I know, on average again) are leaps and bounds ahead of those from 1st world nations that don't even have schools or driving tests...
I hate to tell you, but Indians who learn to drive in India probably have far better driving skills than your average westerner. Sure, the complete and utter lack of road rules is a problem, but the standards in the ability to negotiate a vehicle through tight spots is impressive. :p
If you want kids to get involved you have to show them something that's fun. Not many get involved in math by just sitting in classroom. I have learned most math because I needed it for programming ;-)
Yeah this is kind of why I don't think programming in schools would really be all that beneficial, since when do people get interested in stuff based on being forced to do it at school? :p But I guess that's a gripe more with the actual education system more than anything else. I dunno about the US, but in Australia if you look at the way Maths is taught all the way from prep classes through to graduating school, its no wonder people don't want to go on to do further studies or careers where maths is involved. Personally I'm into maths and sciences, but other than 1 chemistry teacher I had who made things really interesting, my personal interest in those subjects is despite the mandatory units in school rather than because of them.

But that's just my opinion based on the fact I was pushed away by programming by having to do units in it while studying Engineering, even though my job now actually requires it I don't feel the actual programming units were beneficial to me.
 
Kids should learn to code on their own free will, not be forced to take a class. Chances are those with a passion for it are already doing it anyway. Whenever something beyond the bare basics becomes mandatory, red flags should go up. For example, some schools are making Chess mandatory, and while I love Chess, I don't agree with the idea of making it mandatory either.

More options are good, making those options mandatory is not good.
 
I think students should take a year or two of it in middle school. Sure is better than a lot of the curriculum we teach now days. As much as I love History, a lot of it is pretty useless.

But you know, if we taught useful things like plumbing, electricity work and carpentry in school, it would probably decrease the job market tremendously because a lot of people would know how to do the easy things and wouldn't pay someone $100 an hour to do them.
 
Considering how abysmally US schools generally cover the basics, this is just more noise.

Software engineering should just be part of the science curriculum. Not everyone is destined for IT and science. I fucking hated it when I was forced to take fucking WOODWORKING in high school to fill out some god-damned checkbox.

You do NOT need to teach software engineering to teach logic and critical thinking. That's just a retarded idea. Any good science class can do that.

Software engineering should be up there with chemistry, biology and physics. Allow the student to decide which direction they wish to go.
 
I think students should take a year or two of it in middle school. Sure is better than a lot of the curriculum we teach now days. As much as I love History, a lot of it is pretty useless.

But you know, if we taught useful things like plumbing, electricity work and carpentry in school, it would probably decrease the job market tremendously because a lot of people would know how to do the easy things and wouldn't pay someone $100 an hour to do them.

History is actually a core study though. Its important from a basic knowledge stand point to understand history to have some understanding of where we're coming from as a people, major events and what caused them. Its a knowledge that contributes to a persons understanding of how and why society works, where it fails, why do people hold certain values, why certain nations are the way they are, etc etc. So that people know when X president wants to invade Y country or introduce Z opressive law, they should be standing up and protesting and voting for someone else. Without the sort of knowledge that history gives, you end up with people standing up for what they believe but not actually knowing what it is they believe and why and whether or not they should actually believe what they do for whatever reason.

The problem is that its taught like shit, like most things in school. However I see history and similar studies as core units, I don't see coding as the same. Even things like electronics and carpentry, as you say, are closer to core skills (I wouldn't say they are necessary core units, but I think they're closer than coding), because even if you don't go into an industry that requires them, most people live in houses and would benefit from an understanding of how to fix a cabinet when it wont close, how to fix wiring so you don't accidently electrocute yourself or your family or so you actually know when it is time to call a professional. Not necessarily a core unit, but closer to it than programming.

That said, I think it'd be a useful elective unit.
 
I'd say no. I teach programming on the college level and look everyone is not meant to be a programmer. I have Masters degrees in Art and Computer Science (not mentioning this in a pious sorta of way here, just giving some context) and I've seen students from both areas and just like in Art not everyone is meant to be a artist. Programming is more of an art than a science IMHO.
 
Back
Top