Lecture Capture is coming to Hull

I went to a rather interesting meeting this afternoon. The university is setting up a pilot scheme to test out lecture capture in Semester 2. With a bit of luck they will be capturing some of my lectures, which will be interesting.  Later the plan is to roll this out across the years of study, depending on how popular it proves. 

The technology looks very impressive. We can either capture on our laptops or use an lecture capture device installed in the theaters. The idea is that within an hour or so of the lecture the material could be available to view via the web or offline. 

The system that we are testing comes from echo360. Should be fun. 

The Magic of Backups

IMG_6658_59_60.jpg

What do you do when you lose your files just before the work is due in? Well, in a perfect world you’d just go and get your backup. In an imperfect one (which is were we found one student today) you find that you don’t have a backup of the files that are needed.

The good (and frankly quite amazing) news is that the Computer Services folks are a lot more careful about backups than some students. Turns out that they back up the workstations and student folders every couple of hours or so. Which meant that the chap in question was able to go down to the helpdesk, tell them his username and they were able to restore the missing files. Just in time for the deadline.

I reckon it is probably best not to factor this facility into your working process. But it is jolly nice to know that it is there.

Black Marble 3D Printing Magic

DSC04303-Edit.jpg DSC04311-Edit.jpg

These are most of the two groups,carefully stitched into almost successful panoramas, and with Una the Ultimaker in the foreground, as it should be.

I love doing talks like this. The folks above are all Sixth Formers from schools around Black Marble, who have invited them in for some computer based inspiration. They had talks about cloud computing, encryption, built some systems using Gadgeteer and then had a session from David and myself where we talked about university life and showed off some 3D printing.

I’d taken along Una the Ultimaker and, despite me nearly breaking her during the first session, she behaved in an exemplary fashion, printing out the weather forecast in 3D and then, during lunch, a couple of tiny owls.

I reckon that 3D printing is going to change the future and have a huge impact on the way we do things. I made the point that when I was the same age as the audience a printer was someone you gave things to have them printed for you. Nowadays everyone has ready access to high quality colour printing on cheap inkjet devices.

We are moving towards a world where cheap 3D printing is going to mean that physical objects can be customised and built on demand. There will be no reason why the things around you shouldn’t be just the way you like them, and completely unique to you. I told the audience that learning a bit of 3D design skills would be a good idea, along with some programming smarts so that you can write code that will build designs for you, and let you create objects from any kind of data that you like, including of course the weather forecast.

Thanks to all the folks at Black Marble for setting up the event and to David for doing the serious stuff.

I’ve put the slide deck here.

Pythons Duly Wrestled

image

We had our last “Wrestling with Python” session today. Simon, Robert, Warren, Mike and myself have been helping some teachers from local schools get to grips with the Python programming language. You can find the notes and exercises from the course here.

The six sessions have flown by (particularly the one that took place while I was in Seattle…) We gave out completion certificates and talked about continuing into the future. Everyone seemed keen to come back, which is nice.

The Python programming language is definitely growing on me. Of course my heart belongs to C#, but I do quite like writing Python programs. The C# language is a bit like your mum, always concerned with your welfare, fussing a bit but making sure that everything is just right. Python on the other hand is a bit like your crazy auntie who doesn’t make a scene if you forget to comb your hair and suggests going of and things like parachute jumps. She’s great fun to be around, but if you are actually looking to do something properly you’ll want to work with mum.

Actually I don’t have particularly strong opinions about programming languages. My concept of the “best” language is very simple. The best language is the one that they will pay you the most cash to write programs in. I will quite happily write JavaScript if the money is right. And I might even reprogram my keyboard to produce cash till sounds when I type so that I can remind myself why I’m doing it…..

With programming languages it is often a matter of “horses for courses” and I reckon that a proper programmer should have a good working knowledge of at least two or three, and be prepared to learn a new one if the occasion demands it.

Python is a great tool for learning, it is possible to “play” with Python code in a way that is rather fetching, and it was fun introducing the teachers to the business of programming. With a bit of luck we’ll do some more in the future. If you are a local teacher who wants to get involved in the next tranche of sessions, let me know and I’ll put you on the list.

Hyperspace Cheese Battle

SmallGameBoardFixed

Ask any of our First Year students what is occupying their minds just right now and they will probably give you the response “Hyperspace Cheese Battle”. This is the assessed coursework that they are grappling with for our C# programming course. Above you can see the lovingly drawn board. This is actually version 3 of the layout, after sharp eyed students spotted some tiny flaws in previous incarnations. Ho hum.

