Posted
by
Soulskillon Saturday December 07, 2013 @09:05PM
from the or-by-bribing-them-with-candy dept.

the agent man writes "The Hour of Code event taking place December 9-15 has produced a number of tutorials with the goal to excite 10 millions kids to code. It's really interesting to contrast the different pedagogical approaches behind the roughly 30 tutorials. The University of Colorado's 'Make a 3D Game' tutorial wants to excite kids to code by focusing less on coding. This pedagogy is based on the idea that coding alone, without non-coding creativity, has a hard time attracting kids who are skeptical of computer science, including a high percentage of girls who think 'programming is hard and boring.' Instead, the 'Make a 3D Game' activity has the kids create sharable 3D shapes and 3D worlds in their browsers, which they then want to bring to life — through coding. There is evidence that this strategy works. The article talks about the research exploring how kids get excited through game design, and how they can later leverage coding skills acquired to make science simulations. You can try the activity by yourself or with your kids, if you're curious."

Nothing to do with PC, it has to do with the fact that I'd want to teach my daughter how to solve problems through coding not how to sell her body. She wants to dress provocatively for her enjoyment, that's all on her, but I'd make damn sure she could use her mind to earn money. If anything I'd want her to redefine booth babe as the hot developer making the big bucks.

The best way of teaching coding is firstly in the manipulation of interesting simulations, firstly where the manipulation of inputs into the simulations alters the outcomes and then reviewing the underlying algorithms and how changes there further alter the outcomes. This provides access to much more complicated programs that in total are out of the intellectual reach of learning students but far more interesting, so while the whole program is far to complex, elements of it are within reach and draw the st

No, it is not. Or rather people that think this will never be good coders. That is why there is no way to qualify 10 millions kids to code, there are just not that many with the required talents and interests. Coding above a certain, very low competency level, is not a skill you can train people for. Add to that that smart people do not become coders today, due to bad working conditions, bad job security and being treated like shit by management.

Coding above a certain, very low competency level, is not a skill you can train people for.

Either that "low" level is a lot higher than you think, or our world is doomed. Coding is a matter of process-thinking, and any large company runs on process thinking. Getting people to code early as a core skill, rather than as a specialism, would have knock-on effects in all organisations employing more than a few dozen people.

It's a lot more than that. Coding is very different from the sort of process thinking you use to build processes executed by people, because computers are completely incapable of filling in any gaps or exercising any initiative. If you build company processes the way you write code, they'll be very ineffective, and if you write code the way you build company processes, your code will rarely work.

In addition, outside of code that defines business rules, coding involves huge numbers of details and abstracti

Coding is very different from the sort of process thinking you use to build processes executed by people, because computers are completely incapable of filling in any gaps or exercising any initiative. If you build company processes the way you write code, they'll be very ineffective, and if you write code the way you build company processes, your code will rarely work.

Oh, if only. There's been plenty of times when I've identified holes or ambiguities in the company process, identified the most likely misinterpretation from the way it's worded and been told I'm just being picking and people will understand what it means... only to be hauled up a year later for not following the designated process when I did what was originally intended, rather than what the documents said.

If you want people to get interested in programming, you have to show them something interesting they can do with it? *gasp*

Personally I didn't get interested in programming because someone showed me how to do a for loop. I got interested because I could build games in ZZT or add my own cheat codes to gorillas.bas. (Those damn gorillas didn't stand a chance against my nuclear bananas.)

I got into programming because my friend talked me into taking an elective class in high-school. I was reluctant at first. But after I saw what it was all about, I realized how potentially powerful programming was: a wide variety of ideas that I could conceive I could turn into a "device" and shape it to my vision: the computer was a blank canvas and the programming language was a rack full of shiny new paints and brushes.......and it was fun and liberating, until the boss made me paint the corporate equiva

I hate to say it, but some people can't think even if forced to at gun point or with the promise of vast wealth. I (as an adult learner) was in a class of high school students learning CNC and manual machining. I told them about my father, a CNC programmer of over 40 years experience, and how his tax refund was almost always more than I made for any given year. The instructor backed me up, stating that he made a lot of his yearly income doing side projects and contract work during the summer.

Me thinks some little kiddies are in for a rude awakening when they realize their favourite games are comprised of nothing but hundreds of thousands of lines of "code". The real world doesn't hide C or C++ behind a pretty sugar coated UI. If they're not interested in programming, then they're not interested in programming. I don't understand why there seems to be this excessive push to force programming on younglings these days. It's definitely not for everyone, and the last thing we need right now is more dis-interested programmers who write crummy code because they're just there for the cash.

