Assignment 11: Trickiest Parts of Project and Half-way Done
This is a team assignment.
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. Significant 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 and enough information to determine how they go together
- Documents with all necessary content (including a description of all sounds or TTS that must be generated/programmed)
- 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 app should then have 9 buttons: About, Generate Error, Sudoku, Dictionary, Word Game, Communication, Two Player Word Game, Trickiest Part, and Quit. 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.
This is a team assignment so you should pick which student's Bitbucket will be used for the rest of the course by the team and then use that (let's call it the primary Bitbucket). The non-primary Bitbucket only needs updating to add the new buttons for this assignment and the final project assignment. We will test by installing BOTH student assignments on the phone for each team.
Hand-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.
- Indicate which student's repository and Bitbucket are being used for actual development.
- Your updated app on the Play Store (alpha version).
- Your updated Git repository on Bitbucket.
One member of each team should send an email with subject line "Assignment11". Name the PDF file [TeamMember1FirstName][TeamMember1LastName][TeamMember2FirstName][TeamMember2LastName].assign11.pdf and send to both the TAs and ...@neu.edu.
Evaluation/feedback:
Based on the submitted mateirals, 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; Trickiest Part app crashing or unconvincing; Serious concerns about ability of team to pull off final project
- F: Not submitted