The game is a bit like the Space Cheese Battle game that we wrote last year, but this year we are playing in Hyperspace, which means that the directions of movement are given on each square, rather than everyone following the same route around the board. There are special “cheese squares” and you can shoot at other players and cause their engines to explode.

And our students have to make the game work in C#. Most folks seem to be doing OK. If you are having problems I would give you the same advice I give everyone who is working on coursework.

  • Work on one part at a time, and don’t get deflected onto other bits until you’ve solved that part.
  • Seek help as soon as you have problems. Send me emails, drop round to my office, use the lab demonstrators, go to Peer Assisted Student Support (PASS) sessions.
  • And don’t worry.

Winning Prizes with Tags of Fun

design

I’ve decided to use the Tags of Fun at our 5:15 Friday lectures. Today I took along the latest incarnation, housed in an attractively designed black and white box that is just a bit too small to hold the batteries properly.

But it worked fine. Everyone who had hung on to their tags from the welcome party was able to sign in and win prizes, in this case plastic owls and some nougat from the fair. And most of the names were right too, which was nice.

I’m going to refine the design, week on week, to expand what the reader does, and maybe make a second one that will make signing up for prizes even easier.

Above you can see the Gadgeteer configuration of the device. The printer is plugged in when I need to make labels for tags, the Bluetooth lets the device talk to my Windows Phone. By Christmas it should be an amazing system. But that might be Christmas 2020……

Learning from My Mistakes

DSC02905.jpg

Today was the first foray into the labs with the new First Year group. A splendid bunch of folks. Last year I blogged about the sneaky thing we did with the sample program. It worked so well that we did it again this year. But of course there is always something more….

At the end of the lab we have a silly test, with one or two sensible questions. It’s there get everyone used to the test environment and it works quite well. One sensible question asks you to identify the problem that broke the program. It’s a multiple choice question with lots of stupid possibilities, along with the answer “The program used a multiply operator instead of divide". Actually the mistake is that it used a multiply operator instead of a plus. It was originally a genuine mistake. But I’ve left it in because it us actually quite useful.

Quite a few people spotted this mistake in the question and came and told us about it. One or two didn’t bother because they assumed the knew what we meant. Please don’t ever do this. If you find what looks like a mistake in something to do with the course, and you just assume you know what has happened you might be heading for trouble. Please, please, please let us know if you see anything that looks wrong in stuff that we give you.

To refer to the post on Wednesday, we do an awful lot of planning. Because it is crucial. But we also know that stuff happens that we don’t think of, which can break our careful plans. So we need to be told if something might not be right so that we can fix it if required.

Oh, and thanks to all the students who turned up and worked hard. Everyone I saw was chugging through the exercises very nicely. The real teaching starts next week. It’s going to be fun..

Yellow Book Translations

DSCF3436_7_8.jpg

Every now and then someone emails me and asks if it OK to translate my C# Yellow Book into their native language.

Of course it is.

I’ve added some notes about translation to the home page for my programming resources. Essentially you can translate into any language you like as long as you keep the colour of the cover yellow.

If you want to sell your translation that's fine too, but you are not allowed to charge more than the price of a translation of the novel "Pride and Prejudice" by Jane Austen in your language.

If you do manage to get all the way to the end of the book, let me know and I’ll link through from my pages to your translation.

How to Fail your Assessed Course Work

sunset 006.jpg

