Archive for the 'General' Category

Legacy code is for Learning

Just attended the keynote at RailsConf Europe to hear David Heinemeier Hansson talking about Legacy code - code that you or someone else wrote a while back that isn’t, well, isn’t quite up to the standards you’d now expect to see - and how to avoid frustration working with legacy code.

It doesn’t sound like a particular exciting topic, and in truth, it’s not, but one excellent point to come out of it is the benefit of refactoring and improving old crufty code, rather than succumbing to the temptation to re-write it from scratch.

From a learning point-of-view, this was really interesting. I’ve often looked at a few of the earlier Django apps that I created a few years ago now and thought how I’d like to re-write them to apply all the things I’ve learned in the past few years, not thinking about the fact that it’s not only more sustainable, but also more beneficial to refactor the code bit-by-bit instead. I think it simply comes down to the fact that refactoring encourages continuous learning and improvement, rather than the dubious idea of “I’ll get it perfect next time round” (which will never happen). Of course, there are other factors too, for example, refactoring causes you to constantly think about loose coupling of your code, better encapsulation and stresses the importance of thorough test coverage, etc.

And I think it’s a principle that translates into other spheres of learning too - how often do you hear people expressing something like “I’ll get it right next time round” with respect to new relationships or company ventures rather than working to improve the current situation (where possible).

Speaking of Rails: I’ve been having a great time using the Rails framework over the past six months while developing with the Twinity.com team, but having come from a Python/Django development background there are definitely some things that I miss when I switch between the two (on both sides). I’m hoping to find the time soon to post some “Django & Rails: Can Django/Rails do X” posts.

Flashcards for Web Design

One of the tools I’ve been toying with while thinking about improving our Web Design course is FlashCardExchange. Sure, flashcards don’t necessarily provide deep processing of what we learn, but they can be pretty effective in helping us gauge our own understanding.

I’ve set up the card set Web Design Level 1 with 13 questions so far, and I’d be keen to get some feedback and/or input. Just click on the Study option (or even the Memory game option) to use the flashcards.

The questions are meant to be at the right level to match Basic HTML and CSS or (Web Design Level 1), but I’d be interested to hear what you think, or any additional questions!
One downside to FlashCardExchange is that currently you can only export your questions if you have a premium account… and I don’t want to lose these questions if FlashCardExchange goes down. So instead I’ve put them into a google spreadsheet and copy-n-pasted them into FlashCardExchange from there. The Google Spreadsheet can be shared with anyone (just let me know if you want to edit the questions!).

Go on, give Web Design Level 1 a go!

Crash course in Learning Theory…

Kathy Sierra has posted yet another pearler… I always come away thinking “there’s 10 things I want to focus on this year! The post is “Crash course in Learning Theory“, and summerises a lot of stuff from the Creating Passionate Users blog, bringing it all together in one focused entry!

I haven’t finished reading it yet, but am more that half way through… and loving it. One thing that I do want to focus on this year is the concept of engaging learners using something similar to “levels” in computer games. Here’s what Kathy has to say:

Game developers know the importance of “The Next Level”, and learning experiences must do the same. Each iteration through the spiral should start with a meaningful, motivating goal, followed by the interaction/activity/reading that moves you toward that goal, followed by a meaningful payoff. Ideally, the “meaningful payoff” leads right into the next motivating goal. For example, in a game the payoff for completing a level might be “You Get A New Weapon”. But now that you have that new weapon, here’s the cool new thing you can do that you couldn’t do before. Learning doesn’t need to be any different. “Imagine you want to do X on your website…” is the goal that starts the topic, but when the topic is complete, the learning content can say, “Now that you have THAT new [superpower capability], wouldn’t it be cool if you could do Y?” And off they go into the next round of learning.

I can think of some learners who do this naturally, but I certainly could be more intentional about making it more exciting to learn a new cool tool!

The Smackdown learning model

Forget social constructivism - even connectivism - Kathy Sierra of Creating Passionate Users has posted The Smackdown Learning model:

“Whether you’re writing user instructions, teaching a class, writing a non-fiction book, or giving a conference presentation, consider including at least some aspect of the smackdown model. It’s one of the most engaging ways to cause people’s brains to both feel and think — the two elements you need for attention, understanding, retention, and recall.”

Competing with the Network

London 2005 Bus BombingAs Duncan Rawlingson observes from Canada:
“I couldn’t help but notice how different my media consumption has been surrounding the terrorist attacks in London from September 11th. When my girlfriend came and hammered on my door on the morning of September 11th I turned on CNN and just watched. When I heard about the bombings in London I looked it up on Flickr, Nowpublic, Wikipedia, Wikinews to mention a few.”

