On 12 February 2013 I volunteered at a joint Open University and UCL event on 12 February 2013 which aimed to introduce aspects of computing and engineering to school students. This was the first time I had been involved with this type of event. I have started to view outreach (in the broadest sense) as something that is something that is increasingly important to do (and this is something that I have written about in an earlier blog). So, if you're interested in hearing some about the outreach stuff that I've recently heard about, the previous blog I've posted might (or might not!) be of interest.
I learnt about this event by a colleague who was canvassing for volunteers. Upon accepting his challenge I quickly discovered that I was to play a tiny part of what was a much bigger event and soon heard rumours that students were coming to UCL to hear about other subjects such as chemistry and engineering. My own role was to offer some support and guidance to students who wished to learn a little bit about computing and information technology.
Not only was this, for me, my first ever time being involved in an outreach or engagement event, it was also my first ever time on the UCL campus: it was massive! I found myself being ushered into a large computer suite in the basement of one of UCL's impressive buildings. Within moments, our lead facilitator and lecturer, Arosha Bandara, started to outline the plan for the day.
The focus on the day was the programming language Sense, a language that is used with the Open University module TU100 My Digital Life which is a first level undergraduate module in computing. One of the key aspects of Sense is that it works with a bit of electronics that allows different types of measurements to be made. Arosha talked us through a program that simulated a simple etch-a-sketch game. Students would be asked to make a change to the program so that it would work properly - they were required to do some software maintenance! During the second part of the day, students were then required to get together in groups to think of how to the language and the sensors to do something fun.
The talking bit...
The morning began with Arosha outlining the broad concept of Ubiquitous computing (Wikipedia), namely, that computers can be everywhere, can contain sensors and can be embedded within the environment. Arosha then introduced a programming problem (in the form of an etch-a-sketch game). Everyone was taken through different parts of the Sense programming environment. Key elements such as buttons, instruction palettes and sprites (graphics) were introduced.
Students were then directed to some key parts of the game that accepted inputs from Sense hardware. Students were then shown, step-by-step, how to make a change to the game to modify the behaviour of an on-screen pen. They could immediately see the effect of changes to their programs. Further modifications included adding some conditions that enabled their game programs to respond to noises (such as clapping!)
The projects bit...
There were loads of things to take in during the first part of the morning. There was a whole new programming environment, there was the concept that a computer can receive and work with signals from the outside world, and the idea that a program can be formed out of groups of instructions.
The second part of the day was all about being imaginative, thinking about the different kinds of inputs and outputs that the electronics allow, and trying to think of some kind of application or demonstration. Students were assigned to small groups and were encouraged to come up with different ideas.
The group that I was assigned to came up with the idea of trying to build some kind of 'human sensor', perhaps creating an infra-red trip wire (the Sense board came with a number of different sensors and outputs - one of them being an infrared transmitter or detector). We collectively thought about the different cables and sensors that we had at our disposal before beginning to play with what kinds of signals (or numbers) we could detect from the outside world. We got a fair way with this task before our time was up.
It was a fun day! Although there was limited time to do real stuff, the tiny team that I was allied to wrote some simple program code that allowed a heat sensor to work. The Sense board represented a connection between the magical world of code and software to the physical world, where measurements could be made.
One of the biggest challenges of the day was to convey such a lot of (often quite difficult) theory in such a short amount of time. Arosha was charged with telling our students something about the different types of programming constructs, variables and graphics. Although this was necessary to get to the point where we could all do some fun stuff (modify our program), the way that hardware was used with software certainly facilitated engagement and helped to focus our attention.
I liked the way the idea of ubiquitous computing was used as an introduction, but one additional might have been to emphasise the extent that we are surrounded by computers. The moment you receive a telephone call, there is an unknown number of computers all working together to deliver your telephone call. There's the computer in your mobile phone, there's a computer in the base station which speaks to other computers... at the other end, there is a similar situation. Also, turning on the TV means starting up a pretty powerful computer that is performing millions of instructions a second which coverts signals from one format to another. Their ubiquity and invisibility is astonishing.
What is also astonishing is that the fundamental principles of computer programming that are exposed by the Sense programming language is also shared amongst all these devices and systems. In the same way we have ubiquitous computing, we also have ubiquitous code; computer software that run anywhere.
Being involved in this day took me back in time to the days when I first got my hands on a computer. Although the form of a computer has changed immeasurably, some things have not changed. Computers remain very particular and pedantic - they require patience. It's also important to remember that to learning how to work with code can and should be fun. But when you've created a world out of code and you understand how things work, working with them can be immeasurably rewarding too.