Algorithms and OOD (CSC 207 2013F) : Assignments

Assignment 7: Doubly-Linked Lists of Ushahidi Incidents

This assignment is currently in draft form.

Due: 10:30 p.m., Wednesday, 30 October 2013

Summary: In this assignment, you will complete our doubly-linked list implementation of the ListOf interface and then use it to do some interesting things with collections of Ushahidi incidents.

Purposes: To help you better understand the implementation of lists and the list ADT. To give you more experience with predicates. To give you more experience with the Ushahidi API.

Collaboration: I encourage you to work in groups of size two or four, although you may also work alone. 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 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 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.

Submitting: Please put all of your work in a GitHub repository named csc207-hw7. Email me the address of that repository. Please title your email “CSC207 2013F Assignment 7 (Your Names)”.

Warning: So that this assignment is a learning experience for everyone, we may spend class time publicly critiquing your work.


a. Create a new project for this assignment. You can name the project whatever you like, provided it's not in bad taste.

b. Copy all of the code from the DoublyLinkedLists example.

c. Copy the normal Ushahidi code into your project, too.


1. Finish implementing doubly linked lists.

2. Write a program that does the following:

  • Reads a set of UshahidiIncidents into a list.
  • Finds the average lattitude and longitude of the incidents.
  • Extracts all incidents that are within some distance of your choice of the average lattitude/longitude.

3. Write a program that does the following:

  • Reads a set of UshahidiIncidents into a list.
  • Computes and prints some useful summary information about the incidents. You can choose what summary information to provide.

Copyright (c) 2013 Samuel A. Rebelsky.

Creative Commons License

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.