CS 311 Algorithms and Complexity
Spring 2007
Programming Project 2
For this project you are to implement and test a class that represents a directed graph.
There are two main activities for this project:
The net.datastructures package does not have a directed graph class. Your mission is to write the class AdjacencyListDirectedGraph that implements the DirectedGraph interface. This will require some thought.
The Design and develop a test suite to test the methods of your class. It is good practice to develop your testers before developing the code. Use JUnit to implement your testers. It is up to you to determine what constitute a good set of test cases, but each method should be thoroughly tested.
In addition to your earlier prediction, answer the following questions in a file called memo.doc. Each individual must write their own memo.doc. Explain your answers.
1. Write a report explaining your test cases and how they test the methods of your class. Explain how your set of testers covers all methods and handles important cases.
2. If you worked in a pair:
a. Describe your contribution to the project.
b. Describe your partner’s contribution to the project.
By the due date and time, zip and email me a directory that contains any files you want me to consider. This directory should have in it:
·
memo.doc
·
AdjacencyListDirectedGraph.java
·
Your JUnit testers
·
Any other java files you want us to
consider
I will use the following rubric to assess your work on this project:
|
Attribute |
Advanced |
Proficient |
Needs
Improvement |
Maximum
Pts |
|
Behavior |
||||
|
AdjacencyListDirectedGraph |
Correctly
implements all the methods of the interface. |
Mostly correctly implements the methods of
the interface. |
A number
of flaws or incorrectly implemented methods. |
15 |
|
Testers |
Thoroughly
tests all methods. |
Tests all methods.. |
Does not
test all methods |
15 |
|
Design
& Code |
||||
|
Design |
Logical
design. |
A few
design flaws present. |
Many
design flaws present. |
5 |
|
Code
style |
Uses good
code style. Code is mostly
self-documenting. Javadoc comments for
each class and method. |
Mostly
correct with some comments. |
Mostly not
correct. Poor code style. |
5 |
|
memo.txt |
||||
|
Question
1 |
Correct and clear
explanation. |
Correct and mostly clear
explanation. |
Incorrect analysis and/or
unintelligible explanation. |
5 |
|
Grammar
and style |
Well written. No obvious
grammar or punctuation errors. A pleasure to read. |
A few grammatical errors
such as punctuation or spelling, although most errors do not interfere
with the overall message or the substance of the text. |
May grammatical errors
including punctuation, spelling or usage problems. |
5 |
|
Total |
50 |
|||