341 - Bioinformatics Android Coursework: 1 Important
341 - Bioinformatics Android Coursework: 1 Important
341 - Bioinformatics Android Coursework: 1 Important
Important
This coursework must be submitted electronically via CATE. This coursework is intended for groups of 4. Each group must contain at least one Computing student, and at least one Bio-Engineering student. Please ensure you give yourself plenty of time to do the coursework starting in advance of the deadline. This will give you plenty of time to raise any questions in tutorials or via email. The deadline for app proposals is Friday the 17th of February at 3pm. The deadline for submission is Friday the 9th of March at 3pm. Apps will be entered into a competition, with the winning team being announced at the nal lecture of the term. Also, the winning team will be invited into Google for a lunch, get a small Google gift bag there and have lunch with some engineers from the Android team.
Coursework
The aim of this coursework is to write an Android app, which relates to Bioinformatics. This can be related to what you have covered in lectures, but is not restricted to this: indeed, creativity is encouraged. Bioinformatics is a truly interdisciplinary research area. It takes input from Computer Science, Biology, Physics, Chemistry and other elds and attempts to combine them to intelligently analyse large datasets. Your groups have been chosen to be interdisciplinary, as this eld often requires good co-ordination between experts in these elds. Whilst Bioinformatics may not seem the most intuitive subject of an Android app, many of the problems you will encounter in writing this app are common with this eld. Most notably: memory and processor power are limited on these systems.
A good app will either act as an educational tool, demonstrate a neat algorithm or be a useful laboratory aid. To do this, your groups can make use of the full range of Android features - such as tactile feedback, inter-phone communication or hardware sensors. We will provide some simple app ideas; however we feel that it would be best that your own ideas were turned into apps. However, you must clear your app proposal by emailing us rst. Once you have formed your groups, you should select a group leader, who will be responsible for communicating with us. Emails sent to us should be sent with the subject 341 - Coursework - App Proposal to 341-androidcoursework@googlegroups.com. In this email, you will briey explain the idea for your app, list who your group members are and what degree they are on. If students are unable to form groups, please email us and we will assign you to groups. A successful group will be able to make use of all its members. Biological insight will be required to produce a successful app, as well as coding ability. All group members, whatever their background, should be able to contribute to this app. We have several Android phones available for the testing of apps and you will be required to install your app and do a demonstration of the app on one of them in the presence of a tutorial helper. Numbers of phones are limited, and as such, we will be unable to hand out phones to groups. We recommend that you make use of emulation software, or your own phones if they are Android phones. However, keep in mind that your apps will be tested on the test phones available for this coursework and must be compatible with them.
Marking Scheme
There will be 110 marks available for this group coursework - however grading will be out of 100 (meaning that, for full marks, you need only get 100/110). There will also be a competition, where we shall announce the winning application development team on March 16th (the nal day of lectures). We feel that Computing students should be able to contribute to Software Engineering and Optimization, and that Bio-Engineering students will be able to most contribute to Originality and Interface design - and that all group members should be able to contribute to Functionality (details given below). You will demonstrate your app to us on our test phones in the tutorial following submission. This will ensure that you get the opportunity to show o the best features of your app.
3.1
15 marks - Originality
A good app will perform better than its competitors, or will be the rst of its kind. Novel use of interfaces and intelligent underlying concepts will receive high marks. Merely replicating what already exists will receive low marks.
3.2
20 marks - Interface
Mobile phone applications must make use of limited screen space to work. A poor interface will discourage potential users from making use of your app. High marks will be awarded for responsive, intelligently designed interfaces.
3.3
30 marks - Functionality
Your app must be fully functional. You can make use of the cleverest algorithms in the world, however if it crashes on an index-out-of-bounds error, theres really not much point to it. If the applications function is too simple, then you shall also receive low marks. High marks will be available for groups which produce an application which is not only functional, but useful.
3.4
Any applications you develop will be expected to be well engineered code. You are Imperial College students, and good software engineering is expected of you. High marks will be awarded for well engineered, well commented, code, showing an appropriate level of testing. We do not expect extremely complex design patterns - merely appropriate ones for the task.
3.5
10 marks - Optimization
Bioinformatics demands intelligent use of limited resources. Mobile apps also require intelligent use of limited resources. To gain some of the marks here, you must write clean code which does not unnecessarily use resources. To gain the highest marks, you will have actively attempted to reduce the resource footprint of your application, and will indicate (in comments), where you have attempted to do this.
Environment
For this coursework, we recommend that you use the ADT (Android Development Tools) Plugin for Eclipse. Your application must follow the following specications: Applications must be written for Android 2.3.3 Gingerbread. This is currently the most common version of Android. API level 10 should be used.
Apps should run out of the box. That is to say, whilst other APIs may be used, they must be included in the submission. To set up your set up your environment, you should do the following: 1. Download and install the Android SDK, available from: http://developer.android.com/sdk/index.html 2. Using the Android SDK Manager, install the the SDK for Android 2.3.3 (API 10). 3. Install the ADT Plugin for Eclipse.To do this, go to Help Install New Software and add https://dl-ssl.google.com/android/eclipse/ as a download site. From this site, you should be able to install the Development Tools for Android. 4. Go to Window Preferences Android and set the location you installed the 2.3.3 SDK. 5. Go to the package explorer, and create a new Android project. This should set up an example Hello World app. To run your starter app, you must rst load the Android Virtual Device Manager and create a new Android Virtual Device. We recommend using Android 2.3.3 - API Level 10 as the target. Once created, run the app as an Android Application.
4.1
Android apps are written in Java, using an XML le to describe the basic layout. Eclipse pre-generates a basic XML le, in res/layout/main.xml and provides you with simple tools for editing the le graphically. It is also possible to write parts of apps in C or C++ using the Native Development Kit - however this is not necessary for your apps. Android applications have a main thread, and can spawn any number of worker threads. The user interface runs on the main thread, and as a result, this should never be blocked. As an additional consequence, you should also make all UI calls from the UI thread. We recommend that you read: http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html which gives an in-depth description of how to do this. Android apps are distributed as APK les. Eclipse will generate this le for you as bin/yourappname.apk
You must submit your source code, your apps APK le and a short (no more than 1 page of A4) readme le via CATE. This readme will document what your app does, how to run it, and any features you feel are of particular note. Additionally, you will have to test your program with one of TAs on one of our phones after the CATE submission date.