Feature
     | 
    
    Effect on grade
     | 
  
  
    | 
    Submission guidelines | 
    
     
     | 
  
  
    |   | 
    Missing contact information on printout | 
    -2 marks | 
  
  
    |   | 
    Missing source code on printout | 
    -4 marks | 
  
  
    |   | 
    Missing README file | 
    -4 marks | 
  
  
    |   | 
    Missing electronic submission | 
    No marks will be received for 
    program functionality. | 
  
  
    |   | 
    Missing or incorrect title in the subject line of email | 
    -4 marks | 
  
  
    | 
    Program documentation (see the change making 
    program for an example of documenting a program) | 
    
    6 marks maximum
     | 
  
  
    |   | 
    High level description of what the 
    program is supposed to do | 
    1 mark | 
  
  
    |   | 
    Describes the limits 
    of the program | 
    1 mark | 
  
  
    |   | 
    Describes the 
    algorithm employed by the program | 
    2 marks | 
  
  
    |   | 
    Version number of the program | 
    1 mark | 
  
  
    |   | 
    Features implemented in this 
    version | 
    1 mark | 
  
  
    | 
    Style marks | 
    
    8 marks maximum
     | 
  
  
    |   | 
    Naming conventions (e.g., 
    variables, constants) | 
    2 marks | 
  
  
    |   | 
    Appearance and 
    whitespace | 
    2 marks | 
  
  
    |   | 
    Consistency of formatting | 
    2 marks | 
  
  
    |   | 
    Initialization of variables before 
    they are used | 
    2 marks | 
  
  
    |   | 
    Program uses global variables, 
    barring debug flags. | 
    -4 marks for all (and not each) 
    case | 
  
  
    |   | 
    Program does not 
    employ the principles of modular design e.g., program divided into functions 
    and procedures each with a clearly defined task | 
    -4 marks | 
  
  
    | 
    Program design | 
    
    2 marks maximum
     | 
  
  
    | 
      | 
    
    Structure chart | 
    
    2 marks
     | 
  
  
    | 
    Program functionality that was implemented | 
    
    40 marks maximum
     | 
  
  
    |   | 
    Introduction | 
    1 mark | 
  
  
    |   | 
    Conclusion | 
    1 mark | 
  
  
    |   | 
    Displays menu and 
    reads in the player's selection | 
    1 mark | 
  
  
    |   | 
    Declares the new type 
    'Rack' | 
    1 mark | 
  
  
    |   | 
    Declares 
    an instance of a Rack | 
    1 mark | 
  
  
    |   | 
    Debugging 
    tool is employed | 
    2 marks | 
  
  
    |   | 
    Initializes the rack | 
    8 marks maximum | 
  
  
    |   | 
      | 
    Equal probability for each letter 
    occurring (4 marks) | 
      | 
  
  
    |   | 
    OR | 
      | 
  
  
    |   | 
      | 
    Weighted probability for letter 
    occurring (8 marks) | 
      | 
  
  
    |   | 
    Displays the rack with 
    numbered bounding lines | 
    4 marks | 
  
  
    |   | 
    The player can swap 
    any pair of tiles | 
    5 marks | 
  
  
    |   | 
    The player can move a 
    range of tiles to the front | 
    8 marks | 
  
  
    |   | 
    The player can move a 
    range of tiles to the back | 
    8 marks | 
  
  
    |   | 
      | 
      | 
  
  
    
    Total marks
     | 
  
  
    | 
    ASSIGNMENT GRADE |