Assignments

Each student should individually complete two evaluations and two coding labs:

Assignment

Description

 

c1

Lab 1

NotePad

c2

Lab 2

MapsDemo

 

e1

Checkout

Any store’s automated checkout 

e2

Web app

Discussion forums

 

Coding Labs

In preparation for the labs, please go through the guide to get started with Android.

Lab 1

Create a new Android project on Eclipse from the NotePad code sample. Run NotePad to become familiar with the app.

1-  In EditNote, add a menu option to associate a date with the note. (Click on menu button to pop up the menu)
You should not change neither of onCreateOptionsMenu or onPrepareOptionsMenu methods
.

Hint: Consider modifying the manifest.

2-  Associate an Intent with the menu option created in (1), and create a new activity EditDate that will process that Intent.

Hint: Read about intents at http://developer.android.com/guide/topics/intents/intents-filters.html.

3-  Associate a floating window layout with EditDate (similar to EditTitle) with a field where users insert a date.
As done with EditTitle, use the res.values.strings.xml file to store any labels that appear in the window for EditDate.

4-  In the menu that appears in NotesList when a note is selected, add an option associated to the same intent created in (2).

5-  Add the date to the NotePadProvider, so that it gets saved into SQLite.

Hint: Read about content providers http://developer.android.com/guide/topics/providers/content-providers.html

You may want to drop the tables to clean the database, or you may get a null pointer exception when you try to access the new column on old records.

6-  Change the layout in NotesList so that the date appears to the right of each note title - truncate the view of the title, if needed.

Hint: This can be done without using Relative Layouts. You may need to completely rewrite the NoteList lay out.

When you’re done, please submit a zip file on Blackboard containing your source code and screen snapshots of the features you developed. You may resubmit at any time before the due date.

Lab 2

Create a new Android project on Eclipse from the MapsDemo code sample.  During this lab, you may want to refer to the following tutorial:

http://developer.android.com/guide/tutorials/views/hello-mapview.html

0-  An API key is necessary for viewing maps: a missing API key will cause you to see gray squares instead of a map.  Get your unique API key from http://code.google.com/android/add-ons/google-apis/mapkey.html. Paste you API key to your layout file and run the MapsDemo sample to make sure you can view the maps.

1-  Get the view associated with MapViewDemo and:
(a) set the map view to satellite view,
(b) add a zoom in and out button that appears when the user clicks on the map.

2-  Create a spinner menu with current location, plus a small number of other location names, such as home, school, etc.

Hint: Spinner menus are drop-down lists that may be given diverse looks-and-feels.  E.g., look at http://www.helloandroid.com/tutorials/tourguide-virtual-sightseeing

Description: Description: Description: Description: W:\public_html\classes\632\hw_files\image001.gif

3-  Use the LocationManager to get the lat-long pair of the current location, and define static lat-long pairs for the other locations you defined in (2).

Hint: You can simulate a GPS sensor in Eclipse by setting a “current” lat-long using the Emulator Control in the DDMS view.  To view the DDMS, click the “open perspective” button on the top right of the Eclipse window -> other -> DDMS:

Description: Description: Description: Description: W:\public_html\classes\632\hw_files\image002.gif

4-  Create method(s) that animate the map to the location that the user selects on the spinner.

5-  Get the Overlays associated to the map view.  By using Overlays, place an icon of your choice on the location navigated to in (4).

Description: Description: Description: Description: W:\public_html\classes\632\hw_files\image003.gif

6-  Draw a path from the current location to the location selected by the user on the spinner.

Hint: refer to the sample in http://stackoverflow.com/questions/2023669/j2me-android-blackberry-driving-directions-routebetween-two-locations/2023685#2023685:

Description: Description: Description: Description: W:\public_html\classes\632\hw_files\image004.gif

When you’re done, please submit zip file on Blackboard containing your source code and screen snapshots of the features you developed.

 

Evaluations

Before carrying out each evaluation, review the different usability evaluation techniques covered in class. Then make an evaluation plan for the specific evaluation, and only then perform the evaluation according to your plan.  Finally, analyze the results of your evaluation and produce a short report.

            Your report should include an executive summary of no more than one page containing your most relevant observations, followed by at most 3 pages containing tables/graphs with all the data you collected during the evaluation accompanied by your detailed comments and analysis.  Also, when you identify issues, distinguish how the hardware and the software contribute to each issue and suggest different ways to write the software for mitigating the issue.

 

Automated Checkout

Evaluate the usability of the automated checkout at a store of your choice (for example, Giant, Safeway, and Home Depot have them). You may include your own purchase experience in the evaluation but you should not limit the evaluation to that.  If you plan to stand around taking notes, you may want to talk to the manager in advance.

Web App

Think of a few common tasks you might want to carry out in a course discussion forum.  Think also, or better yet, assess the goals and skills of typical forum users, and relate to the success criteria for each of the tasks.  Once you have solid user and task models, evaluate how blackboard and piazza support those tasks.  Obtain and analyze quantitative metrics where possible.