Assignment 9: Trickiest Parts of Project and Half-way Done
This is a TEAM assignment due Sat Mar 30 at end of day.
The purpose of this assignment
is to help you make progress on your final project. Your goal is to develop the trickiest parts of your final project app and make a convincing case that your application is half way to completion. Significcant aspects of the application must be working smoothly and robustly. For teams using sensing, this will often include the component of the app that uses sensors.
Take the following steps:
- Finalize your project idea design. The more you work out your design carefully in advance, the easier the programming will be. Just for emphasis, the more you work out your design carefully in advance, the easier the programming will be. As discussed often in class, your app design and the complexity of programming that app are linked.
- Revise or develop your entire interface on paper. The entire interface should be developed so you know exactly what you are really building. This design should include:
- Sketches of every screen in the interface
- Documents with all necessary content
- An outline of critical logic that indicates how key components of the app will work (e.g., dynamic adjustment of game play in games, dynamic adjustment of interface in response to sensing)
- Identify the part or parts of your app that are the most critical to the success of the app. These are the parts that may be tricky to program and must work smoothly and robustly for the app to be successful. For most projects, this will be the part of the app that uses the phone sensors. Often it will include the key part of the code with the tight human-app feedback loop, driven by the sensing. In some cases this will will involve obtaining and display key information (e.g., info about the city map that may or may not be easy to obtain and render). In short, this would be the part of the app design someone might look at and say, "Are you going to be able to do that?" or "Are you going to be able to make that work?" or "Is that really going to be fun?" or "Is that interaction going to be fast enough and feel right?" Setting screens, login screens, and other parts of your app that may be necessary but that you should be able to program quickly later if you have carefully designed them on paper first would NOT be included in the Trickiest Part.
- Implement the hardest parts of your app. Set it up so that when we run it, we can test it out and will feel confident that you can pull it off as the main part of your final project.
Both team members should add a new button to their apps on the Play Store: "Trickiest Part." One team member will just call the Activity in the other team member's package. Your main app will then have 6 buttons: About (with your team info), Generate Error (generates error), Quit (exits), Sudoku (runs Sudoko from Assignment 1), Boggle (runs assignment 4), Two-Player Boggle (runs assignment 7), and your new button. Do not add a new icon and launcher for this game ... It should be launched from the home screen of the same app you had for Assignment 1.
Those using sensors who do not have access to phones will probably need to come to help sessions to test on real phones.
Turn in:
- A copy of your app design. Between what you have implemented and your additional design specs, every screen that needs to be built should be described in detail.
- A paragraph or two that explains why your "Trickiest Part" app is really the trickiest part of your project and outlines the strategy you have used to pull off the coding.
- A bullet list that indicates what you have built so far and what remains, making the case that you are halfway done to an outstanding final app.
- Any information we need to understand how to test the Trickiest Part.
- List the phone models you have tested the Trickiest Part with.
- Your updated app on the Play Store.
- Your updated Git repository on Bitbucket.
Grades will be assigned as follows:
- A: Design is fully fleshed out; Trickiest Part app works and does seem to actually cover the trickiest part of the design; Team has made convincing progress on the project app
- B: Design mostly fleshed out; Trickiest Part app works but could use improvement
- C: Design has modest weaknesses; Trickiest Part app has weaknesses; Concerns about progress
- D: Design has major weaknesses; Trikiest Part app crashing or unconvincing; Serious concerns about ability of team to pull off final project
One member of each team should send an email with subject line "Assignment9". Name the PDF file [TeamMember1FirstName][TeamMember1LastName][TeamMember2FirstName][TeamMember2LastName].assign9.pdf and send to both Mansoor and ...@neu.edu.