Algorithms and OOD (CSC 207 2013F) : Assignments
This assignment is currently in draft form.
Due: 10:30 p.m., Tuesday, 8 October 2013
Summary: In this assignment, you will build an Android Application that presents data from an Ushaidi server. (You will also do a simple exercise in writing loop invariants.)
Purposes: To give you more experience using the Ushahidi API. To give you more experience building Android Apps. To allow you to play a bit. (To give you some more experience with loop invariants.)
Collaboration: I encourage you to work in groups of size two or four. You may discuss this assignment with anyone, provided you credit such discussions when you submit the assignment.
Wrapper (Prologue): Individually read through this assignment and make sure that you understand what is required. Then use the form available at http://bit.ly/207hw6pro to indicate (a) how long you think this assignment will take and (b) what you think will be the most challenging aspect of this assignment.
Wrapper (Epilogue): When you are done with the assignment, fill out the form available at http://bit.ly/207hw6epi to indicate (a) how long the assignment took, (b) what the most challenging part of the assignment was, and (c) something important you learned from doing the assignment. If you find that the assignment took much less or much more time than you expected, also include (d) a note as to what might have led to that difference.
Please put all of your work in a GitHub repository named
csc207-hw6. Email me the address of that repository.
Please title your email “CSC207 2013F Assignment 6
Warning: So that this assignment is a learning experience for everyone, we may spend class time publicly critiquing your work.
Do the Dutch National Flag problem from
http://www.cs.grinnell.edu/~walker/courses/207.sp13/labs/lab-loop-inv-pic.shtml. (You'll probably need to get through Friday's class first.)
a. Create a new Android project for this assignment. You can name the project whatever you like, provided it's not in bad taste.
b. Make a copy
JAR file for the simple Ushahidi API, available at
A JAR is a Java Archive, a standard way to group compiled Java code
for use in other projects.
c. The Ushahidi API relies on JSON. (You can look it up.) Make a
copy of the JAR file for JSON, available at
d. Import those JARs into your project.
Write an Android app that allows the user to see information about the incidents on an Ushahidi installation. (You do not need to graph them; your goal is simply to present the data about the incidents.)
To start, make your app read in the URL of an Ushahidi installation (or let the user select from a few options) and print out, say, the first five incidents.
Then add features. You might, for example,
Do not feel constrained by this list. You can do anything that you think would be useful for someone interested in quickly scanning Ushahidi data.
Do not feel you have to go overboard with features. This assignment is primarily a chance for you to play with Android and to think about features that might be useful to someone using Android. If all you want to do is show five incidents, that's fine and will certainly earn you a check (provided your code is reasonable).
The Simple Ushahidi API was originally written by Daniel Torres. The overall design of the current API is due to Samuel A. Rebelsky, but much of the underlying code draws upon Mr. Torres' work.
Anything I know about Android I learned from Lea.
Copyright (c) 2013 Samuel A. Rebelsky.
This work is licensed under a Creative Commons Attribution 3.0 Unported License. To view a copy of this license, visit
or send a letter to Creative Commons, 543 Howard Street, 5th Floor,
San Francisco, California, 94105, USA.