On 25 June 2013, I popped over to the London Metropolitan University to attend a HEA sponsored workshop that was all about how to best teach the programming of mobile devices. My role there was to present something about an OU module that I help out on: TT284 Web Technologies, but I'll be saying a bit more about that in a little while.
Yanguo Jing, from London Met kicked off the day by talking about the twenty credit MSc module that he leads. Yanguo said that his module is strongly connected with industry and various technology vendors and important themes are that of innovation and enterprise. Importantly, students have an opportunity to carry out research themselves, create their own projects, develop their own apps and present their own findings. One way that they do this is by making their own videos (which is also a great way to create evidence which can be contributed to assessments).
Yanguo also mentioned something called the Wow Agency. One of the important points of having a more direct connection with industry is that students get more immediate exposure to demands from industry. This was thought provoking stuff.
Teach the future, not the past: Blackberry 10 development
Luca Sale and Simon Howard gave the first of two vendor presentations. I'll put my hand up and say that I know next to nothing about developing applications for Blackberry devices. In fact, I don't think I've ever used a Blackberry device other than to scroll through a message, when a friend briefly gave me their device to look at!
This presentation was all about developing for a new device, the Blackberry 10. I have heard bits and pieces about this, but the new device has a totally new operating system called Z10. Interestingly, it is based on an operating system called QNX (Wikipedia) (which I had vaguely heard of before). Basically, it uses a microkernal architecture (which means it has a way to enforce stronger separation between the hardware and the main operating system that runs a device), it's pretty small, and is used in a range of different embedded systems.
Apparently, there are number of Software Development kits (SDKs) which means that it's possible to take an existing Android app and port it to the Blackberry (and have it deployed to users via the Blackberry equivalent of an app store). The SDKs that were mentioned included Qt, HTML 5, Blackberry native, Adobe Air, and Java Android Runtime.
Microsoft devices and services
Lee Stott continued the vendor specific part of the day by making a Microsoft themed presentation. Microsoft, of course, has been investing significantly into the mobile devices space. Not only do they have Windows phones, but they (of course) also have their Touch PCs. So much so, that their new operating system (Windows 8) aims to create an experience specifically for tablet devices.
Lee talked about software eco systems and mentioned that services (as well as devices) are important too. Services can also be thought of in terms of cloud services, and we were told that the cloud was becoming more and more important. Since data is stored elsewhere, users have the potential to move between different devices and still have access to their documents and data, thus enhancing the user experience.
One of the most interesting part of Lee's talk was where he spoke about the Microsoft Azure services. I have to confess that it's been quite a while since I've been a Microsoft developer (in the intervening years I've done some PHP and coding using open-source frameworks), so it was useful to learn what the company has been up to and what services they are offering.
One of the challenges that I've always puzzled over is if you run your own tech company, how you might go about running and maintaining your own servers and databases. System administration is a necessary, important and essential evil: getting to grips with real kit and devices is important, but is a detailed technical specialism in its own right.
If I've understood this correctly, Microsoft can host a virtual server which then can host your own database. I'm also assuming that if you want, you can also write your own web services to do whatever magic stuff you need to do, which can then be consumed by users of mobile devices (or any other kind of client). Customers of this service are then billed per minute of processor time. I can see the benefits; server plant depreciates quickly and keeping them maintained is always going to cost money. I find this approach to hosting and consuming data really interesting, especially since it offers an approach to devolve risk to a third party. Of course, there are a number of competitors (Wikipedia) in the cloud services arena. This whole area seems to be a new subject in its own right.
Just in case you're interested, here's a couple of links I've gathered up: the main Microsoft Faculty pages, the UK faculty connection blog, and a link to the Azure education blog. Another link is DreamSpark which seems to be about giving students and institutions access to some of the latest tools and technologies.
TouchDevelop for Windows Mobile 8
The next talk was by David Renton, who is a lecturer in Computer Games Development. David introduces a platform called TouchDevelop (Microsoft website) which used to be a Microsoft Research project. TouchDevelop is a programming language that has a graphical feel. Programs that are created using it have an appearance of a textual language, but elements of code can be created using a series of menus (as far as I can understand).
The software that you can create using TouchDevelop can be run on different mobile devices. In some respects, TouchDevelop occupies the same space as Scratch (MIT website). David makes the point that it's difficult to create good games in Scratch. I can (personally) neither confirm nor deny David's assertion, but my own view is that Scratch is a fun and useful environment which allows users to escape from the tyranny of syntax, whilst at the same gradually introducing users to different (and essential) programming constructs.
What was really interesting was that TouchDevelop contains cool stuff, such as a physics engine. By providing such a facility, I can certainly see how and why such an environment could be particularly interesting and engaging. Again, for those who are interested, David has a blog called Games4Learning. A final interesting point is that TouchDevelop runs in a web browser, so will work on different platforms.
Shorter presentations: Lua and Corona, Digital Summer Camp
Ian Masters gave a short presentation entitled, 'teaching cross-platform mobile development using Lua and Corona'. Corona (website) is a software development SDK and Lua (Wikipedia) is a programming language. Like TouchDevelop, Ian demonstrated the use of an integral physics engine. During the follow on discussion, there was quite a bit of talk about the Unity Engine (Wikipedia), which I've heard mentioned at a number of other HEA gaming and mobile events.
Martin Underwood talked about Digital Summer Camp which is an event where universities, colleges, industry vendors and other organisations have come together help to inspire young people who are interested in technology. The Open University is also one of the 'digital skill leaders'.
iPhone game development at Robert Gordon University
Gordon Eccleston has been teaching the development of apps for quite some time. He gave a short talk on what works and what hasn't worked. Gordon introduced a new term: a flip classroom! I hadn't heard this term before, but apparently this is where students do some preparatory work at home to prepare for tutorials (I think I've got that right!)
Gordon spoke about how things have changed. These days students invariable have their own devices. One difficulty is that vendors are always changing their devices, which means that lecturers face challenge in terms of an inability to control in their own environment. This said Gordon does have access to some iPod Touch devices, allowing code created using the XCode platform (the environment used to create iOS applications) to real devices.
Gordon also mentioned that the school had access to the Unity3D engine. This gave way to an interesting discussion about the difference between games programming versus games design courses. I've also made a note that when it comes to submission of course work, submission to an apps store represents one judgement on quality. When it comes to further assessment by the lecturer, one approach is to ask students to create a screen cast. Assessment, I seem to recall, is a perpetual challenge (especially with the continual changes in technology), as is how to provide both teaching and resources through a web based environment.
Mobile apps development: enhancing student employability
Sally Smith and Scott McGowan, both from Edinburgh Napier University gave a short talk and presentation on the importance of employability skills. Sally, who is the head of school, said that employers value relevant experience, want to see applicants who have a relevant degree, and have good soft skills.
Faced with the necessity to demonstrate employability skills, it was argued that it would be useful if students could create something (say, an app, or some other related project) that can be both added to a CV and talked about in an interview. Sally also talked about the importance of industrial experience and how her institution and school tackled this issue.
Teaching and assessment strategies in mobile development
David Glass teaches mobile development to second year undergraduates at the University of Ulster. Students can create apps for the Android platform with Java using Eclipse. Important parts of the module that I've noted down are subjects such as user interface design, data persistence and networking. There is also a period of self-study where students are to gain an overview of mobile devices.
Challenges include teaching of programming and understanding what to assess and how. The assessment approach that David mentions sounds really interesting. Students are required to address legal, ethical and social issues. They are then required to develop a basic app before moving on to creating something that is more advanced. A basic app might be something such as a simple calculator or a measurement converter.
Interestingly, a more advanced app might be something called a 'my run tracker' app. David made the important point that the task of creating apps lends themselves to more open-ended assessment and group work. Taking this approach has the potential to encourage creativity and help with motivation.
Design designers, don't program programmers
Lindsay Marshall, from the University of Newcastle, gave an impromptu talk that described his own ten credit postgraduate module and connected with many of the earlier debates. At the end of his module, students are required to submit a portfolio. Relating to the challenges of assessments, students were allowed to choose whatever platform they wanted, and choose whatever problem they wished to solve. Students were encouraged to produce a design log and to present some kind of demonstration. Moving forward this may take the form of a video presentation or recording.
Lindsay made the important point that it is also important to take the time to look at the code, as well as the final product. Another component is the writing of a reflective essay, to describe what was learnt during the project. Interestingly, there are no lab sessions. Instead, Lindsay mentioned the importance of crit sessions, which is an important technique used in design.
What was really struck me from Lindsay's presentation was something that was also pretty obvious: that there are significant connections between the design disciplines and software development. Both are fundamentally creative subjects, and both require people to understand the inherent nature and characteristics of problems.
And finally, it was my turn. During my slot I spoke about a new Open University module called Web Technologies (TT284, Open University website), emphasising the point that there are so many important technologies that underpin the use of mobile technologies and devices.
TT284 is interesting in a number of different ways. Firstly, is uses a set of case studies of increasing size. Students move from understanding how to create an app for a small club or society, through to understanding what might happen as a part of a software development company. Students are then introduced to 'software in the large' (or sites that have incredibly high volumes), and what practical issues might need to be addressed.
When it comes to mobile technologies, drawing on a case study, students are asked to create an app for an Android device using MIT App Inventor (MIT website). App Inventor is a graphical programming language, where code can be moved to real advices. One of the challenges for any module that aims to either teach mobile technologies is the way that technology changes so quickly. A really good aspect of this particular module is that it also addresses a good number of fundamental and really important standards and technologies.
I learnt quite a lot from the vendor presentations and it's always useful to hear about the industrial perspective, particularly in a field that is moving so phenomenally quickly. Whilst it's great for academics to learn what industry is getting up to (and you might argue that this is a thoroughly essential part of the job description), the presence of vendors links to an implicit battle for the hearts and mind for developers. Users choose devices and technology that allows them to do cool stuff. Cool stuff is created by developers. Developers, in many cases, come from universities. Taking this even further, developers are employed by industries who ultimately want people to be skilled in using particular software infrastructures and ecologies.
Things have changed since I first started to go to these mobile technology events. There are now many more devices than there were before. The devices themselves have changed - they have more memory and power, and on the horizon there is a new generation of faster mobile networks. By the same token, there are, of course, new tools, development environments, frameworks and libraries. Educators are faced with the challenge of what to teach. Some educators choose particular platforms, whereas others leave this decision entirely up to students.
When it comes to pedagogy, project and group work appears to be fundamentally important, particularly when it comes to developing employability skills and creating artefacts that can be presented to potential employers. Keeping things open (in terms of either platforms or the problems that can be solved by the application of mobile technology) can present some challenges when it comes to assessment. There seems to be some consensus in terms of asking students to produce videos of their working apps might be a good approach.
Making a decision about what platform to use or to develop for isn't an easy one. When I was a student I was once told by a faculty member that 'you really need to know how to use all types of technology'. His point was that you will more readily be able to move between one platform and another. In doing so, you'll gain a degree of flexibility that will allow you to appreciate how things might be done in different ways. This is a perspective that has stuck with me and one that is important since the platform that you're using now will eventually become obsolete in a couple of years' time.
When it comes to mobile technology, everyone is trying to figure what things we should be teaching and what the best approaches for teaching might be. When we're dealing with an industry that is moving as quick as it is, these kind of events can be useful in terms of making connections and putting a marker in the ground whilst saying, 'this is how we do things today'.