COMP2500 - assignment1 - CECS - ANU Skip navigation Computer Science Courses ANU College of Engineering & Computer Science EXPLORE ANU » Home About Study Research Giving Alumni Current students Staff News Events Maps Library Jobs ANU College of Arts & Social Sciences ANU College of Asia & the Pacific ANU College of Business & Economics ANU College of Engineering & Computer Science ANU College of Law ANU College of Medicine, Biology & Environment ANU College of Physical & Mathematical Sciences » more academic areas A-Z INDEX » A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Search query Search button Computer Science Courses ANU College of Engineering & Computer Science Computer Science Courses School of Computer Science Current students Courses list COMP2500 Home Schedule Lecture Notes Assignments Labs/Tutorials Old Exams Marks and Lab registration Announcements Discussion People Related sites Wattle Forums ANU College of Engineering & Computer Science Current students (ANU) COMP 2100/2500/6442: Assignment 1 Objective - An Android app for taking notes The objective of this assignment is to gain experience in the design and implementation of a substantial Android application that must allow users to create, save, edit and delete text-only notes. This assignment will provide valuable practice in Java programming along with designing aspects of a dynamic GUI application. Gaining expertise in the use of a variety of development tools such as git, and Android Studio is also an outcome to expect from a successful completion of this assignment. During the course of this assignment and upon completion, students should reflect on the overall design and the software engineering process that was used throughout. Most students should be able to complete the criteria to obtain a pass or credit mark for this assignment within 10 hours (spread out over a number of weeks). Minimal Requirements/Constraints This assignment involves developing a note-taking app. At a minimum, a user of this app must be able to: Create a text-only note Save a newly created note. The saved note should persist between successive runs of the app i.e. after exiting and restarting the app and restarting the device it is being run on Open and view saved notes Edit notes that are opened, and save the changes. Saved edits should persist between successive runs of the app Delete saved notes This application must be implemented in Java (and XML UI layouts as required) using the Android framework. A mimimum SDK version of 15 should be used. More feature additions to the app are encouraged. However, with such additions, the app must still sit within what one would consider an app for taking notes. The application must be your own original work and all source files must contain authorship details - if code from other sources is used, it must be appropriately referenced. Using external libraries is permitted. However, only external libraries that have a non-commercial (preferably creative commons) license are permitted to be used. No commercial (i.e. ones that have to be purchased to be used) libraries are permitted. Any use of external libraries must be attributed and properly referenced. It must be made clear that they are not the intellectual contribution of the student. The CECS gitlab server must be used for the development and submission of this assignment. The project must be named "COMPXXXX Assignment 1 2016" (XXXX is one of 2100, 2500, or 6442). It must be made private. The lecturers (Eric McCreath, Gaurav Mitra) and your tutor must be added as "Reporter" to the project. Students must be able to explain, modify (if asked to) and demonstrate features of your app during lab demonstration held in Week 7. COMP6442 students must also have used JUnit testing on some part of their implementation. Aspects Needed to Gain a Credit mark or above In addition to the basic requirements, you MUST also include ALL of the elements listed below: There must be a history of commits/pushes to the CECS git lab server (https://gitlab.cecs.anu.edu.au). The commits should at least have been made over a 3 week period i.e. all code cannot just be pushed to gitlab an hour before it is due. Issues and milestones must be used on gitlab to help with project planning, design and implementation. Adequate design documentation including a UML diagram must be provided in the gitlab project wiki. It does not need to be particular long. One or two pages is adequate. A testing plan summary for the application must be provided and JUint testing must have been used on some part of the implementation. The testing summary document should be about 1 page long and must be in the gitlab project wiki. Good design principles should have been used to structure the UI elements Source code must be well formatted and commented. The app's UI is well designed and easy to use. The app includes at least one extension feature. (A list of possible extensions is provided below). Possible Extensions Add an options menu to each note, that displays possible actions that can be applied to a note Ability to embed images into notes Add bold, underlined and italics text to a note Search text within notes Share notes via email or Facebook Create along with notes Check (tick-mark) items on to-do lists Add background colours to individual notes Add labels to notes. When a label is selected, all notes marked with that label must show Use Android camera to take a picture and embed it directly into a note Store note revision history - keep a record of the changes made to a note Undo changes made to a note View content of multiple notes on app home screen Dynamically re-sizing views of individual notes based on the content Support working in both Landscape and Portrait mode Have a separate widget to add to the home screen for quickly viewing notes Any other ideas welcome! Be creative! Submission/Lab Demonstration The git repository will be cloned after Monday 23:59 Week 7 (28/3/2016) for marking purposes. Students must be present and demonstrate their assignment in regular lab sessions of Week 7. At the beginning of the lab demonstration, students will be asked to make a minor modification/addition to the app (these modifications will be unknown to students prior to the lab session). This should take most students only 5 or 10 minutes to complete. The aim of this is to evaluate a students understanding of the project, to evaluate the ability to use the development tools, and also to give some insight into the design/implementation of the student's app. Modifications made to the code must be demonstrated using git. During the lab demonstration, the working app must be shown to the examiner in one of two ways: Using an Android Virtual Device (AVD) on a lab machine or personal laptop Using an Android smartphone. However, students will have to compile the app on a laptop or lab computer and push it to the phone in front of the examiner before opening the app on the phone for demonstration. This is the preferred method. Students must then demonstrate any extension features that have been implemented, and also provide an overview of the overall design, implementation and testing approach. The examiner may ask a student to explain/justify different aspects of the app's implementation. This will also be an opportunity to obtain some feedback on the assignment. Late Submission Late submissions will not be accepted (except in exceptional situations - such cases will require formal special consideration forms to be completed along with supporting documentation for the reason for consideration). Individual Assignment This is an individual assignment. Students may help each out. However, the final submission must be original and your own work. Students must take care not to give parts of their solution to others. Assessment This assignment will be marked out of 10. ALL of the minimum requirements/constraints stated above MUST be completed to gain a pass mark (5 or above). In addition to the minimum requirements, all of the items listed in aspects needed to gain a credit or above, MUST be completed to gain a credit mark (6 or above). For marks awarded between 6 to 10, the guidelines given below will be used by the examiner. The expectation for each mark range also requires that the lower mark range expectations be met. Mark Range 6 7 8-10 Demonstration A working version of the app is demonstrated A clear overview of the project is provided and the student is able to answer questions asked relating to the project The demo goes smoothly and the student is able to explain and justify the approach taken Modification/Addition (during Week 7 demo) The requested modification/addition to the app works Student is able to complete the modification/addition in a reasonable amount of time Student is able to explain the approach taken to do the modification and it is robust and well designed/implemented Design An appropriate design approach was taken and a good summary of the design was provided on the project wiki The design is good in terms of OO aspects, cohesion, and coupling One is able to make additions to the project without major redesign or major modification (extensibility) Implementation/Coding Code is consistently formatted and appropriately commented. Authorship and licence details are included in each source file Variable, function, class names are well chosen; Android framework elements are appropriately used; exceptions and error cases are checked/considered Code is robust Testing A clear testing summary is provided in the wiki and JUnit testing is done on some aspects of the project Unit testing (using JUint) is done on the majority of the project. This should be both black box and white box testing. Some integration testing on your system is done. This can be manual. The tests completed should be documented and repeatable Include some automated integration testing Documentation/wiki All the required documents are included (design and testing) Documentation is clear, concise, complete, and well formatted Documents include comments of analysis and reflection that show the has mastered aspects of the project Use of git Consistent and appropriate use of git has been made over the period of the assignment During the demonstration, the differences between the submitted assignment code and that of modification/addition made during the demonstration is shown using git. Issues and milestones were used for planning and management of the project Comments in git commits, gitlab issues and milestones are appropriate and helpful GUI The GUI works and is simple to use The GUI is well designed, has menus and dialogs as appropriate Student is able to explain/justify the GUI layout and approach. GUI is efficient (in terms of minimizing user time to take notes), easy to use/learn, and able to work well/adapt to a variety of different devices Extension aspects A simple extension is added and it works well A more difficult extension is implemented and works well A complex extension is completed Most students should (and hopefully will) be able to gain a mark between 6 to 8 for this assignment. It is mainly a matter of completing the required tasks and checking that all the requirements/constraints in this document are covered. A mark of 9 will require all bases to be covered while features of the assignment must be in the 8-10 section of the guidelines in all of the categories; and be exceptionally good in one or two aspects of the assignment. A mark of 10 will only be given for an exceptionally outstanding project. Updated: 20 May 2016 / Responsible Officer: JavaScript must be enabled to display this email address. / Page Contact: JavaScript must be enabled to display this email address. / Powered by: Snorkel 1.4 Contact ANU Campus Map Copyright Disclaimer Privacy Freedom of Information +61 2 6125 5111 The Australian National University, Canberra CRICOS Provider : 00120C ABN : 52 234 063 906