The push is to get young girls into programming. Because if young girls can't do what a grown man can, that would imply that grown man are superior to young girl in at least one thing. And that would get the feminists mad. So keep pushing kids into stuff that do not interest them, because you go girl! Nothing is more important then proving men are inferior.

Programming was never "boring" to the "right" kids because those kids were creative and had the ability to imagine the possibilities provided by computers and the motivation to see them through. But with the outright failure of the American (and possibly elsewhere) educational system, it's not absurd to suggest that maybe we ought to foster this sort of creativity and innovative behavior in more people through different approaches to educating children. As it stands, academic subjects are taught as horrible

I would say that coding, at the high level, it much less tedious than it once was. A lot can be done by drag and drop. Even the most tedious platform coding, for the Mac, has been greatly simplified. Of course much of this 'simple' coding does not pay very much.

From a pedagogical point of view, the idea is to teach techniques and process without overwhelming the immature mine with the details. It many cases this leads to meaningless games and trivial activities that don't really teach much. Universit

Perhaps, before you make these kinds of statements, you should actually look at the research of the University of Colorado including studies showing that kids can leverage the MEASURABLE skills they got from game design to science simulation building.

It's definitely not for everyone, and the last thing we need right now is more dis-interested programmers who write crummy code because they're just there for the cash.

While I agree that just being in it for the cash is the wrong approach, I also vehemently disagree that programming is the last thing kids need. Kids need programming with their mathematics. Consider a Sigma symbol -- That's a fucking for loop you twit. Now, if we had just taught the kids how to do mathematics on computers instead of shitty little calculators then they could control the primary IO they have with the digital world: HTML and JavaScript.

You want to motivate someone to really learn something show them the power of the thing. If you try to teach programming or math by showing kinds "hey you make 3d animations" many are not going to be interesting; because many won't see value in the application. On the other hand convey this can open endless possibilities its a tool that you can use to accomplish YOUR OWN goals, and kids will take interest.

For one student that might be animating their favorite comic book character, but for

The danger in using strong language is that it makes you look like more of a fool when you're wrong. Like right now.

You can implement a sigma-style summation using a for loop, but the underlying logic is totally different. Computer science may be a branch of applied mathematics, but the underlying nature of digital computation is not a direct model of classical mathematics. The sigma summation is just one type of "for all" expressions in maths, but these are fundamentally limited to be self-completed, and t

It's not that hard. But perhaps the best approach to the "boring" bit is to point out that the alternative is even more boring. Rename 500 files to the new naming scheme? I'll just write a wee shell script, thank you very much. Others would do it manually.

That one is actually relevant to politics, so they can perhaps make better decisions about what powers the government should have and what powers it shouldn't. That's what I'd like to say, but it doesn't seem to be working.

Why teach mathematics in school?

Beyond the most simple math? I have no idea. We don't even teach it well enough for people to even begin to truly comprehend it, so I don't know why we bother at this point.

I love to code and have been ever since I owned my first computer, but the kids are right. Programming is hard and boring compared to a lot of things they could be doing. So may we can try to help them understand why this hard and boring task is still worth their time. Instead of try to put lipstick on that particular pig.

I love to code and have been ever since I owned my first computer, but the kids are right. Programming is hard and boring compared to a lot of things they could be doing. So may we can try to help them understand why this hard and boring task is still worth their time. Instead of try to put lipstick on that particular pig.

Most things worth doing have their hard and boring stretches... but when that program works, or that music plays beautifully, or whatever it is just comes together, there is a lot of satisfaction.

You know, any task done well should logically have this property, but for some reason you never hear about the years of kitchen catastrophes that go into making an innovative world-class chef, or years of grinding practice that make a gold-medal figure-skating or gymnastics routine. Maybe there really is an image problem that's bigger than we'd like to admit.

The real problem has nothing to do with whether coding is boring or not, it has to do with attention span and critical thinking. Most kids have a short attention span and little to no critical thinking skills anymore. Add that to the expectation of instant gratification and yeah, kids are not going to like any process without immediate feedback or required thinking. Stop dumbing down the world so the children with the least abilities can appear to compete at a younger age. Reality does not care. ALL ch

"Programming is hard and boring compared to a lot of things they could be doing."
Like digging ditches on a road crew? At least programming pays well and is respectable.

Great point.

When my previous job cut down their janitorial service to the point that we were in practice having to empty our own trash, I said that I had no problem with it, but did they really want to pay me programmers rates to take out the trash?

For most of them, it is not worth their time as they will never get really good at it and work conditions suck. Good coders are idealists, all other intelligent, capable people go into jobs where they earn more money and are treated better. Unless we as a society start to treat good coders as a scarce and very valuable resource, things will not get better.

