COMP 2012H Honors Object-Oriented Programming and Data Structures

Assignment 1 Grade checking and appeal

Introduction

  1. Check your assignment 1 grade and remarks HERE. It also shows you which test cases you failed and why marks were deducted.
  2. If you want to appeal your grade, you MUST first read everything on this page, follow all the procedures, and try the test cases yourself. Your appeal will not be processed if you don't follow this rule.
  3. Uninitialized variables will have garbage (random) values in C++. Sometimes it will be 0, sometimes it will not. In that case, your program may generate different results on different machines or different runs if your logic depend on an uninitialized value. If you assumed them to be 0 or something specific (e.g. a very large value), your code is faulty and will get random results.
  4. If your function doesn't have a return statement for some cases, the returned value is undefined / can be random for those cases.
  5. Retrieving values from deleted/unallocated dynamic memory block may not always crash your program but may give random values.
  6. Runtime errors and crashes due to incorrect memory access / memory allocation / memory deallocation / missing variable initialization / missing return values / out-of-bound array access / etc. may not occur all the time on all machines. However, even you may not encounter the error/crash when you test your program, if your program crashes during any of our testing on some machine, the corresponding test cases will be considered as failed and will receive 0 marks as your code is indeed faulty.
  7. If the remarks say that your test case output is empty ("") or a potential runtime error occurred, it is very likely that a runtime error happened when we tested your program for that test case in some machine. Refer to the previous comments for possible causes. Verify your code to make sure they aren't faulty and won't produce any runtime error before you appeal those cases. Compare your solution with the sample solution yourself if needed, but please understand that it is not feasible for us to review all the assignment code of everyone to point out where all the subtle bugs are. We can run the test cases again for you (after you have verified them yourself), but all grading shall be done objectively in an automatic and consistent way. However, if your program crashed or give unreliable results, it is guaranteed that the problem is somewhere in your code, and marks will be deducted.
  8. If you passed zero test cases on some Task, it may well mean that I comment out the testing for this Task since it causes segmentation fault or gets stuck over several hours. Feel free to contact us to ensure what is your case.
  9. Our official assignment compilation environment is Eclipse and it is mentioned in the assignment instruction that "It is required that your program can be compiled and run successfully in the pre-installed Eclipse environment on our lab machines.". Also it is explicitly mentioned that "When we do the grading, we will provide our header files, grader.h, and main.cpp. Therefore, it is very important for you to make sure that your program can compile with those files in their original unmodified states."
  10. If you are certain that there is a grading mistake after reading this whole page and checking with the test cases, email to ghuac@connect.ust.hk with the following information. Appeals with incomplete information will not be processed.
    • Email subject needs to be "COMP 2012H PA1 Appeal"
    • Email body contains all of the following:
      • Your full name as shown on your student ID card
      • Your student ID number
      • Your CSD username
      • Test cases for which you want to appeal.
      • Justification and any information that is helpful for your appeal case:
        e.g. I tried the test cases 1, 3, 5 in the official assignment compilation environment (the pre-installed Eclipse in L drive on a lab machine) and my program could successfully compile, produce the exact output as the model answer without any runtime error. I have also verified that my code doesn't have any uninitialized variables, out-of-bound array access, or improper use of dynamic memory.
  11. Do not attach any .exe/executable file in the email.
  12. Appeal deadline is November 25 (Sunday) 1:00pm. No late appeals will be processed.
  13. Due to the large number of students that we have, please allow up to 48 hours for your appeal email to be processed and replied. If you do not receive a reply in 48 hours, please re-send your email.
  14. Finalized scores will be uploaded to canvas after all appeals are processed.

Marking scheme

There are total 130 test cases for 7 tasks.

  1. Task 1 has 10 tests in total.
  2. Task 2 has 20 tests in total.
  3. Task 3 has 20 tests in total.
  4. Task 4 has 20 tests in total for two subtasks.
  5. Task 5 has 20 tests in total.
  6. Task 6 has 20 tests in total.
  7. Task 7 has 20 tests in total.
One typical test example is as follows:

Task 1: input_is_valid()
------------------------
10 tests, 10 passed.

Task 2: edit_cell()
------------------------
20 tests, 18 passed.

Task 3: remove_cell()
------------------------
20 tests, 20 passed.

Task 4: gameover()
------------------------
Subtask 1: Gameover
10 tests, 10 passed.

Subtask 2: Game not over
10 tests, 10 passed.

Task 5: sudoku_solver()
------------------------
20 tests, 20 passed.

Task 6: generate_board()
------------------------
20 tests, 20 passed.

Task 7: generate_unique_puzzle() 
------------------------
20 tests, 20 passed.

------------------------
Total Score: 128 / 130 = 98.46 %

For exactly how each test case is performed, please refer to the testing main function which can be found in the next section together with the testing instructions.

Trying the test cases

  • Use our official compilation environment (i.e. Windows Eclipse in the lab machines)
  • Create a standard C++ project that uses the MinGW compiler
  • Download and extract the files in this TEST package (main.cpp,grader.h,grid.txt).
  • Add all the extracted files to the project
  • Add your own todo.cpp to the project
  • Compile and run
  • Check the output and read the code of each test case to understand what is being tested. You may find the expected output by printing out the result of the grader function for Task1-5. For Task 6-7, checking the functions valid_grid and count_solution respectively.

Read all assignment instructions again before appeal if you disagree with any of the expected output.

Sample solution

A sample solution can be downloaded in the above TEST package (see the grader.h) for your reference.

Stats (for submitted works only)

Total = 130.00; Mean = 116.54; SD = 24.49
Normalized to 100.0; Mean = 89.65; SD = 18.84

Note


We will perform plagiarism checking at a later time and marks could be adjusted for those who are caught.

Page maintained by
Homepage