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作业君