(This post is an updated version of one we posted on MSDN last September)
With consumer uptake of smartphone platforms growing exponentially, particularly for accessing social media, news, streaming media and games through the lens of ‘mobile apps’, the LiSC team felt it was time to overhaul the ‘Mobile and Distributed Computing’ module that had been run for many years in the Lincoln School of Computer Science.
Task-driven computing on mobile devices such as smartphones and tablet PCs is beginning to edge out the traditional desktop space, for example social media use on mobile devices has now surpassed the desktop; as the processing power of mobile devices increases they are likely to run more desktop application tasks. LiSC took a close look at the development tools for the major mobile OS’s currently available with a view to selecting a suitable platform for inclusion in delivering content for teaching, as well as supporting LiSC’s areas of research. The end result was a completely redesigned module called ‘Social Applications Development’ (SAD) that embraced cutting edge mobile and cloud technologies, with a healthy dose of HCI. We are now in the second year of running the module; this post takes a look at how the new module started out, how it’s progressing, and where we are headed with it.
In the early stages of designing SAD, we had to consider our students development skills and the main Computing programmes they were enrolled on – this was to ensure we set the teaching style, pace and content at the right level. Secondly, significant consideration was given to the role of cloud computing in developing mobile applications. Lastly, as a large part contextual mobile use is social, for example social media, check-in services, recommender apps and photo sharing, we decided to include a significant amount of Human Computer Interaction (HCI) and design methods. This was bolstered by the expertise of the LiSC team delivering the content, all of who are active HCI researchers across multiple disciplines. By embracing a ‘designing for real users’ approach, the inclusion of HCI provides students with a strong focus on who they are developing for and the type of tasks end-users want to carry out. This approach was carried out in advance of thinking about the development space; a design first – develop second approach.
The cloud is really important now, many of the services we use leverage cloud computing and its many benefits. I won’t go into the details of the cloud but it was deemed an obvious core requirement for SAD. There are a few cloud service providers out there offering free trial accounts for developers, notably Amazon’s EC2. However these free accounts are limited in available resources/features and require a debit/credit card to register – completely unsuitable for teaching. Another search revealed a hidden gem and largely unpublished free academic cloud account from Microsoft. Microsoft offer an ‘Educators Grant‘ for their Azure cloud platform. Essentially, educators can receive a grant that includes a specified number of free passcodes giving students enrolled on relevant courses/modules access to a fully featured Azure cloud account for 5 months (can also be extended). There is no credit/debit card required with students gaining access to a wealth of cloud services completely free to support their coursework. Note you are not limited to running Microsoft frameworks in the cloud, you can deploy and run pretty much anything you want, as well as install practically any OS in a Virtual Machine. Some of the free services offered in the academic account are listed below:
With the use of Visual Studio (VS) widespread in Lincoln’s computing degree programmes, it made sense to look at it for mobile development. The question was ‘How good are Microsoft’s mobile and cloud development tools for Windows Phone when stacked up against the competition?’ The answer to this was straight forward after a few days experimenting with both the cloud and phone emulators. We were impressed by the integration of the Windows Phone and Azure SDK’s in Visual Studio, and further impressed by the emulator tools, easily edging out the competition in features for sensor and cloud emulation, debugging and ease of use through VS GUI building elements. The stage was pretty much set and the module was planned to run over the full academic year with 35 students in its first iteration. It is now halfway through it second year of running and has attracted 55 final year students, for many it was an optional choice.
The structure of the module’s development content was inspired by a combination of resources available from the Windows Phone Developer website as well as LiSC research. To engage students, we built 5 cloud services themed on some of LiSC’s research interests and deployed them to Azure as cloud services. The services were designed to enable students to easily create cloud-connected mobile apps for their first assessment. The first half of the module focused on designing and developing mobile applications that connected to the 5 cloud services the LiSC team created. The second half of the module focussed on teaching the students how to develop their own cloud services for deployment to Azure (using their free Azure Academic Pass). An overview of the content we deliver for SAD is below:
- Intro to module (Social applications and mobile platforms), Development environment and installation
- Windows Phone Architecture – Hardware and Software
- Mobile Interaction and Design Guidelines for Mobile Devices
- Mobile Context, Current & Future Sensors
- Web Services, REST and SOAP
- Mobile Device Demographics
- API Mashup Session, Design a Conceptual Mobile Application
- Advanced Mobile Networking and Services
- Complete Mobile Application Walkthrough
- Five Cloud Services Provided for Assessment 1:
- a) Save photos to cloud service
- b) Top 40’s music charts cloud service
- c) Lincoln Campus hourly energy usage cloud service
- d) Crime by location cloud service
- e) Sentiment cloud service
- Azure Academic Pass Walkthrough & Feature
- Overview of Cloud Computing
- Building Cloud Connected Mobile Applications
- Cloud Storage Services (Blob, Table, SQL)
- Push Notifications Services
- Identity and Authentication Services
- Cloud Computing Ethics
- Technology Shaping Human Behaviour
The module was well received by students in the first year, some of whom had basic coding experience and yet where able to produce novel cloud-connected mobile apps after a few months of attending lectures and workshops. Screenshots of the student apps with comment are below.
AT: “The module Social Applications and Development was an introduction for me into the world of mobile applications; learning and implementing the following application based technologies, such as: Cloud Services, APIs, SDKs I was able to create a mobile application that allows a user to find out the crime statistics of given area.”
MW: “I found the module very interesting and expertly delivered. I even enjoyed it so much I have already contributed my own content for use in future years. (a dll for converting a UK postcode to long and lat cords)”
To further engage students with their coursework we were fortunate enough to arrange a Windows PhoneCamp which took place during the first year of the module. Over 50 students attended and attempted the task of hacking together Windows Phone apps in the space of an afternoon; a blog post on Lincoln’s PhoneCamp is here.
With mobile development an ever changing landscape across all major platforms, it’s a real challenge to keep lecture and workshop materials up to date. It is almost certain that each new academic year will bring about major SDK changes requiring workshop materials to be updated or rewritten. However it is worth doing so, keeps students and researchers alike fully engaged and equips students with cutting edge skillsets to take into industry.
Upon reflection of a successful first year and now halfway through the second year, teaching Windows Phone & Cloud development has been a rewarding experience for students and the LiSC team. Although Windows Phone may not be the most popular mobile platform out there at the moment, the concepts of mobile and cloud development are the same for both iOS and Android, it’s just a different programming language implementation. We intend on adopting the new Windows Phone 8 SDK in September this year, which is the next evolutionary step in the platform’s maturity. For next year – who knows what that may bring – we are already looking at the steadily more popular cross-platform development tools such as Phonegap (free) and Titanium (licence fee) that will allow students to build one application for all major mobile platforms. These cross-platform tools are showing a lot of promise, not only in the quality of their web-application capabilities, but also in their new SDK’s that allow access to sensors such as camera, location and accelerometer. Stay tuned!