Assignment Objectives
After completing this assignment the student should be able to,
Demonstrate proficiency with the concepts covered in this
Assignment Requirements
For this assignment you must implement a program of your own design that demonstrates a significant number of the 9 following concepts that we have covered in this course over the semester:
Writing classes to define objects that know things and do things
Private instance variables to store things that object of this class must know
Public getter and setter methods to provide access to the things that objects of this class know and to maintain a valid state
Public methods to encapsulate the things that objects of this class must do
Private methods to support and simplify the public methods
Constructors to conveniently and consistently initialize object of this class to a valid state
Composing programs out of objects that collaborate to realize the responsibilities of the
Includes Classes/object with “has a” relationships (composition)
Includes Collections of like objects
Leveraging abstract and/or concrete base classes and/or interfaces
Includes Classes/objects with “is a” relationships
Using inheritance to extend the functionality of a base class
Using inheritance to implement the functionality of an interface
Defining and using classes with a common methods, but different (polymorphic) behavior
Overriding base class or interface methods
Explicitly calling base class constructors
Using UML to concisely describe the essential features of classes
Writing UML class diagrams that detail the classes that make up a program
Including attributes and operations
Including visibility, data types, arguments, return values,
Including relationships between classes
Choosing or implementing data structures that best meet the needs of a given problem
Includes Justifying the use or implementation of any list or tree-like data structures in your program
Leveraging generics in Java
Includes Explaining any use of Java’s standard library generic types
Includes Implementing your own generic classes or methods
Using Big-O notation to describe the algorithmic complexity of an algorithm that you are using in your program
Writing recursive algorithms
An explanation of why you are implementing a given algorithm recursively rather than iteratively
Explaining, in detail, how any recursive algorithm that you use in your program works
What is/are the base case(s)
What is/are the recursive case(s)
How does the algorithm insure that each recursive call is closer to the base case?
Choosing and using sorting algorithms
Includes Explaining why you are using or implementing any algorithms you are using in your
What to turn in
For this assignment you must upload the following files by the due date.
A .pdf file describing your project,
With list and explanation of which concepts/criteria your program demonstrate
Including how and why you project includes the application of this concept/criterion
Including how many points your project should score for this concept/criterion
All .java files that you write
Any additional files that your program requires to work
Any additional (.pdf) files that contain artifacts like UML diagrams or Big-O analysis
Any assignment submitted less than 24 hours after the posted due date will have 10 points deducted.
Any assignment submitted more than 24 hour after the posted due date will receive a zero in the grade book.
There are 150 points available in this rubric. The score for the assignment is out or 100, so a score of 100 will be full credit and anything over 100 will be extra credit.
DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of