COMP 2012H Honors Object-Oriented Programming and Data Structures

Assignment 3 Grade Appeal

Introduction

Check the Assignment 3 grade on the ZINC Online Submission System. All test case failures (if any) are stated in your submission record.

While there are multiple grading records on ZINC, only the latest one counts as the score for your submission; you can ignore other previous records. Late penalty is not yet applied on the score on ZINC.

To make an appeal for your grades, please follow the below procedure. Appeals with incomplete information and/or not following the procedure will not be processed:

  1. Read the list of common errors (see below) and carefully understand the test cases and the solution. We do not provide explanation to test cases if they are trivial.
  2. No partial credits were given for each test-case.
  3. Send an email to the TA in-charge with the subject header "COMP2012H PA3 Grade Appeal".
  4. State which test-case(s) you wish to appeal (refer to the list in the section below). Clearly state your reasoning for why your code should have passed those test-case(s). You can only appeal once for each test case.
  5. You may propose changes to your source code. Attach your code with the proposed changes in your email (pa3.zip). We will upload this to ZINC on your behalf and regrade. However, such changes are subject to a grade deduction at the discretion of the TA in-charge, proportional to the magnitude of change, with a 5% deduction being the minimum.
  6. DO NOT attach any .exe/executable file(s) in your email since we do not run your code outside ZINC.
  7. Appeal deadline is 16 November 2021 Tuesday 23:59 HKT. No late appeals will be processed.
  8. Finalized scores will be uploaded to Canvas after all appeals are processed.

Your appeal will be processed slowly. Please be patient. If you do not receive any reply or acknowledgment after 72 hours, please send the email again.

Below is a list of common errors and situations for COMP2012H assignments in general:

  • 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 have assumed them to be 0 or something specific (e.g. a very large value), your code is faulty and will get random results.
  • Retrieving values from deleted/unallocated dynamic memory, or index out-of-bounds, may not always crash your program but may give random values.
  • Compilation errors will result in 0 marks for this assignment. This should not occur as revealed test cases were already provided to test your code on ZINC. Exceptions will only be given for compilation errors that are the fault of the TA's testing code.
  • 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 though you may not encounter the error/crash when you test your program, if your program crashes during any of the test cases on ZINC, the corresponding test cases will be considered as incorrect and will receive 0 marks.
  • Runtime crashes due to the reasons above or due to timeouts (infinite loop / infinite recursion / runtime taking too long) will only be regraded if you can debug, fix, and report it in your email appeal with attached code snippet. The corresponding test-case(s) where the runtime crash occurred will still be considered as incorrect and will receive 0 marks, but you can recover your marks for the rest of the test-cases.

Resources

Notes for grading package:
  • To test it with your submission, extract this zip and copy your code to this directory. You need to copy to the correct directory. Then run make:
    
                        make
                      
    Two executable files are produced:
    • simplecity: Command line interface of SimpleCity.
    • simplecity-unit-testing: Unit testing cases of individiual functions.
  • To run memory leak check, use this Makefile and follow the instructions here. The Makefile produces an additional executable file:
    • simplecity-leak: Command line interface of SimpleCity. Also runs GCC sanitizer.

Unit Testing (76 points)

The following test cases of unit testing correspond to those listed in ZINC. You can run them by providing the test case number to simplecity-unit-testing. For example, this runs test case 10:


                  # For macOS and Linux
                  ./simplecity-unit-testing 10

                  # For Windows
                  .\simplecity-unit-testing.exe 10
                
The test cases can be found in UnitTesting.cpp in the grading package. You can search for Test [test number] in UnitTesting.cpp.

Part 1: City

Tests 1-35, 2 points each.

Part 2: Building

Tests 36-41, 1 point each.

Integrated Testing (24 points)

The following test cases run the command line interface of SimpleCity with the specified input.

  • Test #42 (1 point)
    Load test-info.txt and print short information string for a clinic.
    
                  
  • Test #43 (1 point)
    Load test-info.txt and print short information string for a hospital.
    
                  
  • Test #44 (1 point)
    Load test-info.txt and print short information string for a silver mine.
    
                  
  • Test #45 (1 point)
    Load test-info.txt and print short information string for a gold mine.
    
                  
  • Test #46 (1 point)
    Load test-info.txt and print short information string for a house.
    
                  
  • Test #47 (1 point)
    Load test-info.txt and print short information string for a apartment.
    
                  
  • Test #48 (1 point)
    Load test-info.txt and print long information string for a clinic.
    
                  
  • Test #49 (1 point)
    Load test-info.txt and print long information string for a hospital.
    
                  
  • Test #50 (1 point)
    Load test-info.txt and print long information string for a silver mine.
    
                  
  • Test #51 (1 point)
    Load test-info.txt and print long information string for a gold mine.
    
                  
  • Test #52 (1 point)
    Load test-info.txt and print long information string for a house.
    
                  
  • Test #53 (1 point)
    Load test-info.txt and print long information string for a apartment.
    
                  
  • Test #54 (4 points)
    Load test-small.txt, check status and print map at various turns later.
    
                  
  • Test #55 (4 points)
    Load test-large.txt, check status and print map at various turns later.
    
                  
  • Test #56 (2 points)
    Same as Test #54 but also runs GCC sanitizer to check for memory leak.
  • Test #57 (2 points)
    Same as Test #55 but also runs GCC sanitizer to check for memory leak.
Page maintained by
Homepage