OU blog

Personal Blogs

Christopher Douce

Using the cloud to get to the OU campus

Visible to anyone in the world
Edited by Christopher Douce, Thursday, 21 Nov 2019, 11:25

I get to visit the Open University campus in Milton Keynes with alarming regularity and getting there is always a bit of a trauma; I need to take three trains and then a shuttle bus.  After doing this journey for about two years, I’ve managed to get the timing down to a fine art, but sometimes things don’t go as smoothly as you hope:  I sometimes miss the shuttle bus and I have to catch a taxi. 

I can’t help the feeling that catching a taxi, on your own, is an extraordinary extravagance.  About a year ago, when my train was delayed, I got chatting to a fellow train traveller who was sat opposite me in the same carriage.  I noticed that he was rifling through some papers that contained the unmistakeable university logo.

‘Are you heading to Walton Hall?’ I asked.  It turned out that he was, and my fellow traveller, like me, was planning to catch a taxi to the campus.

‘Fancy sharing a cab?’ I asked.

I turned out that my fellow traveller, who I had never met before, had pretty much the same job as I had: he had the job title of staff tutor, but was based in Wales and worked in the Health and Social Care faculty.  He had travelled up to Milton Keynes after spending a night out with friends in London.  If I hadn’t nosily spotted his university papers, we would have incurred double the amount of expenses, and missed out on an opportunity for a nice chat.

Sharing lifts

Hundreds of people work at The Open University campus in Milton Keynes.  There are so many people travelling between the university and the train station that the university puts on a shuttle bus at peak hours - but what happens if you travel outside of peak hours?  The answer is you either catch a cab (which is costly), or you try to catch a local bus which takes ages and is pretty infrequent.

I don’t mind sharing taxi rides with colleagues.  The problem is that because there are so many of them that I don’t know who they are!  Even if I did know who they were, they might be in another carriage and have hailed and taxi and left the station forecourt before I had a chance to catch up with them.

One solution might be to loiter around the taxi rank and bellow: ‘is there anyone here who is going to THE OPEN UNIVERSITY? Does anyone WANT TO SHARE A CAB?!’ and see what happens.  The problem is that since I’m exceptionally English and doing things like this instils in me a morbid fear of being arrested.

Connections

When I was travelling to the campus one morning, an idle thought went through my mind.  I thought: ‘wouldn’t it be good if I could just take out my mobile phone, start an app, and push a button that says “I’m on the train from London to Milton Keynes – and I would be happy to share a lift to the campus if anyone is up for it…”’ 

This imaginary app would then tell me whether there was anyone else who was on the same train as me, or offer me an alert if anyone on the train would like to share a ride to my destination.  Another variation of this would be to try to find strangers to share journeys with, who might be going to roughly the same part of the city that you were travelling to.  To keep it simple, I thought, ‘no, that would just increase the complexity – let’s just think about this in terms of a single organisation’.

I imagined my app would be able to display the first name of fellow travellers, the faculty or department that they were in (which would be really useful in terms of facilitating a conversation), and also have a picture – so you know what a fellow traveller may look like when you get to the taxi rank.

There would be two obvious wins and one positive side effect.  The two wins were economic (it saves the university money), and environmental (less fuel is burnt to get to the campus).  The side effect is that you might be able to have some great chats, which might help you to keep up to date with what’s going on across the university.

Technical questions

So, how might we make this idea a reality?  Well, we need to figure out how to write an app.  Secondly, we need to figure out how to save data (so we can make a record of who is travelling on which train).  Thirdly, we need to get some data somehow (so we can get information about different trains).  Finally, we need to do a bit of ‘data crunching’ somewhere so we can be alerted as to whether there are other people on our train that we could share a lift with.

Creating an app

So, how do we go about creating an app?  The answer is: there are loads of different ways.  You can either create ‘native apps’ or you could create ‘web apps’ using HTML 5 and Javascript. 

When it comes to native apps, you might want to create an app for either an Android phone, or an iPhone.  If you’re thinking of developing an app for an iPhone, you might use xCode, which is a toolset from Apple (where there is a fancy new programming language called Swift). 