First a note. We don’t have many people that actually do fail their coursework (although, years ago I did manage it by using a variant of this technique involving punched cards). But over the years I’ve seen enough of these to be able to produce a comprehensive guide. This is the sequence that I have found works very well when it comes to failing a software development project. Just follow this fool proof set of instructions for guaranteed failure.

  • T-minus 8 weeks: Assignment distributed. Decide to ignore it for now. Put on desk.
  • T-minus 4 weeks: Happen to find assignment under pile of dirty socks. Take a quick look. Seems easy enough. Decide to do it later.
  • T-minus 2 weeks: Find the assignment again and experience a mild twinge of panic when you look at the submission date. But no time to do it because other coursework is due in now.
  • T-minus 1 week: Decide to complete entire program by performing herculean development effort over the coming weekend. Feel much better. Go to pub to celebrate.
  • T-minus 2 days: Fire up Visual Studio and write 300 lines of code in one sitting. Which won’t compile. And actually you’ve no idea what it does. Stay up until 2:00am trying different combinations. Ask a chum who has just come back from the pub to take a look. He suggests adding a bunch of curly brackets and semi-colons. Code now compiles and runs. But you still have no idea what it does. Fall asleep at desk and wake up after six hours with key shaped bumps in your cheek.
  • T-minus 1 day: Program now fails to compile again after you pasted in some code that you found on the internet that looked like it might do what you want. Decide to seek help. Post a plea for help in a question on Stack Overflow.
  • T-minus 12 hours: Check Stack Overflow for answers. “SuperDev99” thinks you should use recursion. “P-Guy” thinks you should really use Python. “Troll95” posts that all C# developers are ugly and stupid.
  • T-minus 6 hours: Having had no sleep for 20 hours you decide to re-write the entire system from scratch. It seems like the only way. You write another 300 lines of code. That won’t compile.
  • T-minus 1 hour: Program now compiles, but it is alternating between crashing instantly and causing the computer to lock up. Check Stack Overflow again. Find that someone has posted a complete solution to your problem. In Prolog.
  • T-minus 10 minutes: Submit program that compiles, runs and prints “Sorry about this” in large friendly letters on the screen. Oh well. There’s always the resits.

Now, of course, nobody actually does all of this. Although I’ve managed most of these tricks at one time or another. Please, please, if you get some coursework, frontload it. Have a crack at the code as soon as you receive the specification and then play with it in the run up to the due date. You don’t have to write all the code at once (in fact this is a bad plan) but you should keep noodling along with the system over the weeks leading up to the hand in. And seek help if you hit problems.

The internet is often very useful, but beware of using downloaded code. Often you end up trying to use some code you don’t understand to solve a problem you don’t understand and getting errors that, wait for it, you don’t understand. Much easier to take your problems down to the lab or to the person in charge of the coursework and get them to help. If you want to post questions, use the forum or departmental Facebook group. At least the folks there will have an inkling of what you are doing and why.

By the end of my university career I was getting reasonable marks for coursework, and this was mainly down to a “starting early” technique.

What use is a structure?

DSCF1594.jpg

It is exam season here in Hull. Later in the week we have our programming exam. And I’m getting quite a few questions through about C# and stuff. Today I got asked the question “What use is a struct?”. I’ve been spending a lot of time talking about classes and references and how clever they are, and someone wants to know why, if classes are so wonderful, some objects in a program are managed by value. The answer is simple enough. It is because sometimes you really want a value which you can just copy around easily.

Consider the Rectangle type in XNA. We can use this to represent the position and size of something on the screen. And this is a struct, not a class. Take a look at this code:

a = b;
a.X = 99;

If a and b are both Rectangle variables the effect would be to set a to the value in b and then move the X position of a to 99. This would not affect the position of b.

If the Rectangle type was a class then we would have two references, a and b, that both refer to the same object in memory, so moving a would affect b as well. If we want to place objects in lots of different positions on the screen, and we don’t want them to be linked in any way, then structures managed by value is the way to do it.

Note that things like Textures are managed by reference. This makes a lot of sense too. An image is a large thing, and it is often very useful to be able to share one image for a whole bunch of things. Think multiple sprites in a space shooter. They will have a Rectangle value to give them a unique position and then a reference to a texture that they all share, to give them an appearance.

The XNA framework is full of objects that are actually structures because they work better this way. For example Color, Point and the Vector objects are all structs so that we can manage them by value. In fact, now that you know how it works, you should be able to look at any XNA type and figure out whether it is a class or a struct, just based on how it is used.

The Proper Use of Exams

IMG_6422_3_4.jpg

I did a revision lecture today for the First Year. The exam is next week. Afterwards I got an email that I found both amusing and a bit irritating. The sender wanted to know what would be coming up in the exam this year “so that I won’t have to waste my time revising the other stuff”.

Oh well.

I think that person could use a slightly better perspective on why we are all here. I’m not teaching this stuff so you can get through the exams. I’m actually doing it because I want to pass on things which I think you should know if you want to do Computer Science. Another thing I find amusing/irritating (but also rather pleasing) is when we have students come back to Hull after they have graduated and say things like “You know, that stuff you taught is actually quite useful.”

Well, duh.

I use exams as a rather blunt instrument to make sure that folks learn the stuff that is really important about the subject. There is no secret about some of the topics that will be on the paper, since those things are there every year, and all you have to do is learn them. And by learning them I mean not being able to repeat the words, but actually achieve something using what you know. In fact, the way I see it, learning by applying the knowledge is actually much easier than just trying to bash in sequences of words that you can then trot out if you recognise the context of the question.

