Making Kids Creative with Computers

Hornsea Lights

This seems to be the year that the education system woke up to the fact that getting kids to make things with computers is a good idea. Excellent. I’m sure it was my blog post yesterday that tipped the balance….

Anyhoo, if you’ve got kids and you want to get them into programming here are my tips for tools that you can use. Note that these are just the ones that I’ve heard of and used, there are lots of others. If you have ones that you want me to mention, let me know and I’ll add them.

Making Computers Do What You Tell Them

These systems get kids used to the idea of logic and control. They have strong gaming context, but that is not a bad thing because it is engaging and gets kids thinking in the right ways.

Little Big Planet – making games goes mainstream. A great way to play games with your kids, create stuff and get things out there. Lots of scope for making things and showing off.

Wairo Ware DIY – make your own mini-games on Nintendo DS. Great fun.

Kodu – make games that run on your Xbox 360. All the programming is done using the gamepad and it is very easy to get interesting game behaviours.

Scratch – wonderful, free platform for the PC and Mac that lets students build fun games using their own assets.

Alice – great little scripting language.

Fiddling with Hardware

There is nothing quite like making hardware jump around and lights go on from software control. Kids love this.

Lego Mindstorms – a bit pricey perhaps, but no more than a few computer games. And you get Lego quality components and a really nice development environment that lets you create some very complex behaviours. Can also be used as a stepping stone into real robotics via things like Microsoft Robotics Developer Studio

Arduino – a good way to get your hands dirty of you want to make things out of tiny components. Lots of add-ons and an easy programming environment to get to grips with. Great if you want to learn some electronics along with your programming.