If you’re thinking of developing for an Android phone, you might consider using Android Studio, NetBeans (NBAndroid) or MIT AppInventor (I’m sure there are other tools out there!)  The problem, of course, is that some OU staff use Android phones, and some use iPhones.  To attempt to take the pain away from the nightmare of different platforms, there’s something called PhoneGap (but I don’t know too much about that… it’s all new to me!)

Storing data

Assuming that we build an app, then how do we store (and share) data?  This is where the cloud comes in.  The problem is that I don’t want to spend any money setting up services.  Plus, it’s been an absolute age since I’ve done any of that stuff.  Another solution is to make use of services from existing businesses that have already done all the hard work for you.

There are a quite a few different providers.  One of the biggest is Amazon.  Amazon offers a service that allows you to ‘plug into’ their existing computing and network infrastructure, allowing you to create and use your own virtual machines, which then can store data (since these virtual machines can host databases, like MySQL).  Rather than having to pay, host, and power a whole server (which, arguably, is likely to remain idle for quite a lot of time), you can instead pay for how much processor time, network capacity and data storage you consume.  It’s as if a server has become a utility.  Rather than having to worry about backups and whether you need to buy more processing power, this can all be looked after by a third party: you pay for what you use, allowing you to concentrate on the task of writing code and solving your problem.

Of course, you might not want to use Amazon.  If not, there are loads of other cloud data and service providers you might use.  Two of them who come to mind are that of Rackspace and Microsoft.  The interesting thing about Microsoft (and providers who are similar to them), is that you can choose where your virtual servers live.  If most of your customers are located in North America, it probably makes sense (in terms of network performance) to have your virtual servers served from that part of the world.  If more of your users are located in Europe (such as users who are travelling to and from Milton Keynes), you’re likely to want to host your virtual machines in data centres in Europe.

Another thought is: perhaps you don’t want to store your data in machines that are managed by Amazon or Microsoft.  If so, another approach could be to set up your own private cloud (providing you have your own infrastructure to do this, of course).  You might want to do this if your organisation has already invested quite a lot of capital into IT resources, or government or institutional policy dictates that you wish to make sure that your data is only within the remit of a particular jurisdiction.  Everything in life is always a compromise.  You might want to use your own private cloud as opposed to using a public cloud, but a private cloud is likely to cost in terms of hardware, power and administrative overheads.

If I were seriously writing this app, what would I do?  I would ask the IT people in The Open University to see if they have got a cloud system that I could use.  Whilst I wait for them to get back to me (which can sometimes take quite some time) I also might try to experiment and create a prototype using a public cloud provider, since some of them can give you ‘trial accounts’.

Getting data

Let’s say I’m going to a module meeting in Milton Keynes and I’m sat on the 8.46 train from London Euston.  There are two things I need to do: I need to say ‘I’m on this train’, which means storing a record so other people (meaning: other Open University colleagues) can see that I would be up for sharing a taxi, and also recording which train I was on.  The problem is: I don’t want to go through the trouble of entering ‘8.46 from Euston, London Midland’, since I’m lazy and I don’t have too much patience.  Plus, we need to iron out any ambiguity.

One way to solve this problem is see what trains are currently running (because, what happens if my train is delayed?)  Thankfully, Network Rail provides loads of data feeds (Network Rail), which we could use to choose the right train (and, I’m wondering whether we might be able to use the magic of GPS positioning too!)

As a brief aside, being a London resident, I’m a great fan of an app called CityMapper  (CityMapper website).  It gives you loads of information about different bus routes, trains, underground stations, and hooks up to Google Maps so you can see where you’re going.  An interesting question is: how does it work?  One answer lies with the availability of different data feeds, such as the data feeds that Transport for London provides (TfL data feed summary page).  

Why do TfL provide all this data?  The answer is: that TfL are in the business of providing transport, they’re not in the business of creating new apps for new-fangled computing devices: that’s not their core business.  Once feeds are made available, they can be used in new and creative ways.