You could learn that “An interface is a set of methods that a class must implement in order that it is possible to create an instance of that class”. Or you could learn that you use an interface when you want to treat invoices, receipts, customers and any other objects in your solution as things that can be printed. The printing process only want to manipulate objects in terms of their ability to be printed, so you use an interface to describe the methods that give this ability and then make each object implement it.

Read the Specification. Please.

IMG_6292_3_4.jpg

I think that more software projects fail because of misunderstandings about the specification than for any other reason. The developer makes loads of assumptions about what the program needs to do and the customer can’t be bothered to keep an eye on what is being produced.

I was reminded of this when I was marking the first year coursework today. We set a tightly specified set of deliverables and then each student has 15 minutes to show what they have made. This is a lot of work. It takes five of us two and a half days to work through everyone. And then I have to spend at least two days going through the marked sheets and making sure that all the marks line up.

This year we set some quite complex deliverables and it was very pleasing to see that many students had risen to the challenge and produced some lovely stuff. But some of them had made really nice solutions to the wrong problem, because they had not read the specification in detail. They’d just read enough to convince themselves that they knew what was needed and then gone off and built it. And in many cases they needed to do more work to make their version than they would have needed to make the one that was required. Oh well.

Of course in a teaching situation this is not a huge problem. Folks lost a few marks and we moved on. And hopefully a lesson was learned, which is what it is all about.

One year I’m going to produce a huge, complex piece of coursework with a long and highly detailed description which has, right at the end, the phrase “Please ignore all the above. Just make me a program that prints “Hello World” in large friendly letters.”…

Class Design for Shops

IMG_6213_4_5.jpg

At the moment lots of our students are working on their first year coursework. This year they can make either a game, which I’ve called “Space Killers” or a management system for a record shop, which I’ve called “Vinyl Destination” (turns out that there actually is a shop with that name – which only goes to show that great minds think alike sometimes). By the way, a record is what very old people used to buy music on. They are pressed out of plastic, usually 7 or 12 inches in diameter, easy to scratch and becoming fashionable again, which is nice.

Anyhoo, one of the central design decisions that has to be made is just how to store information about the records that the shop has in stock. We have been discussing this in the lectures, and it is interesting to reflect how the business needs of the customer affect the organisation of their data. Lots of shops have things to sell, but the way that you would hold their stock information varies from one business to another. I’ve broken these down to three broad categories which I’ve called “Art Gallery”, “Car Showroom” and “Supermarket”.

Art Gallery: In an art gallery each item of stock is unique. Or at least it better had be. Turning up with a second copy of the “Mona Lisa” would probably raise one or two eyebrows. Every item in the gallery has properties such as the artist or artists that made it, the date, the description and the price, but this information would be held for each individual piece in stock. To store the data for this application we would design a class, perhaps called “StockItem”, and then create an instance of this class for each of the pieces that is held in stock.

Car Showroom: This situation is slightly different. The showroom will hold a large number of cars, but they will be of particular models. They will hold a large number of “Ford Fiestas”, but each of them will have different trim levels, colours, ages and prices. If we held the data about our cars in the same way as we hold the data in the art gallery we would store a lot of the same data multiple times. Every individual StockItem would hold its own copy of the name, the manufacturer and lots of other information common to all Ford Fiesta models. A better way to design the system might be to have a class, perhaps called “CarModel”, which holds all the information about the type of car (all the “Ford Fiesta” parts) and then have the “CarModel” class hold a list of all “StockItems”. The StockItem class would hold all the information about a particular car, including things like colour, mileage and price. The CarModel class could hold a list of the StockItems of that particular model. For example, if the garage had a red Ford Fiesta and a blue Ford Fiesta there would be a CarModel object for Ford Fiesta which holds a list containing two items, a StockItem for the red one and a StockItem for the blue one.

Supermarket: In the case of a supermarket which is selling cans of beans, all the cans of beans of a particular type are identical. In this case we don’t need to store information about any individual can, instead we just want to know how many we have in stock. So for the supermarket we just need an object that holds a description of the item and also contains a counter that tells the system how many of that item are in stock.

If you are building a system for a customer, it is worth considering which of the three arrangements makes most sense. In terms of Vinyl Destination I reckon that because the you can get records of different quality it is more like a garage or an art gallery. The shop may have several copies of “Abbey Road” by The Beatles, but some will be in pristine condition (and therefore worth more) than others.

Gaming in Academia Event

Doncaster

