The University of Aberdeen
The Computing Science Department

CS5087: Assessment

Two components for your assessment mark, each worth 50%

January exam

Exam from January 2010 January 2009 January 2008 January 2007 January 2006

One Application due Friday, 14 December 2012, Noon

This exercise is part of the formal assessment of the course, and the work done must be your own. You should look at the section on Cheating and Plagiarism in your student handbook.

You should do this assessment in a pair with someone. 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.

The Idea

You must build a very large application  using Open Data, which you'll find below. You should host this application inside of Amazon's Elastic Computing Cloud (EC2), with persistence provided by their Simple Storage Service (S3), or Relational Database Service (RDS). You are only limited by your own imagination and the data that you can use to populate your application.

You must work your way through the different stages of the four stages of the development process (discover, define, develop and deploy - the handout) to complete this application over the term. You will need to submit evidence in the form of a portfolio that shows you worked through all four stages on the project.

To ensure that your application will be on track for completion there are three stages you must go through for your application building process:
First, you must work out the basic idea for the app and check that it makes sense with some refinement of the idea

Whatever your application does it MUST meet several criteria:

  1. You must have at least 10,000 records in the database (or some other agreed upon number as appropriate), from which you will need to read records and write transactional data. This will force you to find and resolve the problem areas, the bottlenecks, of the application. These records need to come from one of the Open Data sources.
  2. The functionality of the application should allow a user to do these at a minimum:
    1. create an order, or account, or something that is appropriate for your site, which is written to the database
    2. browse and search the data on offer with your service, with appropriate pagination
    3. register, or otherwise use your site, and then select and place an order, or subscribe to a service at your site. 

Remember, this is a NOT a fully operational site. It is a prototype, so if some optional parts are not fully deployed, then that is ok. However, it MUST meet the criteria above at a minimum. 

Beyond this, the application could provide various other options to achieve higher marks

  1. You could use suitable programming language along with appropriate libraries to create all, or parts of, the application.
  2. You could provide a web service for your application so that others can make use of part of your application from within their own application. At a minimum they should be able to retrieve one or more records from your dataset as part of this service, and you'll need to code a sample client.
  3. You could consume another web service so that the live data from this other service is integrated into the operational functionality of your site. 
  4. You could cater for both desktop and mobile web clients to your site. This could be as simple as providing mobile stylesheets, or a mobile detection system, or a fully mobilised site using WURFL.
  5. You could deploy your application into the AWS cloud using EC2, RDS and S3.

Application Submission Guidelines:

In addition to this, it would also be nice to see a demo of your application running inside of Amazon's cloud. However, this is optional.

I want everything detailed below in one directory called 'CS5087-1_username' which you submit to me on a CD-ROM or DVD.

Inside this directory should be the following as evidence that you worked through the four process stages:

For stage one 'discover':

An empathy map, elevator pitch or something similar to set the idea and its audience in place.

For stage two 'define':

Some paper prototypes and their revisions, or a storyboard and its revisions to show how the idea was clarified and refined to suit your audience better.

For stage three 'develop':

Send me an invite for the private code repository on Heroku for ruby, python, java, closure, scala, or node.js apps, or AppHarbor for .NET, and for the code on BitBucket where you can manage the code base more efficiently and track bugs, and put up documentation. All of this means that I can watch the codebase grow.

  1. a clone of the source code plus any artifacts that were not included in the codebase, but were needed at run time such as images and similar files.

  2.  a file of the structure and sample data dump from the database

  3.  a readme file explaining what your application does and any appropriate usernames or passwords that I need to use the site.

  4. details of how you chained the workflow together between Heroku/Appharbor and BitBucket to  AWS.

  5. PDF copies of the different documents that you produced describing your application in the different stages.

For stage four 'deploy':

A report of how your full deployment process from simple deployment to Heroku/AppHarbor changed over time to include AWS components and and any testing stages you also integrated with Jenkins / Hudson, or CloudBees for continous integration in the cloud.

All of this must be submited to me on a CD-ROM or DVD by the deadline along with the group form if required.

Assessment Criteria: Marking Guide

I expect to see all of the components listed above. I also expect that I can run what you submit. 

The greater the sophistication and use of these compenents noted above with respect to the overall website, the better the mark. As a guide to what qualifies for which CAS mark I offer the following:

CAS 9 (a pass) - all four steps are covered in a basic workable manner, and the code is not developed much, and there's a simple website design.

CAS 12 - All four steps are completed better for a workable website using each of the technological criteria, with more code reused whenever possible, as a better design (model-view-controller) with appropriate design pattern components for the language you choose to use.

CAS 15 - All four steps are completed well and you have a well-designed website with extensive reuse,  along with one of the following (a) deploying your application using a suitable framework, or (b) consuming web services, or (c) exposing part of your application using web services, or (d) providing mobile content for your site, or (e) deploy your application in Amazon's cloud with EC2 and/or RDS.

CAS 18 - All four steps are well completed, and you have the successful deployment of four of the five optional features. 

As you can see, the more effective the site design, architecture and programming, and the more effort put into deploying a wide variety of appropriate components, the better the mark should be. You can also see more about the Common Assessment Scale (CAS) in the handbook.

Open Data Sources

Network Rail Data

The Guardian Open Platform

Real-Time Earthquake Lists

British National Bibliography dataset

The Data Hub has lots of data - some is not open, worth a look though.

Open Data Communities

The Million Song Dataset

Wikipedia Database Download. 35GB, just a warning.

Open Corporates

Met Office Datapoint

HM Government Olympic Communication Newsroom

Athlete Data from the BBC.

BBC Programme data - Ads .json, .XML, .rdf for metadata on most pages

A useful list of data sources

Species data from London Zoological Society (csv file download) SQL dump file

NHS / Health Data

Environmental data from