Back to our ‘taxi ride sharing’ scenario: let’s say we’ve got a group of four people on the train that are prepared to share a ride to the campus, then what happens?  Who is going to make the call to the taxi company?  One thought is that the colleague who instigated a ‘taxi share request’ could do that job.  Or, alternatively, the taxi app might do it for us (if our chosen taxi company has some kind of mechanism to accept taxi bookings from recognised apps). 

Other issues

When we start to think about all this, we come up against questions of user identity and what it means in terms of a mobile device.  Some of my mobile apps make use of my Google+ account, whereas others make use of Facebook.  This can make things a whole lot easier, but it does worry me a little, mostly because I don’t know the extent to which my data is being used (we’re again back to the question of compromise: convenience traded off for ease of use).  One thing that we might want to do is to create our own ‘identity’ management system.

Another issue is that we’re beginning to step into is the currently fashionable area of smart cities (Wikipedia); the possibility that journeys through urban environments can be aided and abetted by the use and sharing of data.  (Not to mention costs and communications).

Final thoughts

Just as I was finishing this blog, the following email popped into my inbox: ‘would anyone like to share a taxi from MK station tomorrow?  I have a choice of trains, the first one arriving MK at 10:02, if that fits with anyone else’s plans?’

I remember this other time when I was travelling to the University of West of England from Paddington to Bristol Parkway train station.  When I got to Bristol Parkway, I had to catch a taxi from the station to the campus.  When I arrived on campus and started to walk where I needed to go, I recognised someone.  That someone was the gentleman who was sitting on the next row along from me.  Again, if only we had known, or had talked, or hadn’t been so English about our early morning journey, we could have shared a taxi together.

A final question is: given all the things that I’ve found out, am I going to go ahead and create this app?  Sadly, I’ve got a whole load of other deadlines to attend to, which means that I can’t afford to invest the time – but I would really like to, and I hope that someone does go ahead and creates it!  I, for one, would really like to give it a try.

In the meantime, what I have decided to do is to make more of an effort to chat to the people who catch the same shuttle bus as I do.  This way, if the train ever gets delayed, I might have more of a clue about who I could share a taxi with. 

Permalink Add your comment
Share post
Christopher Douce

Mobile Application Development: from curriculum design to graduate employability

Visible to anyone in the world
Edited by Christopher Douce, Tuesday, 19 Oct 2021, 11:26

I had never visited the University of Buckingham before.  It was on the morning of Tuesday 15 May 2012 that I found myself travelling to Milton Keynes railway station to meet with a pre-booked taxi that would whisk me into the unknowns of the Buckinghamshire countryside towards an event that was intended to share practice about the teaching of mobile technology.  Although I had never visited Buckingham, I have heard it being spoken of many times before; a radical institution which was founded at approximately the same time as another radical institution, the Open University. 

As well as sharing practice about the teaching of mobile application development another really important theme was the subject of employability and the open question of whether universities are 'teaching the right stuff' to enable graduates to immediately make a contribution in the workplace.

This blog post is a summary of a visit to a HEA event entitled 'Mobile Application Development: from curriculum design to graduate employability'.  If I've missed any key points, I encourage the fellow participants and delegates to add comments below.

Industry keynote

Lee Stott, an academic evangelist from Microsoft kicked off the day with a really interesting keynote.  Lee is from a part of Microsoft that works with university departments (Microsoft Faculty pages).

Lee emphasised the point that users expect connectivity.  I made a note of an interesting quote that went 'mobility plus cloud equals opportunity'.  It's easy to imagine (or even remember) situations where one gained access to information whilst travelling, solving problem, such as finding an address of a location or accessing some urgently needed information.

Lee also made the point that mobile devices are our predominant work tool (or tools).  A tool, of course, might be a phone or a laptop.  This is certainly true in my case; I often haul my laptop between the OU's headquarters in Milton Keynes and my home, sometimes using the dead time on a train to do some marking.  Another thought that comes to mind is whether mobility is causing work time to encroach on our personal time, but this is a whole other debate (and one that I hope to connect with by writing another blog post about a recent seminar).

