The University of Aberdeen
The Computing Science Department


Exam 75% - January 2010

Exam from January 2010

Presentations

Everyone has to take part in two presentations. One goes with the demo of your assessment application, while the first is done on one of the discussion topics that alternate with the lectures. The discussion topic presentation is done with at least one other person and is NOT marked.

Assessment 25% - due Friday at end of week 12

The assessment will consist of an application as detailed below, plus a presentation done in the last week of lectures. You will also demo your application to me during a practical session in the last week of classes. The presentation will not be marked, but is useful in explaining what your app does, while the application will be 25% using the marking guide further below. For the presentation assume that you are a startup and want to show the need and value of your application. The presentation should be 5 minutes long with time for questions. The demo itself is not marked, but provides a chance for you to show me its important features.

You can do this assessment by yourself or in a pair. The number of people and their individual contributions will be taken into account when marking the assessments. If you do this as a pair, then you both have to sign and agree on your mark with this group form.

You can either do this using Sun's Java ME, Google's Android platform, iOS, or Windows Mobile if you prefer. Do be aware, however, that most of our development experience is with Java ME and Android. Nonetheless, if you want to use iOS or Windows Mobile, then we'll support you as best we can and point you towards more support wherever possible so that you have what you need to deliver the assessment work.

You can find details about getting past the proxy for Java in practical 3, and Android in practical 8.

Write a calorific counter application

Use REST to access the Tesco API to gather data about food and its calorific content to cover the usual range of food and meals that you and your parents encounter in any given month.  Using this data you should build an application for the user to record the calorific content of their daily food intake and see a record of their intake over a week. Look at programmableweb for other suitable APIs too.

The essentials for the calorie counter assessment

Create an interface that lets you select the type of food you're eating and to store the calories for each meal you have on your device, and then to show that day's calorie intake.