Caveat: Yes, I am a PhD level coder (among other things), and I write anything from assembly (mostly C these days though) to journal papers. And I am not

Having once written for HyperCard, I'm glad it's gone. It had some syntax in common with COBOL. ADD 1 TO N is valid COBOL and valid HyperTalk. The data access in Hypercard (put the second word of name into last_names) was worse than COBOL.

If you used card names instead of card numbers, the program ran much slower.

HyperTalk was oddball, but HyperCard was a decent way to get a non-technical user to be able to present data in a usable form, then expand from there.

I could easily do similar with a Web page and some backend scripting, but there was something fairly nice about HyperCard's instant gratification where once the script was in, it was ready to go. No makefiles, no compilation, the source was the object code.

I would not be surprised if we saw a modern version of Hypercard come around again, because done right,

The graphical layout engine is still missing. Sure, you can get crappy WYSIWYG page layout editors --- but nothing that lets you start hooking up actual interactive functionality to objects without diving into the code (which might be spread over several programming languages and environments). HyperCard may not be the giant flexible solution-for-everything that HTML+JavaScript+etc.etc.etc. are, but it was still an order of magnitude easier to pick up from "never touched a computer before" to "whipping up i

This is no secret... And yet it's not really done enough. At Griffith University a language called MaSH is used to lower the bar and allow people to actually make stuff happen, while still being a good introduction to *real* coding (it's a subset of Java and a few specialised APIs). Simple text processing, simple graphics, simple robotic control. http://www.ict.griffith.edu.au/arock/MaSH/ [griffith.edu.au]

What is it with all the stuff that wants me to use Chrome these days? Fine for an educational setting, of course. But this coding to the browser stuff is getting offensive. Is Chrome really that much better at graphics or whatever? And is Firefox getting fixed up, or what?

I've never learned any language for it's own sake, and I've always been interested in programming as long as I can remember.

Every time I've tried to learn a language just to know it, it's about as successful as pushing a string. As soon as I have some goal I'm excited about where not knowing a certain language is getting in my way of achieving it, I learn virtually effortlessly.

That's pretty sane - when I force myself to learn a language just to try it out, I usually end up forgetting it days later. When I really need to learn one for something specific though, it's fun, it sticks, etc etc etc.

Take them to 1981 and give then an Apple II or a Commodore PET? And a 100 different copies of "Compute" magazine so they can type in their own programs and get immediate gratification from a small amount of code?

Why the hell the push to force more women into programming? Programming is a dead-end job. The stats and personal experience show a good percent move on to something else. Burnout, RSI, ageism, long-hours, etc. are real issues in programming. Women want stability because they often end up being the primary care-givers of families for good or bad, and programming is NOT stability.

If you like programming, that's fine, but don't expect to be able to stay in it for more than 15 or so years. Have a Plan B.

If you like programming, that's fine, but don't expect to be able to stay in it for more than 15 or so years.

I think you've just identified the reason. If the supply of programmers is burning out that fast, we've got to shove as many replacements in as we can, lest we face having to do something really drastic, like pay them more...

Why the hell the push to force more women into programming? Programming is a dead-end job.

Yeah, and they should stop teaching kids how to write, because writing is a dead-end job.

Do you see my point? Programming is a skill that can be applied to many jobs. If you can program, you can write macros and scripts to automate day-to-day office tasks such as file archiving. If you can program, you can create a little bit of code to do your accounting and stock-taking rather than building a confusing and error-prone spreadsheet. Programming is not just for programmers.

If you like programming, that's fine, but don't expect to be able to stay in it for more than 15 or so years. Have a Plan B.

Your experience is completely at odds with mine. I'm 45 and have been a professional programmer since I was 18 (I started writing code at about 12). I work with many guys who are in their 50s and 60s... they're excellent engineers, and compensated very well for their experience and knowledge.

Granted that I work with the upper tier of professional programmers, but it is far from impossible to have a long, satisfying and financially rewarding career writing code. You have to love it, you have to be good at

I must be imagining my now 12 year career, with excellent prospects for all kinds of growth in all kinds of directions. I have done everything from writing SFTP servers embedded in an ISDN modem, to writing web front-end UI code, to web back-end datbase code. I have to tell recruiters I am not interested all the time as I currently have a job. I guess I am going to get fired in 3 years, and there is nothing I can do about it? Oh wait, I don't suck at what I do, I will be employed in 3 years, and in 10 years as well. I must be some freak of nature or something.