I got this email from TripIt today. It doesn’t seem to understand that I’m changing trains in Doncaster to go on to Birmingham for the Windows Gaming Awareness event. Not that there is anything wrong with spending time in Doncaster.

I’m doing a session tomorrow in Birmingham about XNA and MonoGame in Windows 8 and Windows Phone 8. If you want to come along too, I think there may be a few places left if you are quick.

Making Sample Data Can Be Fun

image

I’ve just released the first year coursework specification. We are going to be creating a system for a record shop which will track customer orders and suggest new records to buy. I think the only reason I went for a record shop was so I could call it “Vinyl Destination”, but that is by the by.

The program needs to be able to track huge numbers of records and customers, along with their orders. The problem is that, at the start, we don’t have any customers or orders, or anything. And anyone that thinks the way to solve this problem is to sit down and enter some details when the program has been built is very, very wrong.

I make the test data right at the start. I use a program to do it. All it takes is a few loops. Now, I could give the customers names like “Customer1”, “Customer2” and so on. But I can do better than that. All I need are some names to start with:

string [] firstNames = new string [] { "Rob", "Fred", "Jim", 
  "Ethel", "Nigel", "Simon", "Gloria", "Evadne" };
string [] surnames = new string[] { "Bloggs", "Smith", 
 "Jones", "Thompson", "Wooster", "Brown", "Acaster", 
  "Berry", "Ackerman" };

Here we have two arrays, one of first names and the other of surnames. I can now make myself a whole bunch of reasonable looking customers:

foreach (string surname in surnames)
{
    foreach (string firstname in firstNames)
    {
        Customer c = new Customer(firstname + " " 
                                  + surname);
        result.Customers.Add(c);
    }
}

This makes us a whole bunch of customers, from “Rob Bloggs” all the way to “Evadne Ackerman”. We can do something similar with the names for each of the recording artists:

string[] artist1 = new string[] { "Pink", "Flying", "Random", 
    "Singing", "Uptown", "Family", "Floating" };
string[] artist2 = new string[] { "Chicken", "Circus",
    "Banana", "Kitchen", "Groats", "Monkey", "Collective", "Pyjamas" };

I can combine the words to make random artist names.

string artist = artist1[rand.Next(artist1.Length)] + 
    " " + artist2[rand.Next(artist2.Length)];

This picks a random word from the first list and adds it to the second one (rand is just a random number generator that I use to make my test data). So I can have “Pink Pyjamas” and “Singing Groat”, among others. I do something similar for the track names, except that I have three parts. As you can see in the screenshot, this makes for some quite funny combinations, that liven up testing no end.

Don’t Make the Recipe Static

DSCF0719_20_21.jpg

Today it was time to talk about static class members in the first year programming course. I always have problems with static. If you are not careful you start thinking that static means “doesn’t change much”. This is reasonable in real life, but not in C# programming. In C# programming static means “always present, part of a class and not of an instance”. At this point I thought an example would serve well, so we started talking about contexts where static would make sense.

Consider that you are implementing a system for a fast food store. You have a class called “Dish” and the system stores an instance of Dish for each of the items in the menu. A Dish instance holds the list of ingredients for the dish, the sale price, and the name of the dish. For example, there might be a dish called “Chicken and Chips” which held two ingredients (chicken and chips) and a price value (perhaps four pounds 50 pence). I asked everyone for some suggestions for static class members for the Dish class. Someone suggested that recipe would be a good candidate for a static member.

Not so. The idea of a static member is one that exists as part of the class. Which means that recipe could only be static if every dish was cooked in the same way (i.e. the recipe exists once for the entire class). Each dish needs its own recipe, so this must be a non-static member of the Dish class. However some things, for example the maximum and minimum price of dishes, the maximum number of ingredients that a dish can have all make sense as static members of the Dish class.

Simon has a sign on his office wall, “Consider the context”. When trying to work out what makes sense as static and what doesn’t, this is very good advice. And a good starting point is that “a recipe should not be static”.

Voice Command on Nokia Conversations

VoiceMusic

Last week Rob Crocombe, one of our students, was featured on Nokia Conversations, talking about the things that he has been doing with Windows Phone during his time in the department at Hull. Now it’s my turn. You can find the post here. It contains a fairly shameless plug for Voice Music, my little program that lets you select music on your Windows Phone 8 device simply by asking for it. A new version is presently working its way through Marketplace certification.

Blogging the Rob Miles Way

DSCF0047.jpg