You should also be able to add, delete and edit favourites (or meal entries, and see a week's worth of calories) in the app. There should be 40-50 different basic foods stored in the application which can be selected for different meal combinations.

An application doing all of the above in a competent manner should receive a CAS 9.

In order to move to a CAS 12 you also need to be able to graph your daily calorific intake over several weeks or longer, or compare your planned intake against actual intake if you're using the application as part of a dietary regime.

In order to move to a CAS 15 you also need to enable the application to look up a missing calorific data at an appropriate site and add it to the ones stored on the mobile.

In order to move to a CAS 18 your application will also need to move to more interactive content from relevant sources, or integrate with a barcode scanner. This will let you scan the QR code or barcode of a food item and find its calories to add to your daily intake. One such barcode libary is ZXing, which has both Jave ME and android versions available. There are also a number of lapsed projects out there, which you can look at for ideas as well.

If you don't have a real handset to test this, then write a method that will return a string when called that provides the 'product code' that you'd have if you were able to scan a real barcode. Then use that product code to retrieve what you can from the Tesco API.

Lastly, given the issues around implementing some of this functionality I will be marking this all with a view to what people have achieved, and problems and issues encountered. Please do highlight any of these that I should be aware of in the 'readme' file that you should submit with your assessment.

Write an ACES application

The Aberdeen Centre for Environmental Sustainability (ACES) is looking for a mobile app that will unify its content from different media sources. Many of these are findable from the current site, and a better app would make this more systematic than is found on the website. For example, the mobile app should pull together such as what can be found on the current web site plus any/all of the following:

•    Latest Web 2.0 material (for staff and their work):  videos,SlideShares, Prezis, Scribd, Twitter and Facebook links

http://www.youtube.com/user/AberdeenCES

http://www.slideshare.net/AberdeenCES/

http://www.facebook.com/pages/ACES-Aberdeen-Centre-for-Environmental-Sustainability/128412697209351

http://twitter.com/#!/AberdeenCES

•    News

•    About

•    Art and music – material from conference artists in residence, RELU Sustainable Uplands song, something from Pete Stollery?

•    Learn - link to slides from key student courses linked to environmental sustainability

•    Podcasts – RELU Sustainable Uplands podcast and Mark’s People, Plants, Planning & Conservation podcast

•    Projects - summary of key projects with links to website and key resources

•    Fact of the week - snippet from ACES research with link to paper or SlideShare (prepared in advance x 52 and automatically updating every week - a file of these will be provided)

•    Policy Briefs – drawing on existing briefs from current and former ACES projects

•    International environment news feed - draw from Environment Guardian, BBC and Reuters

The essentials for the ACES assessment

Create an interface that lets you browse the materials you have on your device.

You should also be able to add, delete and edit favourites.

An application doing all of the above in a competent manner should receive a CAS 9.

In order to move to a CAS 12 you also need to be able to create and store a list of 'facts of the week' in the app which appear each week. As this file never turned up use the collection of items at http://www.unep.org/billiontreecampaign/FactsFigures/QandA/index.asp and under 'fast facts' and then its submenu to get a long list of items which should work for your needs. Put them into app.

In order to move to a CAS 15 you also need to enable the application to look up relevant podcasts and download them as requested for disconnected playback.

In order to move to a CAS 18 your application will also need to move to more interactive content from relevant sources, or integrate with a barcode scanner. This will let you scan the QR code or barcode of an event. One such barcode libary is ZXing, which has both Jave ME and android versions available. There are also a number of lapsed projects out there, which you can look at for ideas as well.

If you don't have a real handset to test this, then write a method that will return a string when called that provides the 'product code' that you'd have if you were able to scan a real barcode. Then use that product code to retrieve what you can from the Tesco API.

Lastly, given the issues around implementing some of this functionality I will be marking this all with a view to what people have achieved, and problems and issues encountered. Please do highlight any of these that I should be aware of in the 'readme' file that you should submit with your assessment.

Write a pub | cinema | restaurant | cafe | museum, etc finding and reviewing tool.

Use REST or some other means to gather a sizable  list of appropriate places for Aberdeen, or some other city with details of name, address, and other appropriate attributes. This should include at least 40 or 50 items so that you can show the breadth of variety of places for your topic. Look at programmableweb for APIs such as Yelp so that you don't need to create a mobile web site for your application.

You need to get your topic approved by Bruce before proceeding.

The essentials for the pub/cinema/etc assessment

Create an interface that lets you store the places on your device, and to then add a review of the site. Part of this should be a rating system of 1-5 stars, and you should be able to show the top five entries.

You should also be able to add, delete and edit entries, as well as search for a specific place.

An application doing all of the above in a competent manner should receive a CAS 9.

In order to move to a CAS 12 you also need to be able to send an entry to someone else using bluetooth or SMS as appropriate for your platform.

In order to move to a CAS 15 you also need to enable the application to look up a missing pub | cinema | restaurant | cafe | museum at an appropriate site and add it to the ones stored on the mobile.

In order to move to a CAS 18 your application will also need to show directions from your current location to the place to visit.

There are several options to to do this: either use the maps returned from Google in a browser inside your midlet, or repurpose the map tiles returned from Google, etc. (rememeber you can use Yahoo, or others too), but this is more complicated.

This will involve converting the basic web based Google Map API for directions into a Java ME (or Android) friendly version that you can then display in your application. The results that you want to use, can be done as with the demo, and works if you provide info as town, country (city, state) for start and finish.

Ok, if that doesn't work very well, then you can look at J2MEMAP, which is a library that you can use to integrate mapping capabilities into Java ME applications. Rather than all of you signing up for a login there, you can download the jar (yes, it is the latest version) locally from within csd.

Lastly, given the issues around implementing some of this functionality I will be marking this all with a view to what people have achieved, and problems and issues encountered. Please do highlight any of these that I should be aware of in the 'readme' file that you should submit with your assessment.

Marking Guide

This marking guide has arrived later than intended. This should be used as a checklist of what's above. If you see anything that is unclear, then do speak to me. Where you see items that offer space for comment, such as 'search for a place   yes  []  other [] ________________ ', then this means: 'can the user search for a place?, yes/no, and what other possibilities have they offered?' This does not mean that you have to do more, only that I'm assuming that you've might have thought up variations that are suitable, which I'll need to account for on the form.


Submission details

Create a 'readme' file that says what the application does, and what features I should see, plus, as noted above, highlight any problems or other issues that I should know about with the assessment. Put this file in the project directory so that it's included in the zip file submitted.

Create a zip file of the project directory for your appliction. This should be everything in the directory holding the project in Eclipse. 

Email me the zip file by the deadline.