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?
Codecademy teaches JavaScript programming through the browser: follow instructions, type in code, move on to the next step. This is similar to the (slightly more amusing) Rails for Zombies.
Browser-based code classes look promising for classroom teachers: there’s no need to install compilers or even text editors, making this environment much easier to set up in a lab. Students can also continue their work easily at home, with (some level of) instant feedback from the built-in help system.
The associated Hacker News post has some interesting suggestions, and the comments from non-programmers about the course’s difficulty can be quite enlightening to anyone trying to teach a programming course.
Ted Ziuba decides to reverse-troll all those business-types who post on Craigslist looking for programmers:-
I am a computer programmer looking for a top-notch idea person to help build the next great internet company. Being a good programmer, I don’t have many business ideas of my own. That’s where you come in.
Nobody would fall for this shit, right? Wrong, wrong, so tragically wrong.
Computer Science Prof Zack Kurmas writes about the challenge of teaching introductory programming:
I believe that expecting a student to learn to program well enough to study Computer Science in a single 15-week course is almost as absurd as expecting a student with no instrumental musical experience to be ready to join the university orchestra after 15 weeks. There are, of course, musical prodigies that can handle this challenge. Likewise, there are many “natural born programmers” who learn how to program with very little apparent effort.
Kurmas makes some very good points: that almost every other college programme has some basis of preparation in a standard high school curriculum, hence creating a much steeper learning curve for CS; that CS education could be better modelled after a foreign language learning framework; and finally, that he might just not be very well-suited to teaching intro CS, as a “natural-born” programmer.
This post was linked from Steve Losh’s response, which is also a good read for CS students and educators. Losh provides an interesting analogy about the difficulty of learning programming and dancing:
The first plateau of programming is the syntax and the first plateau of dancing is footwork. The bad part about this is that dancing when you only know footwork or programming when you only know syntax isn’t much fun. You can’t do all of the most interesting things that make these skills so rewarding.