Our society’s media consumption habits are accelerating away from centralised commercial sources towards a distributed set of trusted networks… people are learning from the networks that they trust. Knowledge is being created through global collaboration efforts. In this environment, how can I as in individual facilitator of learning, develop and maintain up-to-date resources for learners of Web Design? The bottom line is that I can’t.

As part of my involvement in the AusTafe2005 conference, I’m keen to demonstrate how network learning is changing the way I learn and facilitate learning.

The Read/Write Web

Over the past few years the Web has begun a paradigm shift towards Web 2.0 - an Internet where everyone contributes. Anyone can create their own website for free and publish their own thoughts and contribute to the thoughts of others.

At first this is a scary thought… for example, I can read what random people are writing right at this moment about TAFE - a public institution that I want to promote - and I can’t stop them from writing for better or for worse.

Writing as a Learner

Yet as an educator, I can learn about the new online environment and provide constructive ways to use these online networks for learning. Recently I attended an excellent professional development activity in my institute, “Assessment with Confidence”, and wrote up my own reflections of the event afterwards. Not only did I benefit from the process of writing reflectively, but by publishing my thoughts of the day on the Internet I was able to learn from further contributions of other attendees and even the main speaker herself, Berwyn Clayton.

In our Web Design course we maintain a free web-log, Design Websites as a way of demonstrating and encouraging students to use build their own learning networks. Most students create their own blog early on in the course and use it for a variety of reasons, from reflecting on their learning through to contributing back to their own learning networks. We use a tool called a NewsReader to track all the students’ blogs without having to visit each site individually.

Global Collaboration…

wikipedia logo

With the read/write web, learners can also contribute to the work of others without needing much technical knowledge - building knowledge together in a world-wide collaboration effort! The most famous example of this is Wikipedia - the free encyclopedia that anyone can edit…

Sound dangerous? Consider this: twenty days ago on the 7th of July, there were reports of power surges on London’s underground. Within hours, the original Wikipedia article on the reported bombings was contributed. Twenty days later and nearly 5000 modifications by Wikipedians has developed the article as it is today (20th of July 2005, or view the current article). Is it trustworthy? Does it include links to verifiable information? These are questions that need to be evaluated for all sources of information, but the information itself is incredibly impressive - as are nearly all the mature articles on Wikipedia. Try looking up an article in an area of your own interest…

…meets Education

working laterally

But will this type of openess and collaboration reach the realm of Education? While browsing the Personalised Learning Project on DET’s Centre for Learning Innovation site, I came across a publication by David Hargreaves (UK) “Working laterally: how innovation networks make an education epidemic” (published by David Hargreaves in conjunction with the UK Department of Education and Skills). David argues that education will be transformed only when

teachers embrace the ‘hacker ethic’ - a passion for developing new practice and a readiness to share the results freely with colleagues through innovation networks.

David’s obviously not the only person who’s thinking along these lines - at the turn of the millennium MIT decided to “provide free, searchable, access to MIT’s course materials for educators, students, and self-learners around the world” through their OpenCourseWare program. More recently (January 2005) the South African School Curriculum was contributed to the WikiBooks project, so that “if [educators] come across a learning objective that they feel they can explain or give examples of how to deliver these (learning objectives) to students, they would hopefully write a article about it, and link to the learning objective in the Curriculum Statement.”

In a variety of ways, different learning institutions are trialling world-wide collaboration and sharing of resources - with a variety of results. Learners are developing networks of sources that they trust and contribute to. In the field of Web Design, my students can learn much more 1st-hand knowledge from the myriad of professional web developers who share their thoughts every day on their blogs.

How can I compete with Network Learning

…or do I need to compete? I could try to “write content” such as my own Top 10 Tips for Freelance Webdesigners, but it’s not going to be anywhere near as relevant and authorative as Andy Bud’s Top 10 Tips for Freelance Webdesigners that attracted nearly 50 contributions from other professional web developers within his network (or Interview Questions for Web Developers, or Top 10 Tips for Web Content)

Instead I’ve started asking myself: how can I join the learning and contribute myself? I see part of my role to be linking students into the learning networks that are already there and modeling how to learn from them - but this is only possible if I’m learning from my networks myself. Currently we’re modeling this learning through our DesignWebsites blog as well as trialling a new WebDesign collaboration project where students, facilitators and professionals can improve and update the resources themselves.

Network Learning is changing the way students learn and therefore the way I facilitate learning. The Read/Write web provides a platform that allows learners to interact with information as they reflect, write and contribute to the learning of others within their networks. Instead of creating ‘content’, I now see part of my role to be introducing students to networks of learners and professionals where they can become involved in learning themselves… The great thing is that fulfilling this role has provided me the opportunity to get in there first and form my own learning networks!