Jeff Atwood went and set fire to the Internet a couple of days ago:
The “everyone should learn to code” movement isn’t just wrong because it falsely equates coding with essential life skills like reading, writing, and math. I wish. It is wrong in so many other ways.
This point feels a little stretched to me. I’m not sure where Atwood is getting these “coding is as important as reading/writing/math” vibes from, but why isn’t there a place for coding in schools beyond the core curriculum? Put another way: why exclude Computer Science / programming from that seemingly arbitrary list of auxiliary subjects that we make our schoolchildren learn over their 12 years of pre-university education?
The general populace (and its political leadership) could probably benefit most of all from a basic understanding of how computers, and the Internet, work. Being able to get around on the Internet is becoming a basic life skill, and we should be worried about fixing that first and most of all, before we start jumping all the way into code.
This part makes perfect sense. However, what he proposes here doesn’t have to be at the exclusion of teaching more people programming, yes?
Here’s a response, by Zed Shaw of Learn Code The Hard Way:
I wonder if he’s going to tell his kids they shouldn’t learn to code when they want to become just like Daddy? Probably not. He’ll gleefully run over and show them how to code and tell them it’s so much fun and that they should all do it and it’s the best thing ever! But, of course, your kids shouldn’t learn to code, and you shouldn’t, and your friends shouldn’t, just Jeff and his kids should.
I do think Shaw’s taking a bit far when he cites resentment as Atwood’s motivation for telling people not to learn how to code, but then, running a (very good, supposedly) programming education website could do that to your perspective. Both articles make good points, but I’d recommend Shaw’s to anyone feeling a bit deflated after reading Atwood’s.
An interesting argument: that calculating devices are now ubiquitous, and math should focus on computational problem-solving instead of drilling and memorisation. An example the author cites:
Computer languages allow students to transform ideas into action. Here is a simple rule that a math teacher might describe to her students:
If the number is greater than 9, carry the 10′s place; otherwise add the number to the bottom row.
The solution for this can be expressed as a simple if/else statement:
if (number > 9)
carry += number / 10;
else
bottom += number;
There are, as expected, plenty of opposing views in the comments, but it’s good food for thought. Also noteworthy: the comments aren’t completely stupid. Not-completely-stupid comments! On the Internet! WHAT IS THIS WORLD WE’RE LIVING IN
From the blog behind the “Invent Your Own Computer Games with Python” book:
“[For] the casually interested or schoolchildren with several activities competing for their attention, programming concepts like variables and loops and data types aren’t interesting in themselves. They don’t want to learn how to program just for the sake of programming. They don’t want to learn about algorithm complexity or implicit casting. They want to make Super Mario or Twitter or Angry Birds.”
We’ve actually found that our students are usually quite happy to spend lots of time making silly console-output programs, like printing a pyramid of asterisks. However, the intro programming courses we’ve conducted have been for a fairly self-selected bunch.
The book is available online for free, and it certainly looks like a great instructional resource.
January 27, 2012 |
Tags: Programming, Teaching | ♦
On his blog, Kent from Anideo has started writing about transitioning from PHP/Rails programming to developing iOS apps. He writes very candidly and it’s a great read, both for web developers looking to dive into iOS, and for anyone teaching introductory programming.
I say the latter because Kent’s perspectives on compiled languages really surprised me (and, perhaps, other programmers who didn’t start with web programming). In this post, he tells us how, prior to doing iOS development, he had no idea what header and implementation files were. Worse, he couldn’t find much helpful information on the web, even on Stack Overflow.
Perhaps it’s a generational thing — many computer science majors before Kent probably cut their teeth entirely on compiled languages, and transitioning to web programming should have come pretty naturally to these folks. Going the other way, however, could seem very strange, even to a seasoned web programmer like Kent. (This could also explain the paucity of good information on SO, assuming that most contributors there are old and cranky enough to be all “WTF? You don’t know what .h files are?”.)
This trend doesn’t look like it’s going away, what with Codecademy, CS101-class and John Resig at Khan Academy all pushing JavaScript as an introductory language. I can’t really tell what Udacity is teaching first, but their CS101 topic, “Building A Search Engine”, seems to hint it’s probably not C (unless they’re really asking students to build Google from scratch, in which case sign up now!).
What do these developments mean? Probably not much to the field — “native” programming isn’t going away, and many more like Kent will figure their way into it — but for programming education, teachers may need to adjust quite a few assumptions about “what students already know” and “what to teach first”. There could also be a market for web-to-compiled textbooks. Oooh. (Watch as I proceed to fire up iBooks Author, fully aware that I’ll close an empty document in a few days.)
A follow-up piece to the previous link, which argues for digital literacy over coding skills:
Digital literacy means the the skills and confidence to take an active role in engaging in networks, and in shaping and creating opportunities – social, political, cultural, civic, and economic, and we shouldn’t be collapsing these broader rights into the relatively narrow concerns of computing science as a curriculum area.
Article via Fraser Speirs. Mildly surprising, to me at least, is his strong support for the argument raised in the link article, given that he’s a programmer and Computer Science teacher. This piece of his on “technology for subjects not traditionally well-served by technology” may serve to explain why, but I’m still trying to digest all of this.
From September, England’s schools will offer computer science classes instead of ICT (a.k.a. IT ‘skills’ such as PowerPoint and Excel):
The current programme of information and communications technology (ICT) study in England’s schools will be scrapped from September, the education secretary will announce later.
The subject will be replaced by compulsory lessons in more rigorous computer science and programming.
Not sure how they’ll start this up so quickly, given this glaring problem:
“There are, of course, significant challenges to overcome, specifically with the immediate shortage of computer science teachers.”
See also this Guardian article: “Out of 28,000 teachers who qualified in 2010, just three individuals had a computer-related degree.” Similarly the case here, although the return of A-level Computing should imply that NIE will be doing something about training CS teachers.
I’m still on the fence about whether CS absolutely needs to be taught at a pre-tertiary level. There was some interesting discussion on this recently between a couple of Mac developers — see this blog post by Guy English on “Scripting is the New Literacy”, a response to this piece by Daniel Jalkut encouraging everyone to “Learn to Code”.
(News via Matt Johnston.)
In-browser runtimes for Ruby, Python and JavaScript, by the same folks who are bringing us browser-based programming courses.
Looks perfect for intro programming, albeit only on the console. Looking forward to see how it deals with exercises that are more graphical, and those which make use of external libraries.
Rory Cellan-Jones of the BBC argues that Computer Science education sorely needs improvement in the UK, in order to boost the country’s waning video game industry. (That’s where Tomb Raider, Fable and Grand Theft Auto originated.)
An interesting point:
Somehow the classroom got hijacked by ICT. And that is learning about Powerpoint, Word, Excel – useful but boring after more than a week of learning it.
There isn’t a direct Singaporean equivalent of the UK ICT curriculum, but we do have the MOE IT Masterplan for ICT in Education, with the BY(i)TES score (3.0!) as a metric. Our requirements look a little broader than the UK’s, and cover educational technology usage in the classroom as well as “ICT leadership” (whatever that means). However, none of this says anything about delivering any “actual” Computer Science education in the classroom, which feels like a pity.
I’m still wondering what the US is doing differently that’s resulted in a resurgence in CS education — has all this been driven entirely by the very public successes of Facebook and other Silicon Valley companies?