Gadgeteer – just coming onto the market. If you have folks who can write simple programs (Java or C#) and want to give them an easy way onto proper hardware then this is for you.

Writing Proper Programs

This is were we get more serious. These are tools that take you into the world of proper program development. They are not to be taken lightly, but they do let you make things that you probably can sell.

Small Basic – a version of basic that is free, very easy to understand and works a treat.

XNA – a very easy to use game development environment which takes C# skills and lets you write proper games using them.  Start at the create hub and find a wealth of resources for learning and making games and programs.

A Word of Warning

Learning to use computers creatively is hard work and involves lots of practice. Just like learning to play a guitar is hard work and involves lots of practice. I’d hate folks to think that because these tools make it easy to get started (and they do) that making things that are properly impressive and useful is easy. It isn’t.

The ones that are best at writing software are the ones that are prepared to put the time in fiddling with their programs, persisting with them when they don’t work and polishing them to a high gloss when they do.

Be prepared for the moment when your kids get into computers and they find that actually they have to work at it. Good advice in this situation:

  • Too many ideas can kill you. Does your game need helicopters and evil rabbits? And laser guns? And an equipment shop? Kids latch on very quickly to the idea that with a computer program you can do anything. Unfortunately they often then try to make a program that does everything. Then they find they can’t and get disillusioned with the whole business. Suggest a step by step approach, and throwing things away if you don’t really need them just yet. After all, if the player never knows you meant to put evil rabbits into the game they will never miss them.
  • Make your steps as small as possible. Get something small working and build on it. Get the ball to bounce, then add the paddles, then add the targets, then add the boss level and so on.
  • Walk away for a while if you get stuck. Don’t spend more than an hour on any problem. If you haven’t solved it in that time, do something else for a while and go back.
  • Other people’s code is dangerous. It is very tempting to just search for a program routine to do what you want. But this often ends in tears. You are using something from someone you have never met, which might not do exactly what you want, and might not work. If there is one phrase that worries me when someone describes a problem they are having with their program it is “I found some code on the internet…”. If you make the effort to write the code yourself then you have a much better chance of understanding what went wrong. Having said that, don’t be afraid to look at the work of others and get ideas from it. In that context I recommend  CodeProject and StackOverflow – but remember that these are for proper programmers.
  • Remember that this is supposed to be fun. If you are doing something that seems to be a bit of a grind, find a way of making life easier for yourself. Simplify the problem or use your computer skills to make a tool that will help with the work.

Computer Science is Creative. Fact.

Hornsea Wide Beach

The Guardian has just produced an article with the rather depressing title “Britain's computer science courses failing to give workers digital skills”. You can read it here. The gist of the text is that ‘poor quality training’ and ‘sausage factory’ courses are not providing the skilled and useful people that industry needs.

Oh dear. I always feel a bit nervous when I read these things. I start to wonder if what we do at Hull gives our students a good experience and teaches them skills that make our graduates properly useful. I cheer up a bit when I consider that we actually do a pretty good job for our students with things like Three Thing Game and Evil Squash to get their teeth into and a taught Masters that puts them out into industry. Plus lots of other things I haven’t got space to mention here. And then I remember how our students actually end up doing quite well in industry.

However, I also wonder a little bit about the place of Computer Science in the world.  Some time back The Guardian (same paper) did a big feature called “Top Artists reveal how to find Creative Inspiration”. I found this really annoying. Not because the folks that were there weren’t creative, or that their tips were silly. No, the reason this made me cross was the unspoken assumption that only arty types can be creative. I reckon that Computer Science is the most creative thing you can do. A writer can produce a book about an idea. A composer can create a song about it. A playwright can write a play about it. But a Computer Scientist can bring the idea to life. Which would you rather have, a song about Facebook or Facebook?

Computer Science is the most creative thing you can do. One of the few things we know for certain about the future is that it will be built using digital technology. Everything around us is being converted into patterns of bits and connected to everything else. Of course there are some bad Computer Science courses out there and of course there is confusion about what the subject is actually about. But what it is really about is building the future. And you can’t get more creative than that.

A Slice of History

I was up in the loft again today and I happened across something of great historical interest. I found a Computer Science Departmental Prospectus from 1978, the year that I graduated. I’d kept it because, ahem, I’m in it.

Cover

This is the cover. Any idea which language this is?

Cool Dudes

..and this is the money shot. I think I’ve probably still got those shoes somewhere. And that hairstyle….

The computer in the corner (yes, that is a computer) was a Prime machine and myself and the other chap (another prize for naming him) were allowed special access to it for our Final Year Projects. We then went onto create an unbeatable version of the “Fox and Hounds” board game that was so good that nobody wanted to play it.

Good times.

The Girl with the Dragon Tattoo

image

Went to see the Girl with the Dragon Tattoo today. I read the book some time back and enjoyed it. Then I read the sequel and enjoyed it somewhat less. Then I read the third book in the series and finished it because I’d paid for it and I wasn’t going to lose out on the deal.The first story is a good “Locked Room” mystery. The second, “The Girl Who Played with Fire” goes a bit nuts and the final volume “The Girl who Kicked over the Hornet’s Nest” told me a lot more about Swedish government history than I really wanted to know.

The film sticks very closely to the plot of the first book and is none the worse for it. Daniel Craig, with his Bond charisma turned down a couple of notches, is convincing as the journalist hero that no woman can resist. Rooney Mara is astonishing as the eponymous lady of the title. The book has some pretty gritty stuff in it, along with some raunchy bits as well. The film doesn’t flinch from these, although I did a bit.

If you enjoyed the book you will not feel short changed by the film. I’m not sure if I’ll watch the next two though.

1000 Downloads of TipLight

image

Some time last year I had a silly idea for a program where you could control the colour of your phone screen by just tipping it around. I spent around an hour making the code and adding some averaging so that the colour didn’t flicker too much when you moved the phone and then I forgot all about it.

Last year, just before Christmas I thought I’d get some more applications in Windows Phone Marketplace. (this has nothing to do with wanting to pick up some more points for the Windows Phone Rewards programme of course).

Anyhoo, just had my thousandth download of what is the silliest of all the programs that I’ve made. If you want a copy for your phone, you can get it here.

If you liked the program then you might like this one too (which is quite fun but could probably do with a bit of work on the difficultly levels )

image

The Red Nose game was great fun to write and you can get it for free here.

A Computer that talks to itself…

Union Building

I’m still working on the Kinect voice controlled human painting program. First thing I need is a shorter name…

Today I added a feature I thought would be really cool. Voice response is one thing, but I also wanted the computer to talk back when I issued a command. Adding voice output to a C# program is a doddle.

First you add the System.Speech library to the references in your solution.

Then you add the speech synthesis namespace:

using System.Speech.Synthesis;

Now you can make your program speak:

SpeechSynthesizer speaker;

void setupSpeechOutput()
{
    speaker = new SpeechSynthesizer();
    speaker.Speak("Ready to Go");
}

This is the setup method for my speech output. Whenever you want your program to say something, just call the Speak method on the variable speaker. If you are worried about slowing things down you can use an asynchronous call to speak in the background while your program runs on. Works very well. In fact too well.

I had the program repeating the commands aloud and it worked wonderfully. I would say “Red” to select the red colour and the program would say “Red” back. Then commands started repeating, with the computer saying “Red” time after time. Took me a minute to figure out what was happening. Turns out that the computer is really good at recognizing computer speech. It would hear itself say the confirmation message and echo it, and so on. I added a timeout so that it ignores things for a second after a command and all is well now.

Kinect Skeleton Drawing Fun

demo0

I drew these pictures myself. With myself. This is the first ever picture from my Kinect Drawing program. This lets you use your arm to draw on the screen by waving it around.. You can use voice commands to select the colour you want to draw with or you can have the random rainbow effect that you see above.

All this Kinect fun and games is in aid of a book that I’m writing, “Start Here! – Learn the Kinect API”. It should be in the shops later this year.

All Terrain Robot

Beer Stealing Robot

I also got this awesome “All Terrain Robot” kit for Christmas. Once you have spent a happy couple of hours building the individual components you can fit them together to make either a six tracked all terrain robot, a forklift truck or my favourite, the beer stealing ‘Gripper bot’ that you see above.

Actually, it can’t move a full can of beer – but it does look awesome. And I even got batteries included.

New Years Hornsea

Hornsea Beach

For some reason we always try to go and see the sea early in the New Year. This usually means a trip to Hornsea. Today the weather and the tide were very kind to us, and so we had a little walk down the beach and I took some snaps.

Hornsea Beach Pebbles

The weather was nice, but very chilly in the wind. We sought refuge in an amusement arcade.

Hornsea Penny Falls

They have these “Penny Falls” machines where you try and push pennies off the a ramp. This looks like it is good to drop, but I reckon those coins are super glued into position…

The Gunstringer for Xbox 360 Kinect

image

When the Kinect was released I was hoping that some games would come along that made use of the things it can do to create different types of game. The sports simulation games are nice enough, as are the dancing ones, but I’ve been waiting for completely new game types.

The Gunstringer is certainly new. You use your left hand to control a gunslinging marionette in his (its?) quest for vengeance against those who done him wrong.  The right hand is used for targeting and shooting. The whole thing is presented in the form of a puppet show with a live audience who cheer you on and boo the bad guys.

There are daft cut scenes, some great voice acting and the whole thing is powered by a 3D engine that seems to be called “Beard”. It is all delightfully silly and great fun. You can download a demo version and have a play with that, and once you have had a taste I reckon you’ll be forking out for the full game.

New Years Eve Games: Dobble, Spot it! and The Resistance

We spent New Years Eve playing some games we’d not tried before.

image

First up was Dobble. This is an awesome little pattern matching card game with very simple rules and amazingly raucous gameplay. Great fun with a whole bunch of mini-games. While looking up links for this blog post I’ve found that Dobble is no more, but the game is now being sold under the much more sensible name of Spot-It. Same game but much cheaper. If you want to keep a bunch of kids (or adults who are a bit like kids) busy – but not quiet – then take a look at this game.

image

The Resistance is much more cerebral. You are either a loyal resistance member or a traitor bent on sabotaging missions. As the game progresses it is up to the loyal members to identify the traitors and the traitors to sow confusion amongst the ranks and thwart everything. This is great fun too, especially if you get to play as a traitor.

PlayMusic for Windows Phone

image

I seem to be on a Windows Phone application roll at the moment. This one has just gone live in the Marketplace too. I had the idea for it when I was driving into work last Tuesday. I built the application in around an hour, spent 30 minutes or so making it pretty and building the icons and then submitted it into Windows Phone Marketplace. And now you can load it.

It doesn’t do much, but I find it useful. I built it as a workaround to get music playing when I’m driving along. I like to be able to start the music playing using voice commands and I’ve not found a way to do this with the phone. I can start programs running (including Zune) but I can’t start music playing. This may be something that I’ve missed, but I enjoyed writing the application anyway so it is not a loss as far as I am concerned.

I can get music playing by just using the voice command “Start PlayMusic”. When the application runs it just picks a random playlist (or album if there are no playlists on the phone) and plays it. If the music is already playing it does nothing. The program also displays a pithy message (those took longer to think up than writing the actual program code). If it solves a problem for you, then grab a copy.