I’ve been blogging now for over ten years. I’m still not sure why. The best explanation I can come up with is that I’m happier blogging than not. And having done it for so long it would seem silly to stop.

At one time I thought that writing a blog would make my life more interesting, in that I’d start doing interesting things just so I can blog about them. It hasn’t quite worked out that way, but blogging has provided a place where I can jot down things that happen so that I can go back and read them later. It has also vastly improved my writing style and speed, so that I can dash off an article like this in around 15 minutes (I’m timing myself). If you are thinking about starting blogging, here are a few tips from someone with a lot of experience, if nothing else.

Pay for your services: I get my hosting from Squarespace, store my pictures on Flickr and host my domain names at Free Parking. There are lots of free services out there, but I really like the way that if I have a problem I can talk to someone with a financial stake in making me happy again.

Get a domain name: I was lucky enough to be able to get the use of robmiles.com. You might find that your name has gone though. Not a problem. I’m a big fan of running words together to make domain names. For a while I had theresalotofitabout.com but I couldn’t figure out what to do with it. Make a name that fits you and then register it. Your blog host will provide a way you can link that domain name to your site (Squarespace make this very easy) so that you don’t have an identity which is tied to any particular service provider.

Blog regularly: You don’t have to blog every day. Only an idiot would try to do that. Just make sure you have a regular heartbeat of a blog every now and then. If you start off blogging every day and then stop for a week it can feel like you have to do seven posts before you can put down that thought you just had. This makes a mountain between you and your next blog post that gets bigger every day. Just blog when you feel like it.

Blog for yourself: If you start blogging thinking that you are going to make a huge name for yourself and will get thousands of worldwide follows then think again. Unless you are very lucky, or very rude, you won’t get much attention. Your mum will read your blog, but there is no guarantee that anyone else will. I started blogging because I enjoyed the challenge, and because I wanted to improve my writing skills. I also thought it would be vaguely useful to be able to point people at my blog if they wanted to find out about things I’ve done. I also use the blog as a way of jotting down things that I’ve discovered and don’t want to have to discover again.

Don’t blog everything: There’s a lot of stuff in my life I don’t blog about. Don’t feel that because you have to blog every day you have to asset strip your private life just to get a post together.

Find a group: At Hull we have hullcompsciblogs.com which acts as an aggregator for blog posts. Posts from lots of our students are brought together there and shared. I have a habit of going on there and finding out what people are up to. Since my blog is on there this also means I have a “ready made” audience for my posts.

Syndicate: When I started blogging I found that people who wanted to comment on a blog post would just put their comment on my blog directly. That doesn’t happen now. Instead people will comment on Twitter or on Facebook. Look at using If This Then That to alert people to your posts, and make sure that you watch the feeds to catch comments and reactions. I use Windows Live Writer to create my posts, that has a plugin that will automatically send a tweet each time I make a blog post.

Track your Traffic: One nice thing about Squarespace is that it gives you very good traffic analysis. I also use Google Analytics to see what is happening on my site. This can be quite depressing, but it does provide a way you can find out if your audience is growing (it should do) and which of your posts were the biggest hits with readers.

Enjoy your blogging: I managed to find a voice, a style and a workflow that works for me. Every now and then I have the “Oh crikey, I have to do a blog post now” moment, but these are fairly few and far between. If blogging becomes a chore or a pain then you should either stop and do something else, perhaps a project website or get involved with a forum. Or write poetry, or a novel. Whatever you do I’d strongly advice keeping writing though, it is a very useful skill to have.

Learning and Teaching Conference

DSCF0052.jpg
Some of the audience. There is another picture on Flickr, click through to find my photostream. The camera is going through a French Impressionist blurry phase at the moment (or I didn’t hold it still enough). Apologies for that.

Earlier this year I was gobsmacked to find that I had been given a “Inspiring Teacher Award” as part of the Student Led teaching awards at the university. Very nice. As a result I also got invited to do an “Oral Bite” (is there any other kind) about being inspiring at the University Annual Learning and Teaching Conference.

So on Monday I wrote five minutes worth of material and this lunchtime I got to strut my stuff. It went very well and they were a lovely audience, once I found my slide deck. There were also some great sessions on teaching, the future, and where the university is going with all this. It was really nice to meet up with a bunch of folks who teach quite different things, in different ways, but all with the focus on giving the students the best learning experience possible.

There were quite a few questions on blogging and stuff like that. Stay tuned for my post tomorrow, where I’ll be doing a blog post on how I make the publishing legend that is the Rob Miles blog…..