Everyone knows that there's no future for American computer programmers. I've been scrounging since the dot-com bubble burst. That was followed by the outsourcing phenomenon, the guest worker/fake job ads [youtube.com] phenomenon, and the perfect-fit phenomenon.

That's why kids don't want to become computer programmers. Because they're not as stupid and gullible as you think.

IMHO, there is a bright future for American computer programmers. We're needed more than ever, and good ones are harder to find per capita. Pay is good.

I sure hope you're right. I've got another ~25 years before I can take Social Security (assuming it still exists then...big assumption), and fear the day that age discrimination ruins my remaining chances to stay employed.

As to your personal situation and why you've been scrounging since the dot-com bubble burst...well, it could be a lot of things. Maybe your idea of "scrounging" means turning down a job a Microsoft because you don't want to work for the man...maybe you're a true genius who makes everyone even the bosses look bad so is ostracized...hell, idk...but I don't think your experience is representative...

No, "scrounging" is more like having to (repeatedly) uproot my life and move hundreds of miles just to stay employed...a few years back, I left Southern California, where I've lived all my life, to take a job in Sierra Vista,

What is the difference with other STEM subjects? For example, I liked learning calculus (ok, I didn't really learn calculus in the mathematics theory sense - measure theory and stuff - till grad school) in high school, though mainly I liked the use of calculus to physics (projectile motion, mechanics, electrostatics). Now, you might consider physics a "cool" application, but it really isn't - it is just as cool as say, building Pascal's triangle. If anything, I can see the results of programming almost inst

I take issue with the premise that coding should be made fun in the first place. In a world where, within a couple of decades, machines will program themselves, I don't think coding or any other technical (let alone blue collar) field is an appropriate thing to invest in learning--and I say this as a gainfully employed computer "scientist". When I have kids, I would probably discourage them from specializing in such subjects (though general knowledge is another matter). As someone posted on slashdot once, w

Most people get into programming in their childhood do it because they want to make games. Why did it take a research study to figure this out that writing games is less dry and dull than dumping someone into Java's cargo cult boilerplate class definitions and telling them to write hello world?

I would venture to say that making games is a good way to teach adults how to program, too.

I saw the posters at my kids school and I am was unconvinced this is a good idea.

Programming / coding is a lot of things, and it's different to a lot of people. But the idea of teaching it by discussing game design really strikes me as a bad idea, for a lot of reasons:

1. Game design is inherently difficult. I mean, it's an art and science, and it is multi-discipline. After an hour, or ten hours, or whatever, you aren't going to have a lot to show for your efforts. Games designed and built by large team

I don't think this problems is limited to 'coding', whatever that means. It is easy to learn something, when you are motivated; so finding things that motivate students is crucial. Personally, I am not convinced that making games is the best motivation - initially it will sound very interesting, but as soon as it turns out that the game you are able to make is not going to be the all-singing, all-dancing version of your favourite game, the motivation is replaced by disappointment.

Why do we not hear more about nand2tetris.org [nand2tetris.org] and the wonderful work Mssrs Nisan and Schocken have done? They teach computing concepts from first principles, and in a way that's fun and engaging. I say this is perfect for introducing a gifted youngster to the wonderful world of computing.

If it were easy and fun, everyone would be doing it for themselves.But the Software Industry knows this and avoids anything that will gravitate towards the self recursive act of programming to automate complexity for and by the end users.

Programming can and should be a lot easier but like the Social and earning position of the Roman Numeral Accountants, those in the software industry (both sides - FOSS and Proprietary) do not want this because it will remove their earning and social position (while making

This was back in the 1970s, when I was just a kid. It was a purely text-based moon landing game on a mainframe -- REALLY text-based, played via a "terminal" consisting of a keyboard and a dot-matrix printer. The computer printed out how much fuel you had and how fast you were descending; you had to enter a number indicating how much fuel you want to burn, and then the computer would recalculate and print out the new velocity and fuel level. Repeat. The idea, obviously, was not to crash.

I tried node on my 5 year old, but she started screaming "I want my threads back you cruel bastard, this async crap is giving me a headache" (we're working on her anger management issues) but now the social workers are involved and if I don't get her continuation passing style soon (the 70s called) I'm going to find myself in deep water.

Yeah, it's so hard that children can easily teach themselves. It's ridiculously easy. How many of the users here taught themselves to write code before they age of 10? Face it, it doesn't take a special mind or superior intellect to write code. It does not make you special. Get over it.

I haven't met anyone yet with the interest but not the aptitude. I taught computer programming to adult learners for several years as an optional part of a computer literacy series. I had exactly two students fail to complete the course -- both because they refused to do any of the exercises. You can't learn to program without programming, just like you can't learn to drive without driving.

Programming is absurdly simple. It's been my experience that anyone can learn to write computer programs with surpri

Programming really is absurdly simple as are all the forms of engineering (done all but two to date). It's the critical thinking that is required to determine the solution that trips most up as it isn't taught in any school I've run across prior to college where it is a core requirement. [Got an A+ myself. No surprise there.] If you can'[t decompose the problem to describe the solution using any of the maths applicable, and don't kid yourself every technique (iterative, functional, OOP,...) they all found

And you are completely wrong. Becoming a good coder doe snot only require the customary 10'000h that are required to master any skill really well, if you do not have the aptitude and talent, no amount of trying will turn you into a good coder. There are very few good coders around. There is a large host of really bad ones and a much smaller one of mediocre ones. Most of them never get better during their whole careers. Then, very occasionally, you stumble upon somebody that actually understand what he/she i

Yeah, it's so hard that children can easily teach themselves. It's ridiculously easy. How many of the users here taught themselves to write code before they age of 10? Face it, it doesn't take a special mind or superior intellect to write code. It does not make you special. Get over it.

Things were different when we could easily fire up a BASIC interpreter and hit one key to start the program. Today there isn't a single environment simple as that.

Kids can easily teach themselves to program well? Then why do a grand majority of programmers suck at it completely?

In my experience, sucky programmers are the way they are because...they didn't learn to program as kids.

I did, and was shocked when I entered college (late 1980s) to find that the vast majority of my peers in the CS program had never touched a computer before going to college. They majored in CS because they thought they could get a good job and make a whole lot of money. Love for the craft (or any actual aptitude for programming or engineering) was never part of it.

The next problem is that, when they get out of college and enter the workforce, they bristle at the idea that there's anything else to learn. After all, they went to college, and they know everything. I'll never understand that...I have to learn constantly just to stay relevant. But most industry programmers developed lots of false confidence by bashing around toy problems in college, and try to be just as sloppy and short-sighted in their paid work.

Finally...because bad code is not a life-or-death thing like bad work in other fields is. Can you imagine chemists as sloppy and incompetent as the average industry computer programmer? They'd either poison themselves, blow themselves up, or dissolve themselves before long. Oh, how I wished I had stayed with chemistry.

When I was running through CS (graduated in 2008), the students knew they would have to fight tooth and nail for positions. They had to be better than the offshore coding houses, and/or the H-1Bs.

So, a lot of them not just did well in class, but went off on internships, both paid and unpaid, as well as went and got their name on some OSS project.

The people that went through CS were the die-hards... there were no illusions about getting some cushy ABAP job. Instead the students focused on trying to actually be usable pieces in a dev team puzzle. The people who were not that dedicated switched their majors to general business.

And even when you do, you can't get a job because everyone wants a rockstar developer who can do it all when in reality it'd take a team of 6 specialists to do what they expect 1 person to be able to know/execute perfectly and quickly.

Simple answer? The best people at that kind of work are puzzle-people. The only differences I have detected over the last forty-five years is what knowledge domain they are best suited for solving problems in this manner. When they decide to enter the field, computer science or engineering or programming (coding), they face a curriculum that is seriously disconnected with their passion around reasoning out and solving problems. It's a one size fits all curriculum that winnows the wheat rather than the chaff.

As with your example, I started when I was ten. My personal computer occupied the entire first floor of the Science building at the university. Everyone thought it was "cute" that someone so young was picking it up quickly. By the time I was 14 I was a teaching assistant and doing consulting. Back then, it was all about solving problems. That changed rather quickly over the next few years as the computer science, then computer engineering, even the set of courses within various departments were seriously over-subscribed. Then the curbs were brought in to reduce the number of successful candidates and to winnow out anyone except those who would tough it out. You also see this in pre-med and pre-law programs for the same reason.

There's no easy fix either. They can yell up and down about a shortage of STEM graduates but until the systemic restrictions are centered about actually selecting people that are "the best and brightest," it isn't going to change. Meanwhile, "our global competitors" are about getting people through to the job market with what they need to know rather than equipped with knowledge that is useless in real-world problems.

Kids can easily teach themselves to program well? Then why do a grand majority of programmers suck at it completely? They're incompetent and don't have a deep understanding of any of the concepts.

Valid point. Self-teaching is a very hit-and-miss experience. Some self-teachers fail to identify important things and hence never learn them.

The prevalence of the (partially) self-taught programmer in the workplace basically points to one simple problem: a lack of school teachers who are capable of teaching programming. We've not developed enough of a teaching culture, so even good programmers find it difficult to put themselves in the learner's position and so they don't make good teachers.