The usefulness of an app depends on a combination on its functionality, the functionality of a device and the availability of a network.  To be useful, apps need to be useful but also graphically appealing.  Lee emphasised the importance of designers, not just software designers, but graphic designers.  This connects to an important point which is that creating good apps is an interdisciplinary activity - a combination of technology, business and art. Writing commercial apps isn't just about writing software that works - they need to be 'hardened'; tested thoroughly and be checked for vulnerabilities.

Microsoft, along with other mobile platform vendors (such as Google and Apple) have their own ecosystem of tools, technologies and platforms.  Microsoft is but one of many platforms that educators can choose from.

I have to confess (for my sins) that I used to be a software developer who mostly specialised in Microsoft technologies.  I used to use .NET, MS SQL and a bunch of other stuff.  It has been, however, a few years since I've done this.  Lee introduced new technologies that were entirely new to me, such as Microsoft Azure (wikipedia) and Microsoft XNA (wikipedia) for Xbox.  Lee also mentioned other software that was on the near horizon, such as Windows 8 (wikipedia) which can be used on 'slate' (or tablet) devices.

Lee also touched upon the important subject of recruitment.  Lee emphasised that it is important to encourage students to build apps and sell them through apps market places to create a portfolio which can be shown to potential employers.

The question and answer session was interesting.  There was some discussion about cross platform approaches to development and the fact that when you go cross platform, developers lose some functionality from the original host operating system of a mobile device (or phone).  The subject of native code versus multi-platform code was a debate that arose on a number of occasions throughout the day.  HTML 5 (wikipedia) was regularly mentioned, along with a platform such as PhoneGap (PhoneGap website).

Another tension that exists particularly when industry representatives and university representatives debate curriculum, is the difference between education and training.  Industry wants people who are fully trained (and ideally want universities to do this), but the real role of universities when it comes to technology (in my opinion) is to enable students to effectively know how best to learn and adapt to new tools and situations.  Lee made the point that the teaching of fundamentals is essential.  I agree.  Conveying principles through the use of vendor specific tools whilst presenting concepts in a general way to enable other technologies to be understood is a difficult thing to achieve.

Mobile application development: a journey thus far

Harin Sellakewa from the University of Buckingham gave a presentation that described how mobile technology came to be taught, in its current form, at Buckingham.  Harin described how some of the curriculum had changed and outlined the introduction of new modules.  The use of mobile technology had been explored by a number of various projects, including those that were funded by the EU.

Some of the key learning objectives of a module on mobile software was mentioned: how to design applications (or apps), understanding different components and learning about various guidelines and specifications.  All these learning objectives could then contribute to making an application that could be sold on the free market.

Harin also gave us a number of useful tips.  Any module must (of course) satisfactorily complement any existing modules, also aim to get people involved, speak to different vendors, start with student projects, attend training events that are run through industry and take the time to network.

A number of different topics were exposed through the question and answer session.  As well as a discussion about different technologies, an industry representative mentioned the importance of candidates having a portfolio of work to demonstrate to prospective employers.  One point that stuck in my mind was that an unfinished application has the potential to work against an applicant; showing something polished and complete is necessary.

Developing Apps in Schools

Aaron Peck teaches computing and ICT at the Royal Latin School, Buckingham, a school just around the corner from the university.  Aaron began by speaking about wider discussions about the GCSE computing curriculum, mentioning the OCR GCSE which was said to contain three key components: programming, a research project and an examination.

Aaron emphases fun and mentions the use of the MIT Scratch (Scratch website) environment.  He also went onto speak about mobile devices, a technology that the pupils are invariably likely to be familiar with.   Here lies an obvious collision of ideas: why not teach programming through the use of mobile devices?

Scratch has, of course, some distinct advantages - it is immediate and gets around the tyranny of fiddly syntax by providing students a graphical environment in which they can play.  Another programming environment that has a graphical world is the MIT App Inventor (App Inventor website) which allows users to create apps for Android phones.

