辅导案例-CSCU9YH

CSCU9YH Project 2020 1
University of Stirling
Computing Science and Mathematics
CSCU9YH

Project – Unit Conversion App


The Android Project is about a Unit Conversion application. There will be a lab sheet to help you
on your way with a skeleton application. However, you are expected to add further functionality
to this for this assignment.
In brief, the application is an app to convert between different units (distances, weights, speeds
etc). The app will have two screens, one for selecting the two units to convert between, and the
other to actually carry out the conversion. You might have other ideas of how to structure the UI
of the app, however, this split between the two screens is mandatory for this assignment.

The two screens are to be implemented using Fragments within an Activity. Before you
continue with working on the tasks in this handout make sure you have completed the lab
on the YH Project (on fragments).

In previous labs you have created Activities, databases, a basic GUI, and in the project lab
Fragments.

The project should include the following functionality:

 The first screen should allow the user to select the two units in a user friendly way,
ideally using a spinner or even picker.
 The second screen is expected to look a bit like a calculator allowing the user to type in a
value for the conversion. There should also be a button to clear any previous input and
perhaps a second button to initiate the conversion. However, you may also consider
implementing automatic conversion as the user types in the value.
 The second screen should also state what units were selected on the first page.

At the most basic level, your application should:
 Support two fragments
 Be able to accept user input for the given unit and the target unit (on the first fragment),
as well as a numeric value for the conversion (on the second fragment).
 Convert the value into the target unit
 Offer a fixed set of at least four unit conversions (e.g. meter to yards, miles to yards,
grams to ounces, kilograms to pounds).

Further functionality and refinement
The functionality listed above is what is expected of a basic app. However, for additional credit
you can refine your application further. Rather than hardcoding the four conversions, you may
consider using persistent storage for this data. You may also extend your application in such a
CSCU9YH Project 2020 2
way that the types of conversions your app can do is extendible (but restrict yourself to simple
conversions involving a single multiplier). Introducing categories of units (distance, weight,
speed etc) will allow users to select the units more easily as the number of conversions offered
grows. A common feature many users expect is that the app also works correctly when the screen
is rotated and that the app also works nicely on larger screens, e.g. tablets. However, you may
also have your own ideas for refinement of the app.

How to begin
Start a new project and give it an appropriate name, such as UnitConv. Start with a minimal
application and make sure that it runs and works correctly. Then build up the application in small
iterative steps, making sure that it compiles and runs as expected after each step. Take backups!

Submission Instructions
The deadline for handing this project is 10am, Monday, 30th November 2020. Separately, you
will be asked to demonstrate your solution to the given problem. Demonstrations will take place
during the lab sessions on Monday 30th November (to be confirmed). For the submission you
should prepare a single document which includes a report discussing the problem, any
assumptions you made, and your solution, as well as the full code listings of your program code
(kotlin/java classes, resources xml files) as an appendix. Separately, you are asked to submit to
Canvas a zipped copy of your Android Studio project (please clean your project of any
compiled files before zipping it up (see Android Studio menu Project/Clean Project).
For the report, make sure the source code is formatted appropriately and is readable. Your report
should present your solution and discuss the structure of your app, key features, and UI design.
The report should include appropriate diagrams of the design and screen shots of your
application. The report also should provide details as to how complete your solution is, any
additional functionality you have implemented, and if applicable, any special cases when your
program is not working correctly. Make sure your report is laid out nicely and looks
professional. Your report should be critical and reflective in nature. You may want to discuss
alternative approaches to implementing certain functionality. Are there better ways to implement
features, but you have not used these (e.g. due to time constraints)?

You should submit your document via Canvas. You are expected to demonstrate your solution,
so please do test out the final version. Make sure that what you submit does work in some
fashion. You can delete or comment out incomplete code before submission.

It is important that your program code is thoroughly and intelligently commented. You will
lose marks if the code is not sufficiently and usefully commented! Remember, do not state the
obvious. Good comments explain the use of variables and methods/classes, and why certain
values are assigned.

In short, your project consists of:
- a report discussing your solution, including your program code with comments, and a
cover sheet giving your student number,
- a zipped copy of the cleaned Android Studio project
- a demo of your solution.

CSCU9YH Project 2020 3
Plagiarism
Work which is submitted for assessment must be your own work. Students are encouraged to
share ideas. However, each student must individually code their own assignments. Source code
will be checked and tested to verify individual work. All students should note that the University
has a formal policy on plagiarism which can be found at
http://www.stir.ac.uk/academicpolicy/handbook/assessment/#q-8.
Plagiarism means presenting the work of others as though it were your own. The University
takes a very serious view of plagiarism, and the penalties can be severe. Specific guidance in
relation to Computing Science assignments may be found in the Computing Science Student
Handbook.
We check submissions carefully for evidence of plagiarism, and pursue the cases found.
Penalties range from a reduced grade, through a grade 5 for the module, to being required to
withdraw from studies.

Assessment Criteria
In this assignment we shall be assessing your work with respect to various criteria, the most
important of which are:
 Correctness of operation
 Appropriate use of programming constructs
 Intelligent code comments
 Clear and comprehensive report
 Consistency, legibility and tidiness of program layout

The marks for the project count for 90% of the module grade with the remaining 10% being
allocated to the lab checkpoints. The split for the project is as follows: report (30%) and the
implemented functionality in code (70%). The Code component in turn is made up of basic
functionality (40%), advanced features (40%) and code comments (20%). Advanced features
include facilities to extend the conversions from the basic four: adding unit categories, more user
friendly schemes to select the units: e.g. a spinner; enable phone re-orientation so that the app is
viewable in portrait and landscape mode without data loss, adding additional conversions and
their storage.


Late submission
If you cannot meet the assignment hand in deadline and have good cause, please see Dr Mario
Kolberg to explain the situation and ask for an extension. Submissions will be accepted up to
seven days after the hand in deadline (or expiry of any agreed extension), with the mark being
lowered by three points per day. After seven days the work will be deemed a non-submission and
will receive an X (no grade).

Backups: You are advised to make backup copies of your work regularly.


欢迎咨询51作业君
51作业君 51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: ITCSdaixie