Project 1 Grading Guideline =========================== If the project uses native C++ arrays as the data structure, award 0 points. If no makefile is submitted, award 0 points. If the project does not compile or does not run, award 0 points. (1) Paper (30 points) Section 1 - Data Structure explained [8 points] Discussion of the student's implementation of the data structure. This discussion should include what data structures were used or modified for the project, and if modified, how this modification was done and for what reasons.[4] Also a discussion of why the student chose their particular underlying structure is needed.[4] Section 2 - Algorithms explained [10 points] First, there should be a discussion of how the elements are inserted when the file is initially being read. Then, there should be a discussion of the reordering algorithm the student implemented after an element has been searched for. Each of the following scenarios should be explained: [2.5 each] (a) When two elements have the same number of searches and the same frequency, how are they sorted? (b) When two elements have the same number of searches and the different frequencies, how are they sorted? (c) When two elements have a different number of searches and the same frequency, how are they sorted? (d) When two elements have a different number of searches and different frequencies, how are they sorted? Section 3 - Efficiency [6 points] Student should express the efficiency of their structure in relation to the methods of insert[3] and find[3]. Discussion of the best case running time as well as average and worst case are important here. The project will not be judged based on running time, but incorrectly representing running time in the paper will count against you and give you no points for this section of the paper. Section 4 - There's always room for improvement [6 points] Student gives some suggestions for how to improve the structure in regards to its running time. Discussion of implementation is appropriate, but also just hypothetical scenarios is appropriate. Overall impression of paper Paper should be well-written and clear. If paper is severly lacking in grammar and flow, deduct 10 points from the points they earned above. The paper should be nicely formatted, but there are no specifics for exact formatting for this assignment. (2) User Interface (14 points) If no UI exists, award 0 points. Directions for using the UI are clear and the UI is easy to use [4 points] UI allows user to specify a file to read in [2 points] UI allows user to search for a word [2 points] UI allows user to see the contents of the data structure [2 points] Data structure is printed out in a way that is easy to see the frequency and search counts for the words [4 points] (3) Reading files and frequency counts (23 points) Program correctly reads files of following type and then gives correct output when asking to see what is stored in data structure. [1 point] Empty file [1 point] File containing 1 character (letter) [1 point] File containing 1 character (non-letter) [1 point] File containing all non-letter characters (no spaces) [1 point] File containing all non-letter characters (with spaces) [1 point] File containing 1 word [1 point] File containing 1 word and one non-letter character [1 point] File containing 1 word and multiple non-letter characters [1 point] File containting two different words [1 point] File containing two of the same word [2 points] File containing two of the same word capitalized differently [1 point] File containing many words, but no duplicates [2 points] File containing many words, some words twice at most in file [3 points] File containing many words, random number of words duplicated a random number of times [4 points] File containing many words, many non-letter characters and having a random duplication of words (4) Basic Search (9 points) [3 points] Correctly finds words that are in the structure (exact match) [3 points] Correctly finds words that are in structure (ignoring caps entered by user) [3 points] Reports correctly when word is not in structure. (5) Reordering Structure based on search (24 points) After file of arbitrary number of words of various frequencies has been read in, search for the following and look for correct behavior of the resulting structure. That is, words that are searched for more frequently should be moved to the front and words searched for with the same number of searches should be sorted using some other reasonable mechanism that the student discusses in their paper. Start with no words having been searched for. [3 points] Search for an arbitrary word - now this word is at front of the list. [3 points] Search for a second arbitrary word - this word has the same number of search counts as the first and should be the first or second element in the list depending on the student's rules about this. [3 points] Search for whichever word has ended up second, it should now be the first word in the list. [3 points] Search for the word with the greatest frequency [3 points] Search for the word with the least frequency [3 points] Search for the word with about an average frequency [3 points] Duplicate the search for a previously searched word at least two more times. [3 points] Arbitrarily pick another word, either searched before or unsearched. ****************************************************************************** EXTRA CREDIT [10 points] When selecting to read file, user has option of clearing out data structure or retaining the information and simply adding the new data into the current structure. If adding new data into current structure, all frequencies should update accordingly and search should update and work properly. ****************************************************************************** ---------------------------------------------------------------------------- Grading Breakdown - Project 1 Paper (30 possible points) You earned => Explanation (required if earned less than 30 points) User Interface (14 possible points) You earned => Explanation (required if earned less than 14 points) Reading in files/frequency counts (23 possible points) You earned => Explanation (required if earned less than 23 points) Basic Search (9 possible points) You earned => Explanation (required if earned less than 9 points) Reordering Structure based on search (24 possible points) You earned => Explanation (required if earned less than 24 points) Total on Project: EXTRA CREDIT (10 possible points) You earned => Grand total (Regular + Extra Credit) =>