Students are encouraged to create small projects, which may include a simple calculator, a recipe book or a hangman game.  The creation of apps has the potential to open up further discussion of wider issues, such as how such developments might be commercialised.  I remember an anecdote from Aaron, where he was asked by a student about how much an app programmer might earn; a testament to his ability to instil enthusiasm and engaging choices of technology.

There were some advantages to using App Inventor; it can be used on multiple development platforms, it is relatively simple to install and given that students may have used Scratch during earlier studies, making the graphical nature of the programming environment to be (potentially) more easily grasped by students.

Aaron isn't stopping at creating apps with App Inventor.  He mentioned his intention to try to work with Lego Mindstorms Robots through the Android SDK, where it might be possible to create a 'remote control' app using Bluetooth radio.  Aaron also mentioned that there was also opportunity to share the workings of HTML and Javascript with his students.  If my memory isn't playing tricks on me, I also seemed to recall that he mentioned that one of his students was inspired enough to use C++.

The question and answer session led us to subjects and technology such as Microsoft Kodu and Micrcosoft Gadgeteer.  Other important issues include addressing the gender imbalance, and how to motivate all student groups, including those who may not have a strong technical bias.

I really enjoyed this talk.  Two big parts of tech were familiar to me: Scratch (or as I know it, Sense), and App Inventor.  Both products are used as a part of different Open University computing modules, TU100 My Digital Life and TT284 Web Technologies.  It was an eye opener, for me, to see how these products could be used a way to inspire students at GCSE level. 

Mobile Assessment

The use of mobile technology to help teaching and learning seems to be a hot topic at the moment.  Joan Lu gave a presentation about the use of mobile technology for assessment and also mentions the use of student response systems making reference to an EU funded project entitled Do-IT.  Joan is from the XDIR research group at the University of Huddersfield which has carried out research  projects related to mobile technology.

Designing the mobile syllabus to enhance student employability

Yanguo Jing from London Metropolitan University gave a presentation about his first hand experiences of teaching about mobile technology to his postgraduate students.  It was a really interesting presentation that was packed with useful tips, not just about teaching but also about industrial engagement too.

Returning to the subject of multiple platforms and environments, Yanguo said that initially he tried to teach a little bit about all the major toolsets.  He came to the conclusion that this was less than ideal.  Although students might be given breadth, getting to the 'depth' is always a challenge.  It was decided, therefore, to focus on one particular platform and use the experience with the platform to make points that are important in other platforms too.  This is a very sensible practical decision; there is only so much detail that a lecturer can hold in his or her head at any one time.

Understanding mobile isn't just about understanding technology and the fundamentals of creating some executable code that runs on a device, it is also about understanding the surrounding business and economic area.  Connecting back to the ideal of creating marketable Apps that Harin touched upon in his earlier presentation, Yanguo said something about how he encourages his students to enter application competitions, or Appathons.  He also mentioned that students were also encouraged to attend an industry conference, DroidCon, to gain first hand experience about what is happening within industry.  It was interesting to hear that Yanguo is a part of an industry liaison group.  Not only does this facilitate a connection between academics and industry, it can also act as a connection between industry and students too.

Finally, it is also perhaps worth mentioning that Yanguo is helping to organise a related HEA event on mobile technology on 15 June 2012, entitled Workshop on Teaching and Learning Programming for Mobile and Tablet Devices.  It sounds like it's going to be a great event!

Programming with iOS

Gordon Eccleston from Robert Gordon University, Aberdeen shared some of his experiences of teaching using Apple's iOS.  This platform enabled students to learn something about HCI principles and also about object-oriented programming (through the use of Objective-C).

Gordon offered a key tip which echoed earlier discussions in the event.  He said, 'keep your modules as generic as possible'.  Inspiration and information that informed the creation of his module included looking at different text books and short courses that were designed for industry.  Studying the documentation provided by the vendor can be a very useful source of materials that can help to guide or inform the creation of aspects of a module.

