At the University of Reading the final year of Computer Science contains a module known as the Individual Project. This is worth around 22% of the entire degree. A student may choose a project from a list of suitable projects drawn up by project supervisors. Should a student feel strongly that they possess a good idea it is up to them to formulate this idea and link with a project supervisor at the University to aid them with the project and the report.
My project this year comes under the title Mobile Computing. The area of mobile computing itself is rather broad and open to interpretation. There were a number of suggested areas in which to create a project in. Something I feel is important for all is education. This featured rather heavily within the options. Upon discussion with my then Project Supervisor I discovered there was an opportunity to work with the World Association of Girl Guides and Girls scouts to help them to deliver some of their educational materials in a non-conventional way, Mobile. mLearning is an area of interesting research, and I hope that this project will provide a gateway into further research on the subject. Some of the ideas I'll write here aren't actually within the scope of my FYP, though they are ideas I don't want to lose track of.
Upon meeting with WAGGGS I quickly discovered that many of the potential issues with creating a mobile application for such a global reach was very similar to the issues we had discovered whilst working on our Imagine Cup project. Chiefly signal and availability.
The idea is not to just provide the educational content itself, but to create a means of engagement with the user. The plan is to achieve this through quizzes on the device. The idea of these is that they'll serve as a top up to the courses as a whole.
WAGGGS have a non-conventional educational style, I hope to be able to add to that through the implementation of my final year project through the power of Mobile Computing. With smartphones being increasingly common and application usage being popular amongst the majority of users it makes sense for education to reach into this market.
Currently I plan on creating a mobile application on the Android platform which consumes a service provided by a Ruby on Rails server. Initially I had planned that a user would log in through this to track their progress and potentially have an achievement system much like that of the Khan Academy and other platforms like the Xbox 360. This was intended to increase the frequency of application uses and encourage the engagement. But since then it was deemed that the users would already be sufficiently motivated to learn through the choice of adopting the subject.
I intend for the server to be open sourced at the end of the project. So that a community, and hopefully myself, can maintain it and begin to create content for a variety of subjects. So through adopting MVC hopefully the web client will be as functional as the mobile client, whilst also maintaining the ability to consume it on a mobile device for a large variety of subject areas. This will hopefully result in a branch of a pedagogy within mLearning.
WAGGGS have specific needs for their mobile application, so this is what will take a high priority to begin with. Provided I manage to stay on track I imagine that some segments may be useful to release to jump start development in the future. Specifically, I would like to allow the application to download certain materials for later consumption and store it locally on the device. In large areas of their target demographic.
I'm planning on implementing a RESTful HTTP service on the server. I have deadlines with regard to a mobile application to reach first. Theoretically, it is possible for there to be no need for a web service, and time constraints may lead to full adoption of a mobile platform. But this is not something I desire as I see mobile computing being just as much about web services as it is applications running on the hardware itself.
I hope to keep the blog up to date with any major headway I make. Currently my web server has implemented user authentication and password resets, but there is no way for a user to change this whilst logged in - I intend to add this at a later date as functionality is there.
The server itself is also the web client. As such, I'm implementing it all together. Thankfully with Ruby on Rails this has proven to be simple so far. I'm beginning with utilising Twitter's Bootstrap for my CSS styling. Though I may later change this or customise it specifically for WAGGGS. Though currently I don't see too much of an issue with it as it stands.
The Android application is currently full of hard coded values (with dynamic functionality), but I'm gradually learning about the basics of the platform. Once that is underway the back end should be fairly simple to make changes to to ensure that it is dynamic and queries a local SQLite Database. I also have no Android device. So all of this is being developed on an emulator at this current point in time. I would greatly appreciate donation of a device for development - it would hope that it would speed up the use of the application I'm developing. As great as a mouse is, it's no touch screen!
I've already put a lot of planning into it and design of the system. Though, admittedly, not the visual design of the applications. I'm excited at the prospect of working on the implementation of this project over the coming months. Provided I can get my head around the concepts I hope that my planning proves to be useful and correct. If all goes well I may pursue developing an application on another mobile platform; Windows Phone 7 - mainly as this is completely free and through the UK MSP scheme I should have a device to test on.