Posts Tagged ‘education’

Teaching Kids to Code

Wednesday, April 13th, 2011

A couple of chats recently - at North Staffordshire GeekUp and elsewhere - have turned to programmer education. My particular input to the conversation, reflected the same concerns I express in discussion over the male:female imbalance in Free Software projects, namely we need to enthuse people about IT early on.

In short, people are being turned off (or at least not turned on to) IT at an early age. Programming, and everything web, too, is creative. It should appeal in some way to nearly everyone.

Let’s get some real and fun IT education into Primary schools - don’t wait until it’s too late. I’d love to see playground games where kids take the part of bits moving through logic gates; 10 year-olds should be flowcharting how to program a robot to make a cup of tea; and kids - all kids - should learn how to program. It’s a skill that teaches valuable logical thinking.

Where to start on the programming? Naturally, every time a group of geeks discuss this there’s a mini language war, but choice of language makes a difference. Simply, don’t use a language that overwhelms: C is simple, but involves learning too much about computing for a 12 year old to dive in and start thinking about how to program; Java is just a mess, and too big.

I’d be fine with Ruby or Python, and perhaps a Lisp dialect like Clojure could be used - but now I’m reviewing Eloquent JavaScript, by Marijn Haverbeke [Kindle edition], & I think it could be adapted.

The big advantage with JavaScript is that every computer contains a runtime for it - and one with which most kids are familiar - the Web Browser.

The recent GeekUp thread on programming prompted me to try Fizz-Buzz in JS, and there’s little cruft in the language to stop you getting straight down to it:

<html>
<head><title>Fizz-buzz</title></head>
<body><script type="text/javascript">

var count = 1;
while (count <= 100) {
  if (count % 3 + count % 5 == 0){
    document.write("fizz-buzz");
  }
  else if (count % 3 == 0){
    document.write("fizz");
  }
  else if (count % 5 == 0){
    document.write("buzz");
  }
  else{
    document.write(count);
  }
  count += 1;
  document.write(" &nbsp;&nbsp; ");
}

</script></body></html>

So what do people think? Anyone interested in helping to write a course for 8 to 13 year olds to learn programming? Using JavaScript? Want to do it in another language? What should we teach and what should we miss out? Let me know in the comments…

JavaScript is available everywhere that the Web is.

JavaScript is available everywhere that the Web is.

EDIT

Please join the conversation at http://teachyourkidstocode.org/wiki/ as we try and get something going - all ideas welcome :-)

Link to the Social Web:
  • E-mail this story to a friend!
  • TwitThis
  • Facebook
  • del.icio.us
  • Google
  • LinkedIn
  • Identi.ca
  • Reddit
  • Digg
  • Slashdot
  • StumbleUpon
  • Technorati
  • Yahoo! Buzz
  • Mixx
  • Netvibes

ISFD & schools info

Thursday, September 9th, 2010

It’s been a while since we’ve done any work with schools - something I hope to change in the next year, but it meant that when I was asked to write up case studies and apps for FOSS in education, to contribute to International Software Freedom Day leaflets, I had to go back a bit.

I’ve been involved in a number of efforts to get Free Software into UK schools (and often written on the subject), as well as working with schools to get IT into the community, so it’s ironic that things seem so quiet just as the biggest opposition to FOSS has vanished.

Here, then, is the text on:

I’ll add more to the page as events dictate (but bear in mind that things I meant to post here a year ago are still unposted - if you think there are too many blog posts on the Internet, just think how dwarfed they are by the number of unposted items, particularly since we all started diverting our efforts to micro-blogging).

A memory game from GCompris, by Bruno Coudoin (screenshot under GNU/FDL, from http://gcompris.net/ )

A memory game from GCompris, by Bruno Coudoin (screenshot under GNU/FDL)

Link to the Social Web:
  • E-mail this story to a friend!
  • TwitThis
  • Facebook
  • del.icio.us
  • Google
  • LinkedIn
  • Identi.ca
  • Reddit
  • Digg
  • Slashdot
  • StumbleUpon
  • Technorati
  • Yahoo! Buzz
  • Mixx
  • Netvibes

Computers for Free!

Thursday, May 27th, 2010

foee_portrait_colorI spent the early part of this week helping Birmingham Friends of the Earth upgrade their LTSP system; one installed by my former colleague, the late Richard Rothwell. There’s always space for a hiccough or two across a major upgrade, but as ever the excellent community-contributed documentation on the Ubuntu fora provided answers to every puzzle.

The advantage with LTSP is that this is only worked through once, on one PC, to upgrade a whole office network. For an environmental organisation like Birmingham FoE, however, there are more compelling reasons for choosing the technology.

What is LTSP?

Linux Terminal Server Project may sound like jargon, but what it means is a return to the computer mainframe days when one computer did all the work for thousands of connected dumb terminals (little more than teletypewriters) at the user end.

An LTSP installation - many desktops, one new computer - CC-by-SA-2.0 image from http://www.flickr.com/photos/iandexter/

An LTSP installation - many desktops, one new computer

In this case the mainframe is no clanking, room-sized monstrosity, but a Quad-core Xeon with a few extra GB of RAM, and the terminals are older PCs discarded as useless, and once destined for landfill.

In this country we throw out 3 million PCs every year. The majority of which could be used in homes, offices and community centres, given the apropriate GNU/Linux install - but even the slowest and lowliest can live again with LTSP.As old computers are free, all you need is space: that spare room in the community centre can be an income-producing training room full of PCs.

Take a 12 year-old PC, remove the hard disks & fans, and plug into an LTSP network. The PC network boots from the server, finding a Linux kernel to run, then displaying apps which are running remotely and speedily on the server. Ancient PCs with only 64MB of memory sit on desks running OpenOffice.org, Mozilla FireFox & dozens of other memory-heavy programs.

Each desktop PC is drawing half the power it would with its own hard disk and the heavier load of local apps - alternatively special thin-client terminals can be used, drawing even less power: silent and cool-running. Each PC can be simply replaced with another without fuss, as all of the apps and data are on the server.

There’s now just one computer to back up. One to upgrade. Any user can sit at any desk and have all of her e-mails and docs there - ideal for busy organisations with many volunteers, or in education.

A footnote

Many times LTSP enabled some schools (such as Skegness Grammar School in the UK, and the Spanish region of Extremadura) to massively expand their IT provision, while saving money. In the case of Extremadura, this meant one PC per 2 pupils in every classroom, and 2 weeks for 2 people to update 80,000 desktops!

After a decade of opposing attempts to introduce Free Software systems like this to UK schools, the quango BECTA met with its demise this week. We now have the chance to get more IT, more freedom, and better learning opportunities into school for less money & lower power consumption. Perhaps it’s lucky that the money ran out before the education budget got committed to “An iPad for every child”?

Link to the Social Web:
  • E-mail this story to a friend!
  • TwitThis
  • Facebook
  • del.icio.us
  • Google
  • LinkedIn
  • Identi.ca
  • Reddit
  • Digg
  • Slashdot
  • StumbleUpon
  • Technorati
  • Yahoo! Buzz
  • Mixx
  • Netvibes