Gordon spoke about lab based teaching (in a lab containing lots of Apple kit) and student course work.  Gordon then went onto present a brief overview of a number of different student projects.  The use of projects cannot be understated.  A good project connects the technology with broader issues of business and also helps to give the student some good materials that can be immediately demonstrated to a potential employer (I have this image of an interviewee handing their phone to an interviewer whilst saying, 'this is what I've done).  One project that stuck in my mind was an app that illustrated a fashion portfolio which demonstrates a connection between apps and marketing.

Gordon's session inspired a really interesting question and answer session.  One point was that PC (or Mac) based simulators are all very well, but it's also important (as well as rewarding) to allow students to run their software on actual devices (such as an iPod touch).  For one thing, it allows the developers to gain access to device only peripherals, such as accelerometers and other sensors that they wouldn't otherwise have access to.

Reflection of curriculum design and delivery in mobile computing

Khawar Hamed from the University of Staffordshire spoke about his experiences of curriculum design.  Khawar's presentation reminded me an app is at the top of a technology pyramid.  Along with the operating system of a device, apps are perhaps the most visible software artefact that users interact with.  Underneath the app and beyond the phone there is a sophisticated digital infrastructure that enables devices to work.  Some of the modules that Khawar mentioned allow students to begin to study these underlying technologies.  Another point is that mobility isn't just about technology, it's also about enabling organisations to achieve their objectives.

Khawar touched upon other issues such as the importance of getting the right name for a course or programme.  Since the names and phrases used to describe technology can change relatively quickly, perhaps the names of modules and programmes should be prepared change too?   An important point was to always seek industrial involvement wherever possible.  Connecting to this point, Khawar mentioned an organisation called The Wireless University Forum.

One really interesting debate that emerged from this presentation centred upon whether an institution should provide devices that students can transfer code to.  The answer was a resounding 'yes'.  Not everyone will have an Android phone, or an iPhone (or even a smartphone, although this is something that is changing).  Plus, providing a device delineates between what is a 'learning' device and what is a 'personal' device.

Mobile app development - creativity, skills and evidence

The final talk of the day was a second keynote.  Andrew Lapham, from Yell Labs gave an enthusiastic presentation about the work that his team carries out and what characteristics in potential employers he is looking for.  Key points include the ability to be creative and generate new and interesting ideas, strong communication skills (the ability to communicate those ideas and to persuade others of their merit), and an underlying enthusiasm for technology and what it might be able to achieve.

The notion of having a portfolio of evidence was also touched upon.  Whilst demonstration of apps or talking through a pet project is impressive, what is more impressive is having evidence that your own product or code has been marketed.  This might include having a blog about a product, and also gathering some evidence about how your customers view your product.

Reflections

There was one thing that surprised me about this day which was an exceptionally strong focus on apps.  In retrospect, it shouldn't have been a surprise at all.  Apps are the way to consume software on mobile devices.

I certainly sense that teaching programming for mobile devices isn't easy.  Each platform comes attached to ecology of tools (and a whole set of accompanying vocabulary) and techniques.  Teaching everything just isn't an option, but teaching in depth is surely the right way to go.  Educators will therefore have to choose a platform and figure out how to connect a technology choice to wider principles to enable graduates to more readily get to grips with the new environments they will inevitably face.

One really interesting question is whether mobility and the technology that goes with it is changing software engineering?  It's not a question seems to have an easy answer, but perhaps user based apps require different design methods than the lower level software that support the networking infrastructure and perhaps those who have stronger connections with the industry would be able to comment.

A final reflection relates to the creation of a portfolio that can help during the recruitment process.  The importance of a personal portfolio was emphasised in a recent HEA event at the University of Greenwich about gaming and animation.  Employers like to see what applicants have done.    Furthermore, it offers opportunities to allow employers to find out about the difficulties that applicants face and how they were overcome.

When it comes to being an app developer, the message was clear: a portfolio of well-crafted working apps was clearly something that employers would like to see.

Congratulations to Buckingham for running a fun and thought provoking event!

Permalink Add your comment
Share post

This blog might contain posts that are only visible to logged-in users, or where only logged-in users can comment. If you have an account on the system, please log in for full access.

Total visits to this blog: 2308746