Chris Douce and Roman Bednarik
Somehow I don't think this song, Let's sing about recursion, will feature highly on the iTunes download charts, but I have to commend the idea of using a multimodal approach to the teaching of a difficult subject.
This is quite a fun article: Old school programming techniques that you probably don't miss and I have to confess I was rather surprised to see that the first two entries featured as assignments within my undergraduate degree (writing of sorting algorithms and coding of graphical user interfaces). I do, however, have a sense that time spent learning the magic of binary sort was time well spent, along with the trials and tributions of using a DOS based graphics API that I have never seen or, nor heard of since.
On a similar note, I learnt about a blog post entitled: Should Fortran be taught to undergraduates?
My gut instinct is to say 'yes', since this is something that I had to go through when I was an undergraduate. I remember the delight in the eyes of the lecturers when they said, 'you will be asked to make changes to a 40KLOC Fortran project - we will hand you the specifications on two sides of A4 paper...' I found it to be a formative experience. All undergraduates should be presented with a similar (or equivalent) challenge: it builds moral fibre.
Jumping from the old, to the new, another blog post is entitled: Does parallel processing require new languages?
On the topic of new languages, I recently was directed to an article about a new programming language called R (Wikipedia). The article, published on the New York times website, is entitled: Data Analysts captivated by R's power
More information is available from the R Project website.
The article, What do you consider "readable" code? considers an oft repeated question. I personally found the discussions to be quite readable. Some language inspire debate regarding the issue of readability, and Perl is no exception.
Last year Computer World had a series of articles about different programming languages. The article that describes Perl is entitled Culture and community go hand-in-hand with Perl programming. A (quite old, circa 2007) connected link is the following YouTube video, which is entitled: Clay Shirky on Love, Internet style. It's ten minutes in length, and is a part of a conference keynote. It's very watchable (and very quotable). One that made me smile was, "we had a fight about which programming language to use. It's like 'hello' between techies".
Information and system security represent important issues that software developers and designers should pay close attention to. I recently discovered a List of the top 25 programming errors.
One way to reduce errors is to remove to functions which are implicated in causing or creating nasty effects. This approach is demonstrated in the article: Memcpy() banished in Redmond.
But how do we 'get into the zone' to battle against these errors? I have heard about football supporters having superstitions like the wearing of lucky pants, the same pants that were worn when the supported team won a big tournament. Do software developers have rituals or superstitions? Apparently, some of them may have, as an article entitled Programming magic: Rituals and habits of effective programmers.
But what if your 'error' wasn't really an error? What if you were a programmer who created some software that might have caused other kinds of problems. I really liked the slideshow (and the writing) in the article My Manhattan Project : How I helped build the bomb that blew up Wall Street.
Ideally, I would like my development environments to be easy to use. You develop a easy to use toolset, there is a likelyhood that there may be more developers inclined to use it, which I why I found the article Sony: PS3 is hard to develop for - on purpose.
Joh Hunt, a ppig regular and software development XP ethnographer has sent me an interesting blog post: 10 Papers Every Programmer Should Read (At Least Twice). My confessions is that althrough I recognise almost all of the writers, I have not read some of these papers (even once). It looks like I've got some catching up to do.
The draft version of this newsletter was written using an on-line document editing and collaboration tool which provided some of the functionality that can be found within popular word processing programs. For quite a while now, web based applications that make use of the 'cloud' has been a fashionable subject - but could there be a new generation of software development tools that could use functionality offered through a web browser?
The following article: Web-based IDEs to become mainstream? asks this question and tantalises us with the possibility of 'effortless collaboration', through the sharing of the configurations of different software development tools.
Computer science education is a perennial PPIG topic. I recently saw this article: Bjarne Stroustrup on Educating Software Developers. I encourage you to read the final section of this article which presents some advice to new (and not so new) programers. These, I feel, are wise words.
And finally... I should end with a link that is a combination of funny and inspiring: Apple I BASIC as a Mac OS X Scripting Language. If you do a bit of digging in this blog you will be able to find other gems, such as a scripting language inspired by Commodore 64 Basic, and a copy of the Apple Lisa Operating System Reference manual. It's amazing the things you learn about through Twitter!