100 "CS 367, Summer 2014 Programming Assignment 1" "P1" "gradeReport.html" 0 45 po "InteractiveDBTester class" 1 22 pox1 "Does not compile due to major or many minor errors" 1 22 pox2 "Program crashed immediately or failed to run" 1 15 pox3 "Does not compile due to minor error(s), which we fixed (-3/error)" 1 10 pox4 "Crashed due to a minor bug, which we fixed (-2/bug)" 1 5 pox5 "Crashed during test" 1 5 pox6 "Program failed to complete with larger input files" 1 4 poout1 "Output format not as specified" "excluding error messages for steps 1 and 2" 1 1 poout2 "Minor output format problems (e.g., a few extra commas or extra spaces)" 1 3 poout3 "Do not display debug information in submitted code" 1 4 poiter "Iterators not used where appropriate" "-4 if no iterators used in InteractiveDBTester; -3 if only used an iterator in one place in InteractiveDBTester; -2 if only used in two places" 1 2 pocomp "Comparing product id codes and customer usernames" 2 2 pocomp0 "Always case-sensitive" 2 1 pocomp1 "Not case-insensitive in one or more places" 1 2 po1 "Step 1: check command-line args" 2 2 po1x "Didn't use command-line args" 2 2 po11 "Didn't check for wrong number of command-line args" 2 1 po12 "Check for wrong number of command-line args is incorrect" 2 1 po13 "Error message not in specified format; should be 'Please provide input file as command-line argument'" 2 2 po14 "Didn't exit after determining wrong number of command-line args" 2 1 po15 "Didn't exit cleanly determining wrong number of command-line args" "For example, program crashes" 1 2 po2 "Step 2: check input file" 2 2 po2x "Didn't use input file" 2 1 po2h "Filename hardcoded" 2 1 po21 "Didn't check input file exists (or check is incorrect)" 2 1 po22 "Error message not in specified format; should be 'Error: Cannot access input file'" 2 2 po23 "Didn't exit if file didn't exist or wasn't readable" 2 1 po24 "Didn't exit cleanly if file didn't exist or wasn't readable" "For example, program crashes" 1 3 po3 "Step 3: load input file" 2 3 po3x "No code for loading datafile" 2 3 po31 "Datafile loaded incorrectly" "-3 if there are major problems with loading, -1 if minor problem(s)" 2 1 po32 "Format assumed for datafile is incorrect, but otherwise loads correctly" 1 2 cmd_d "Command option 'd'" 2 2 cmd_dx "No code for this option" 2 1 cmd_d1 "Doesn't display 'product not found' if there is no product with the given id code" 2 1 cmd_d2 "Doesn't remove the correct product" 2 1 cmd_d3 "Doesn't display 'product discontinued' if product is removed" 1 3 cmd_f "Command option 'f'" 2 3 cmd_fx "No code for this option" 2 1 cmd_f1 "Doesn't display 'customer not found' if there is no customer with the given title" 2 2 cmd_f2 "Doesn't find the correct customer" 2 1 cmd_f3 "Doesn't display the correct information if customer is found" 1 22 cmd_i "Command option 'i'" 2 5 cmd_i1 "Step 1: # customers, # products" 3 5 cmd_i1x "No code for this step" 3 2 cmd_i1s "Incorrect # of products" "-2 if always incorrect or almost always incorrect, -1 if incorrect for 1 test" 3 2 cmd_i1p "Incorrect # of customers" "-2 if always incorrect or almost always incorrect, -1 if incorrect for 1 test" 2 6 cmd_i2 "Step 2: # products/customer: most, least, average" 3 6 cmd_i2x "No code for this step" 3 2 cmd_i2m "Incorrect most" "-2 if always incorrect or almost always incorrect, -1 if incorrect for 1 test" 3 2 cmd_i2l "Incorrect least" "-2 if always incorrect or almost always incorrect, -1 if incorrect for 1 test" 3 2 cmd_i2a "Incorrect average" "-2 if always incorrect or almost always incorrect, -1 if incorrect for 1 test" 3 1 cmd_i2r "Average not rounded correctly" "-2 if always incorrect or almost always incorrect, -1 if incorrect for 1 test" 2 6 cmd_i3 "Step 3: # customers/product: most, least, average" 3 6 cmd_i3x "No code for this step" 3 2 cmd_i3m "Incorrect most" "-2 if always incorrect or almost always incorrect, -1 if incorrect for 1 test" 3 2 cmd_i3l "Incorrect least" "-2 if always incorrect or almost always incorrect, -1 if incorrect for 1 test" 3 2 cmd_i3a "Incorrect average" "-2 if always incorrect or almost always incorrect, -1 if incorrect for 1 test" 3 1 cmd_i3r "Average not rounded correctly" "-2 if always incorrect or almost always incorrect, -1 if incorrec 2 5 cmd_i4 "Step 4: most popular product" 3 4 cmd_i4x "No code for this step" 3 2 cmd_i41 "Incorrect result if there are no ties" "-2 if always incorrect or almost always incorrect, -1 if incorrect for 1 test" 3 2 cmd_i42 "Incorrect result if ties exist" "-2 if only show 1 result, -1 incorrect customers (ignoring order)" 3 1 cmd_i43 "Results of tie not shown in database order" 1 3 cmd_l "Command option 's'" 2 3 cmd_lx "No code for this option" 2 1 cmd_l1 "Doesn't display 'product not found' if there is no product with the given id code" 2 2 cmd_l2 "Doesn't find the correct product" 2 1 cmd_l3 "Doesn't display the correct information if product is found" 1 2 cmd_r "Command option 'r'" 2 2 cmd_rx "No code for this option" 2 1 cmd_r1 "Doesn't display 'customer not found' if there is no customer with the given username" 2 1 cmd_r2 "Doesn't remove the correct customer" 2 1 cmd_r3 "Doesn't display display 'customer removed' if customer is removed" 0 37 pDB "CustomerDatabase class" 1 18 pDB_x1 "Does not compile due to major or many minor errors" 1 8 pDB_x2 "Does not compile due to minor error(s), which we fixed (-2/error)" 1 8 pDB_x3 "Crashed due to a minor bug, which we fixed (-2/bug)" 1 2 pDB_1 "CustomerDatabase class extends ArrayList" 1 2 pDB_2 "Iterators not used inside CustomerDatabase class where appropriate" "Need to use an iterator in at least two places" 1 1 pDB_3 "Maximum number of customers in database is restricted" 1 3 pDB_null "Handling null parameter values" "11 places in total" 2 3 pDB_nullx "Never checked for null parameter values" 2 2 pDB_null1 "Didn't check for null in 3 or more places" "deduct 1 point if they missed 3 - 5 places; deduct 2 points if they missed 6 or more places" 1 3 pDB_exc1 "Didn't handle bad param values by throwing an exception" "For example, they printed out an error message" 1 1 pDB_exc2 "Threw wrong exception when given bad param values; should throw IllegalArgumentException" 1 2 pDB_comp "Comparing customers / products done using == instead of .equals()" 1 1 pDB_ctor "Constructor missing/incorrect" 1 2 pDB_addP "addCustomer(c)" 2 2 pDB_addPx "Missing" 2 1 pDB_addP1 "Doesn't add to the end of the CustomerDatabase" 2 1 pDB_addP2 "Doesn't just return if customer is already in database" 1 4 pDB_addS "addProduct(c, p)" 2 4 pDB_addSx "Missing" 2 1 pDB_addSe "Doesn't throw IllegalArgumentException if c is not in the database" 2 1 pDB_addS1 "Doesn't add product to customer" 2 1 pDB_addS2 "Doesn't just return if product is already in wishlist for the customer" 1 2 pDB_contP "containsCustomer(c)" 2 2 pDB_contPx "Missing" 2 1 pDB_contP1 "Doesn't return false if customer is not in database" 2 1 pDB_contP2 "Doesn't return true if customer is in database" 1 3 pDB_contS "containsProduct(p)" 2 3 pDB_contSx "Missing" 2 1 pDB_contS1 "Doesn't return false if product is not in database" 2 1 pDB_contS2 "Doesn't return true if product is in just one customer's wishlist" 2 1 pDB_contS3 "Doesn't return true if product is in every customer's wishlist" 1 3 pDB_getP "getCustomers(p)" 2 3 pDB_getPx "Missing" 2 2 pDB_getP1 "Only returns some of the customers for product p" 2 1 pDB_getP2 "Doesn't return null if product p is not in the database" 1 2 pDB_getS "getProducts(c)" 2 2 pDB_getSx "Missing" 2 1 pDB_getS1 "Doesn't return null if c is not in the database" 2 1 pDB_getS2 "Doesn't return correct list of products" 1 3 pDB_hasS "hasProduct(c, p)" 2 3 pDB_hasSx "Missing" 2 1 pDB_hasS1 "Doesn't return true if product p is in the wishlist for customer c" 2 1 pDB_hasS2 "Doesn't return false if product p is not in the list of products for customer c" 2 1 pDB_hasS3 "Doesn't return false if customer c is not in the database" 1 1 pDB_iter "iterator()" 2 1 pDB_iterx "Missing" 2 1 pDB_iter1 "Iterator returned does not behave correctly" "this is if they wrote their own iterator class" 1 3 pDB_remP "removeCustomer(c)" 2 3 pDB_remPx "Missing" 2 1 pDB_remP1 "Doesn't return false if customer is not in database" 2 1 pDB_remP2 "Doesn't return true if removal is successful" 2 1 pDB_remP3 "Removal is incorrect" 1 4 pDB_remS "removeProduct(p)" 2 4 pDB_remSx "Missing" 2 2 pDB_remS1 "Doesn't remove product p from any customer whose wishlist contains product p" 2 1 pDB_remS2 "Doesn't remove product p from every customer whose wishlist contains product p" 2 1 pDB_remS3 "Doesn't return false if product p is not in the database" 2 1 pDB_remS4 "Doesn't return true if product p is successfully removed" 2 1 pDB_remS5 "Removes customer if its list of products becomes empty after removing product p" 1 1 pDB_size "size() missing/incorrect" 0 8 design "Program design" 1 2 d1 "Customer class modified" 1 2 d2 "Additional public methods/constructors added to CustomerDatabase" "don't deduct for adding a toString method, as long as it's not used in InteractiveDBTester" 1 2 d3 "CustomerDatabase should manage data structure only (like ArrayList)" 1 2 d4 "InteractiveDBTester has code that should be done by CustomerDatabase" 1 2 d5 "InteractiveDBTester should do file input (not CustomerDatabase)" 1 2 d6 "InteractiveDBTester should do console output (not CustomerDatabase)" 1 2 d7 "InteractiveDBTester should do the code specific to the application (not CustomerDatabase)" 1 1 d8 "Excessive/unnecessary additional classes" "for example, a class containing only helper methods; don't deduct if have a class which holds a product and a list of customers" 1 2 d9 "All data members should be private for this assignment and should not be accessed directly outside the class they were declared in" 1 2 d10 "InteractiveDBTester should contain methods to do repeated tasks / break the code into chunks for readability" "At a minimum, there should be at least one method associated with the 'i' option" 0 10 style_doc "Style and Documentation" "see grading notes for comments to add" 1 10 docx "No documentation" 1 3 file1 "File name not the same as the class name (-1 per file)" 1 3 file2 "File name is incorrect (-1 per file)" 1 1 style1 "Bad Style: line up braces" 1 1 style2 "Bad Style: use vertical whitespace" 1 1 style3 "Bad Style: use horizontal whitespace" 1 1 style4 "Bad Style: indent to show level of nesting" 1 1 style5 "Bad Style: lines must not exceed 80 columns""don't deduct if 10 or fewer lines are too long, instead put in a Warning comment - see p1_notes.txt" 1 1 style6 "Bad Style: follow naming conventions" 1 1 style7 "Bad Style: use descriptive names" 1 1 comment1 "Bad Commenting: each file requires a header comment" 1 1 comment2 "Bad Commenting: each class/method requires javadoc-style comments" 1 1 comment3 "Bad Commenting: use comments in method bodies"