Grading Rubric (Checklist)

advertisement
:
Category
Mistake
Penalty
Implementing the ListOfTickets class
Remove: Don’t create a new object just to remove the first one in the list.
Instead, return the object that’s already there
-5
This looks basically good, except that you’ve got lots of duplicated code. If
the ListOfTickets were to manage a single list then Helpdesk could create
two of them and it could ‘route’ actions to the appropriate queue. Try
refactoring your code to do this – it’ll end up much cleaner!
-10
Looks good, overall
Implementing the Helpdesk class
Have AddTicket(string x,Priority p) just call AddTicket(Ticket t) (to avoid
duplicating code)
-3
Very nice work – it’s very clean and clear.
It might be nicer to have a separate class to manage a queue of tickets, so that
instead of duplicating code for the high / low priority cases you can just
have the CHelpdesk class call the right method on the right queue.
Definitely don’t worry about doing a revision, but it’s something to think
about
Correctness
Make the Priority an enum, not a class.
-3
Technically, you’ve implemented a stack, not a queue, of tickets
-22
Make sure to properly encapsulate all your classes – all data fields should be
Maintainability
marked private (normally), or public/protected (if you’ve got a good
reason)
-3
Maintainability
Make sure to properly encapsulate all your classes – instead of using public
data fields, using private ones, with accessor properties and/or accessor
methods (for example, on the LinkedListNode class).
-3
(Failure to
abide by the
restrictions set
forth in the
assignment)
You should be able to modify the linked list class so that removing a ticket is a
O(1) operation. Put in a comment explaining the running time of your
current implementation, then fix it so it's O(1)
In order to do this, you may need to maintain a reference to the last item in the
list
-15
(Failure to
abide by the
restrictions set
forth in the
assignment)
You should be able to modify the linked list class so that adding a ticket is a
O(1) operation. Put in a comment explaining the running time of your
current implementation, then fix it so it's O(1)
In order to do this, you may need to maintain a reference to the last item in the
list
-15
You’ve got two versions of Helpdesk.AddTicket, which is fine. Figure out a
way to have one of them call the other one, so that you’re not duplicating
as much code.
-3
RemoveNextTicket (and all methods on 'utility' classes, like Helpdesk) should
never interact with the user. To do so restricts how the class can be used
(what if you wanted to use it in a different application? A WinForms
Maintainability
app? An ASP.Net app?). The whole reason to use an enum as a return
value is that we can (safely) return rich, informative info back to the caller
(not the user, who may or may not know what to do with it).
(The 'Print' methods, whose purpose is to print out data, are ok)
-7
Please include all code that was provided to you, in a form that’s easy to run.
Specifically, please include any unit tests, and set things up so that they can be
run quickly & easily.
-7
(Failure to
abide by the
restrictions set
forth in the
assignment)
Does the Helpdesk class pass all the tests listed in the Helpdesk_TEST file?
-2
(per test that
fails)
The ‘ListOfTickets_TEST’ code should be run on the JobQueue, not the
Helpdesk.
Looks good, overall
Style / Presentation
Looks good
Identify the
author of each
file
You didn't put your name, etc, at the top of EVERY source code file,
including any files given to you. (The "etc" part includes the name of this
class (“BIT 142”), and the year and quarter, and the assignment number,
including the revisionf number)
Grade (out of 130):
To calculate your grade: add up all the (-1)'s and (-6)'s and (-X)'s, to get some negative number, then take
that from the total to get your grade. For example: If the total points available for the assignment was 100,
and you had the following penalties: -3 + -6 + -6  -15, so the grade would be 100 -15 = 85.
Why do you have to do this? Because this is only version 1, and so you won't really get your 'real grade'
until you hand in the revision. Sometimes the grade on this first version appears really low (especially if
you left out a whole section), and so I want to give people feedback, but try to avoid spooking people.
Keep in mind that if you don't hand in a revision, this will be your final grade.
Note: Please note that if any of the above errors are duplicated within your code, you need to fix ALL
INSTANCES of the error, even if it's not specifically listed above, in order to get the points on the revision.
-6
Note: While the above list of errors is intended to guide your improvement of this homework, you should
realize that a given error may occur in more places than have been specifically cited here. It is your
responsibility to find all occurrences of a given error, and fix them all.
Note: Items that are 'greyed out' don't count (i.e., the item is there for informational purposes, to
preemptively give you feedback for your revision), but these don't actually represent points that you've lost.
Example of a 'greyed out' item:
You didn't do X.
(-3 )
Download