Excite Kids To Code By Focusing Less On Coding
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."
A better way to promote programming to kids:
https://www.google.com/search?q=booth+babes&source=lnms&tbm=isch
If you want news from today, you have to come back tomorrow.
Coding for it's own sake is *easy* and boring.
obviously should be "code in his node."
...however Ronald McDonald has shown that a happy meal with a TOY works best.
Unless the toy its stupid and boring CODE.
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.)
There's no -1 for "I don't get it."
Was programming ever not hard or boring?
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.
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.
A nation turns its lonely eyes to you (Woo, woo, woo) Programming for the People
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/
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?
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
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.
I don't get why people make 'web apps' whose only advantage seems to be that they're cross platform, and then tell me that I should be using Chrome for the 'best experience'. It seems to work fine in Firefox, but perhaps something is subtly broken.
That's the most hideously-designed site I've seen in a long while.
Comment of the year
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?
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.
Required reading for internet skeptics
That's a long hour.
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.
I'm just the messenger.
Table-ized A.I.
"It's really interesting to contrast the different pedagogical ...This pedagogy"
Protip: If you want to try to impress by using big words, learn more of them.
"National Security is the chief cause of national insecurity." - Celine's First Law
Actually, it does. It's just that most people who have the knack can express it by age 10.
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.
"Once we've identified and embraced our sickness, we'll have strength...and that's when we get dangerous." - John Waters
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.
"[I]t is a wise man who admits the limits of his knowledge or skill, and that pretending either causes harm." --Terry Go
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 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.
"Once we've identified and embraced our sickness, we'll have strength...and that's when we get dangerous." - John Waters
You are using all of the necessary types of blocks, but try using more of these types of blocks to complete this puzzle. Taken from the first lesson... Even with the IDE in front of me I couldn't understand what it was trying to tell me.
I skipped ahead... now I need an 'JSFiddle' equivalent for this.
I'm using Chrome with NotScript and Flash Blocker. Even when I permitted the scripts and Flash, that 3d frogger thing was bogged down and unworkable.
That's OK though. All they have to do is go to their own web site and learn how to code.
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
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 surprisingly little effort. This terrifies some people. I'll let you puzzle out why.
Required reading for internet skeptics
It is/has? :P
Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
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 instantaneously. I hated actually doing experiments with my hands (like proving Newton's laws using a block of wood and a weight).
So why is there this perceived need to make "coding" fun? It is as fun as any other subject in STEM, no more, no less (blowing things up in the chemistry lab is different; now that was cool. I thought - rightly or wrongly - that I had no aptitude for it because I couldn't figure out (at a high school level) what might happen on paper before doing the experiment for most things, like flame colors or what might give the best explosion).
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.
Coding can be fun.
I think the problem lies in how we define the act of "coding" and in what context we present the activity, combined with a misunderstanding of what people actually think is "fun".
Coding is a powerful tool. It is how humans control virtually all complex machines.
Kids love complex machines, but I think the break point is what machines we teach them to program and what behaviors the programming automates.
People, especially kids, like playing video games, so it stands to reason that teaching them to program their own game would be an excellent way to get them into coding. It totally makes sense. I'm not saying not to do it, but it's not working as TFA points out. For one thing, making a simple "game" in an artificial environment isn't actually that fun...because teaching kids to make their own version of "Starcraft" is way too complex there aren't many options.
I think coding simple machines is the solution, enabling more creativity and real-world interaction, without losing the coding aspect. For example, coding a basic motion sensor that makes an output.
You can get basic light/motion sensors for fairly cheap actually (toys have them) and combine that with an output that either triggers something to play a sound, turn on a light, etc.
A next step would be using a rasperry pi type interface...then linking it with all kinds of stuff...
Advanced lessons would be making a motion detector that turned on a light, turned on a radio, and triggered a program on a computer to send a tweet...
Something like that would give them the basic tools to really go crazy...
Thank you Dave Raggett
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 completely agree with this, but for a completely different reason which kind of contradicts the premise of your reason.
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.
However, the problem is the **work environment**
Coding work sucks, but all work sucks. I was a snowboarding instructor for 5 seasons and **that** even sucked b/c we had to be teaching fatass Texan rich dudes how to stand up on the board instead of going out and riding to improve our own skills or get footage for sponsors.
All work sucks.
The shit part about coding that makes it wise for kids to want to avoid it is that in most of the industry the coders are highly paid slaves.
REAL CODERS HAVE TO DO ALL THE WORK.
Just look at Snapchat. Or have a gander at this borderline psychotic but not a joke job ad for a web coder for Penny Arcade. That's why young people don't want to code.
American business rewards all the worst things...the incentives are all going in the wrong direction. As to your personal situation and why you've been scrounging since the dot-com bubble burst...well, it could be alot of things. Maybe your idea of "scrounging" means turning down a job a Microsoft because you dont want to work for the man...maybe youre 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, however I do agree that the issues you identify in hiring are all legit problems.
Thank you Dave Raggett
Comment removed based on user account deletion
Teach the kids how to write a labor-saving screenscraping app that automatically logs into an adult website and in a short amount of time downloads an unthinkable amount of Pr0n.
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 somewhere in maths, you're less than useless in this or any other maths oriented field.
The sad and sorry truth is that our school system does try every once in a rare while to teach critical thinking (e.g. word problems), but it's piecemeal without bothering to tie all the other classes in logics and maths to give these kids a head start. For years I would look at the maths and sciences tests administered around the world. Tough doesn't even describe them. The only way to survive them is to either have the solution sets memorized by practical experience or to know how to approach these problems in an aware manner.
AC: I seriously don't think I qualify as a crappy programmer (engineer) as I'm not typing this from a federal prison which is where I would have ended up by being a crappy programmer. [QA/QC is an absolute necessity.] I'm also not optimistic. Realist on my good days. Terminally depressed on the bad ones. Literally, terminally depressed.
"[I]t is a wise man who admits the limits of his knowledge or skill, and that pretending either causes harm." --Terry Go
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.
I suspect it is a lot easier to start with something more realistic, that the student is already interested in. From my own background: when I was about 12 or 13 years old, I got very interested in astrology (yes, I know, I know, but that's not the point here); however, it was difficult and expensive to get hold of the all-important tables of planetary positions. So, I taught myself to write BASIC programs for the school's computer, I learned enough about how the planets moved to satisfy my limited understanding, and I made a program that would calculate planetary positions of a sort. From there it was easy to continue - the first step is always the hardest.
A little postscript for those who are jumping up and down over my mention of astrology: yes, I agree that it is bogus. However, it motivated me at the time, and I still have a certain fondness for the subject. And I still read my daily horoscope - otherwise, how else would I know how I feel today?
Face it, it doesn't take a special mind or superior intellect to write code. It does not make you special. Get over it.
Let me guess, you're one of the people who hire the 'coders' on the daily WTF?
No sig today...
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.
http://rareformnewmedia.com/
Why do we not hear more about 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.
'He who has to break a thing to find out what it is, has left the path of wisdom.' -- Gandalf to Saruman
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 genuine software engineering a real industry), Roman Numeral Accounts diminished upon teh introduction and acceptance of the Hindu-Arabic Decimal system (making make easy enough that everyday people can do math beyond what the Roman Numeral Accounts were able to.
Current Software Development Industry methodologies cannot achieve programming at the Holodeck level. To do so requires redoing the understanding of the honest foundation upon which all abstraction are created and used. See: http://abstractionphysics.net/pmwiki/index.php
Honesty is a bitch, because those against it make it so.
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 is doing. That is so rare that it is glaringly obvious when it happens.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Indeed. One thing the industry has consistently ignored and the main reason why most software sucks badly.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
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.
A few years later, when I learned BASIC programming on a Commodore PET, I started writing my own games along the same lines. In high school I had my own business writing educational software for the Apple ][, working for the guy who had taught me programming.
Coding has always been fun for me. I think because at some level I associate it with the games I was able to create, and the LEGO blocks I loved to play with. Imagining something, and then building it -- just because you want to.
Koans and fables for the software engineer
Yeah, it's so hard that children can easily teach themselves.
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.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
All these kids that these programs reach will think programming is fun at first, and as soon as the educational emphasis shifts to real computer science, most of them will just switch majors.
Is that a problem? Why should programming be the sole preserve of CS grads? (grad (en_UK) = major (en_US)
The guys who get the interesting programming jobs usually have another specialism anyway, like my friend who studied astrophysics and now programs space craft maneouvering routines...
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
Yes! Teach them BASIC! Because it's not like a dumbed-down, logically crippled shadow of a real programming language, is it? GOTO FTW!
Sorry, but you've just fallen into the biggest educational fallacy there is: "it worked for me, therefore it is the best".
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
Programming is hard and boring, because of the effort to make it free from bugs and errors. Still programming can be fun.
How about we get kids excited about solving maths problems without having kids solving maths problems?
We can give kids a ruler, a compass, and a protractor instead: and just see what neat things they can create
Yes, but you could have a language that has simple I/O and isn't utterly bereft of good coding principles.
And Processing is an absolute car-crash. The basic principle is sound, but the execution was woeful. Brett Victor's detailed slating of Processing.js covers a lot of the inconsistencies and woolly thinking in the model.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
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.
yo, thanks for the response
hold on there cowboy!
everything that machines do is dependent on human choice...humans *chose* to program machines a certain way...
the behavior you describe: "machines will program themselves" is actually not physically possible in the logical sense...it's like saying "gardens will plant themselves"
you're mixing concepts...specifically, the concept of "program" and the concept of "self"
the behavior you *actually* are describing is humans programming machines.
that's a nitpick, but an important one b/c you whole argument is formed along that premise...
I think you're making a false distinction. "teach kids X or Y"
I say "teach kids X and Y"
learn a blue collar skill, learn the concepts of coding so you can apply as needed to specific tasks, learn a science branch, learn literature
all of it
Thank you Dave Raggett
Awesome language for kids imo.
Teaching people to code by first teaching them a programming language is like teaching them about hammers before explaining that we're trying to build a house. Your programming languages are your toolbox, nothing more.
Perhaps the 'gee-whiz' factor of seeing the code first breeds more interest in children than the engineering process but to my mind it seems that we need to be teaching kids from the top-down if we're interested in creating a generation of good programmers. When kids learn HTML, CSS, and Javascript and then get their first website project written for a client (e.g. modifying the school website) they're shocked to learn that they're not going to be using cutting-edge libraries and that the vast majority of work is more boring frustration than actual magic. Young programmers, in my limited experience, do not like finding out that they don't get to use whatever tools they want to play with at the moment.
You can teach almost anyone to program but developing software solutions is something entirely different.
I like my women how I like my sugar.. granulated.
The Internet as we know it was created by brilliant people who worked with the equivalent of Stone Age tools, and yet they had no problem a) enjoying what they were doing and b) creating awesome things. Why do we suddenly need to glamorize programming by giving it a video game facelift? Is the population getting exponentially dumber? What happened to all the smart people?
That is something I have to agree with. We need more coders and innovators. The fewer people in the field, the more stagnant it gets.
We need more people that can use programming as a creative tool. Right now, programming has a bad rep, being viewed as the domain of offshore programming houses and bargain basement H-1Bs. However, cool new things have to be programmed by someone.
Most people I know who "liked" coding started with a good base example program that was laid out easily enough to pick apart and alter. You may not understand the whole thing at first, but there's enough that you can make changes and see the effects.
Coding is boring when you reach those points where you're floundering about and can't see any visible result of your work. Picking apart working examples is great for building interest and getting one started in coding.
Programming is absurdly simple.
I've found that most of the people who say this are crappy programmers, overly optimistic, or both.
Actually sight-singing the continuo lines from Bach's Christmas Oratorio, the orchestral score, either while listening to a recording or not is absurdly simple! Only if you brain happens to be wired for music and you have learned enough solfeggio to read the part at sight. So this is wrong, as is the assertion that anything is absurdly simple. Is remembering 40 moves at chess "absurdly simple"? It might be if your degrees are in math or CS and you have been playing chess since you were four years old. I know musicians who have been perforning since they were that age.
But brains are all different, so I could never remember many moves in a chess line while knowing people who knew all the variations of the opening, and they couldn't remember orchestral and vocal parts from music literature as easy as I could. BTW, I consider myself a bad programmer, even though I try to write code every once in a while. I don't have any illusions that it is my strength. As to if good programming can be taught, especially to adults who got it wrong, I have my doubts, just like it takes some native ability to do music, at least some pitch and tonal memory.
Don't say "turing" anything b/c that whole thing just muddies the waters & explains nothing.
in order to "simulate" a human brain as described above, you have to *know how the whole system works*
we don't...not even close...we have barely scratched the surface on really understanding the brain and consciousenss...we are just beginning the mission of mapping all brain connections...then we still just have correlations...
in some **far flung** future, where we have materials science unthinkable right now, have mapped brain connections, and understand how all of it works....**even then** we haven't accomplished "simulating" the human brain as you describe
we would have to simulate all the biological processes....we can't even conceive of a non-biological analog to the brain except in abstract b/c we have no idea how it really works
then it becomes a function of **time**
a human brain develops continuously in real time over **years**
all of this...it all makes your point about "universal computability" completely moot...
if you want to create an independent autonomous human brain....you can wait 500-1000 years at least, or you could just...you know....get someone pregnant
Thank you Dave Raggett