American Schools Teaching Kids To Code All Wrong (qz.com)
theodp writes: Over at Quartz, Globaloria CEO Idit Harel argues that American schools are teaching our kids how to code all wrong. She writes, "The light and fluffy version of computer science -- which is proliferating as a superficial response to the increased need for coders in the workplace -- is a phenomenon I refer to as 'pop computing.' While calling all policy makers and education leaders to consider 'computer science education for all' is a good thing, the coding culture promoted by Code.org and its library of movie-branded coding apps provide quick experiences of drag-and-drop code entertainment. This accessible attraction can be catchy, it may not lead to harder projects that deepen understanding." You mean the "first President to write a line of computer code" may not have progressed much beyond moving Disney Princess Elsa forward? Harel says there must be a distinction drawn between "coding tutorials" and learning "computer science." Building an app, for example, can't be done in a couple of hours, it "requires multi-dimensional learning contexts, pathways and projects." "Just as would-be musicians become proficient by listening, improvising and composing, and not just by playing other people's compositions, so would-be programmers become proficient by designing prototypes and models that work for solving real problems, doing critical thinking and analysis, and creative collaboration -- none of which can be accomplished in one hour of coding," she writes.
How about we leaving the teaching to the teachers and the armchair quarterbacks can go fuck themselves? I like that approach.
"...would-be programmers become proficient by designing prototypes and models that work for solving real problems, doing critical thinking and analysis, and creative collaboration -- none of which can be accomplished in one hour of coding..."
That's why the same approach she criticizes, if applied music, produces students that can play a paticular piece or pieces of "hard" music very well, but cannot meaningfully compose or even read music.
When it comes to coding, I prefer being introduced to the basics, then letting the student discover on their own why things work the way they do. I learned this way using Visual Basic.
I now have coded several applications in VB for people who had no idea Excel for example, could be run fully fledged business applications beyond simply adding up numbers.
Of course, the advantages of using a language that non-programmers can "pick up in a weekend" are mostly lost because you'll be working with programmers who learned to program in a weekend.
Exhibit A: Python. Exhibit B: PHP.
You want to teach coding? How about do it holistically - teach CS, and use a language like Pascal and/or Basic to teach the CS. For teens, perhaps teach from SICP.
I'm a minority race. Save your vitriol for white people.
They want cheap, easily replaced and just barely adequate coders.
Of course one computer science class is not sufficient to turn students into programmers. Their history class is also not going to make them into historians. After all, there is nobody forcing kids to search archives for original documents! By professional standards, everything taught in school is fluffy and watered down. Harel noticed that only now, and she's outraged?
It's called "hour of code" and the idea is to get kids interested in computer coding. Kids already have exposure to music, they can bang a drum, squawk a plastic recorder from the dollar store. They have exposure to sports, they can throw a ball around easily. They don't have exposure to coding in the same way. So give them an hour. It's not a PhD, but have you heard the noise those plastic instruments make?
Learning multiplication tables doesn't teach kids how to solve the REAL problems they'll face in multivariable calculus. Kids don't learn REAL chemistry by following lab exercises in their science books.
Kids don't need to learn how to make apps in third grade any more than they need how to build graphene. But I would like to see them learning things such as conditional execution, recursion, and abstraction of problems. Unless you've programmed in your spare time, when you get to college, you are going into computer science completely blind. Having exposure to these concepts in a structured way at an early age allows you to make a better assessment of if that career will be good for you since you'll have said "I really enjoyed that class where I programmed Elsa to walk in a spiral using a for loop with an increasing counter, maybe there's something real I can do with that".
Maybe they won't be successful! That's OK! I wouldn't be successful in real life at all the things I did well in elementary school. The important thing is giving them a chance to learn skills that might be useful and determine what it is they enjoy at an intrinsic level in order to encourage them to study it in their spare time, in college, and in their careers.
Also, bullshit on that "musicians don't learn by playing other people's music". Yes they do.
Why is it that these tight corporate tie-ins are permitted for education? I certainly would hope that the schools wouldn't allow "Luke Skywalker and Belle teach American History", so why is the equivalent permitted for CS? Is it the fact that this is a "new" educational subject, where they're seizing the uncharted void of curriculum to get us warmed up to the idea?
If your theory is different from practice, then your theory is wrong.
Most of these teachers are probably not even qualified to teach programming and you end up getting this hard reliance on a textbook.
That's the kind of teacher that made it possible for me to learn how to perform a DDOS. It was highly motivating to see her wonder why her computer had severe network problems during class, while nobody else seemed to be affected. And when they upgraded her computer to a (omg) multimedia machine and I figured out how to eject her cdrom remotely, I was hooked. And those were dos and Netware years, mind you, none of this fancy linux thing.
I don't think I'd have become interested in computers if instead of her my teacher had been an elegant coder who really jnew the importance of design patterns and DRY and was talking about multifaceted this and polymorphism that.
So what I'm saying is, keep this kind of thing going on and let the horse figure out by himself if he wants to drink. If coding becomes a dull school subject it will attract the wrong crowd, and god knows we don't need any more dullards in this industry.
lucm, indeed.
I don't think there's really a wrong way to show kids how to code. The only wrong way would be not to show anything. (Well, it might be a bit wrong to over-complicate things, since we don't want to make them uninterested or scare them away.)
:) I was already interested enough to care about it :)
:)
I know you're mostly not interested in some john doe's life story, nevertheless, I'll give you my example, since I also was taught coding before knowing anything about CS or higher level math.
The first ever line of code I wrote was about 25 years ago in 6th grade. There was a computer club or something at our school, after classes in the afternoon, where we - a group of ~6 - were shown/taught coding in some sort of Basic on some really junk machines. I started learning CS when I started high school (in a math+CS-specialized class - meaning we had extra classes of math, phys, CS, and extra coding labs) and I never felt it a problem that I only started to know things deeper at that time. On the contrary, when we started the more "boring" part
I know some people who started this way and turned out quite OK
Point is, start early, start at a level that makes kids interested, and continue to teach them deeper stuff according to their age, gathered knowledge, and of course, interest (if there's any, not everyone has to be a CS+coder guru).
However, after a while CS needs to kreep in, since even if most companies need "normal" coders more, my unsurprising experience is that more knowledge really produces better results.
I am putting myself to the fullest possible use, which is all I can think that any conscious entity can ever hope to do.
running else into walls is really fun and you can get kids to spend hours learning stuff with a pay off like that. It's about setting the hook. Later on programming becomes fun for other reasons like the feeling of a flow state or the accomplishment of a product or the edorphin release of grocking a new algorithm that does something you thought was impossible. But you can't get to those in one step. We let kids read captain underpants before we expect them to find reading Arthur C Clark any fun. It's about progression and self motivation at an appropriate level. Not all kids will be coders but letting the ones that are find out they are is fine.
Some drink at the fountain of knowledge. Others just gargle.
There ARE musicians that are considered proficient who in fact did nothing but learn other people's music. Pavarotti did nothing but learn other people's music and in fact did it by ear because apparently he never learned to ear music (at least not in the beginning of his career). The great pianist Glen Gould never really became proficient in composition (he had a SINGLE work, which wasn't really a great accomplishment shortly before he died). Now are there rounded musicians, certainly. Leonard Bernstein would be a great example. Point is, the analogy given to us is flawed. Also, in programming, although we have many generically labelled "Developers" there are low level coders (generally juniors starting out who just do simple assigned tasks), UI Designers, Software Architects, Database Modellers, Data Architects, DBA's, Network Administrators, and many in between. Most start-ups have general "Developers" who are basically expected to be "Jack-of-all-trades" with the experience and rounded exposure to handle "whatever is needed at the time", but few people with less than 5 years of experience can handle that well so generally these are intermediate-senior level experienced people. While I agree to do software (or music) professionals SHOULD have a wide rounded set of skills to see the big picture and accomplish more, not every successful IT person is well rounded and these will be limited to small scope roles (although the real world doesn't always meet this idea). So I wouldn't say kids in school taught the bare basics of coding aren't taught to code "wrong" as much as in a way that will limit their advancement.
"Imagination is more important than knowledge" - Einstein
We are doing a disservice to kids by assuming that they can't grasp Differential Equations, Calculus, and Linear and Nonlinear Optimization. By limiting them, we undermine their capabilities and stifle their creative and inventive potential.
Knowledge = Power
P= W/t
t=Money
Money = Work/Knowledge so the less you know the more you make
It's about progression and self motivation at an appropriate level.
True but it must also be educational at an appropriate level of rigour. The problem with a lot of school education today is that making it fun becomes the primary goal and maintaining educational standards comes in second. This leads to the erosion of educational standards very rapidly - just look at the appalling level of maths education in schools in the UK, Canada and the US today. The correct order of priority is to determine what needs to be taught and after that determine how to teach it in the most engaging way possible: this last part is where the teachers are the experts. If you can't come up with an engaging way to teach it then you just do the best you can.