Thought for the Dazed

I've had to give up that Distance Learning course as I was having trouble seeing the teacher.

Flickr
www.flickr.com
RobMiles' items Go to RobMiles' photostream
Twitter
C# Yellow Book

Search entire site
Friday
Jan132012

Lumia 800 Going Red

Red Nokia

Got a spiffy red case for my Lumia 800 today. I like the way that it really looks part of the phone, even to the way that the buttons show through holds in the case itself. I’ve got a blue one on order so that I can change the colour to reflect my mood. As long as I only have three moods – black, red and blue.

Thursday
Jan122012

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.
Wednesday
Jan112012

Virtual Bug Splatting with Kinect

A Man and his Mallet

This is me “holding” my virtual mallet. I’m writing a chapter of the Kinect Book about Augmented Reality. All I need to add now is some bugs to splat…

Tuesday
Jan102012

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.

Monday
Jan092012

Kinect Pop Art

Kinect Pop Art

This is the output from my XNA “Kinect Pop Art” program. I’ve had it running up to 100 frames each way and it just keeps going….