This penalty also applies to incomplete programs in which all or some part of the exrecise has not been implemented.
On certain occassions poor style is also penalized, where `poor style' means not using obvious simplifying features and/or using weird and/or non-standard features and/or not following the instructions specifying the way in which you are asked to solve a problem. For example, if you are asked to write a subroutine, do it. If you are asked to use recursion or to avoid recursion, proceed accordingly. Even when you are not specifically asked to follow a particular route but some conventions are implied, this penalty applies. For example, if you write the same segment of code (usually a long one) repeatedly instead of writing a subroutine for it, you will be penalized.
Finally we may sometimes emphasize on the efficiency of a program. For this introductory course formal notions of complexity are usually not considered seriously. However, some obvious sources of inefficiency might be penalized. For example, computing gcd is much faster with the standard Euclidean algorithm than the use of trial divisions. Blind use of recursion can be another prospective source of inefficiency.
Exercise-independent penalties
Penalties on Source | Penalties on Output | Miscellaneous penalties | ||||||
---|---|---|---|---|---|---|---|---|
Indentation | Verbose | Invisible input | Wide line | Late | Multiple print-out | Junk print-out | Talk/copy penalty | Dishonesty penalty |
2 (with effect from Assignment 5) | Left to the discretion of the evaluator | 5 | Left to the discretion of the evaluator and the seriousness of the information loss | `Full' or `half' of the total marks according as whether the solutions are posted in the course page at the time of submission or not. | 5 for each additional copy | 5 for each junk copy | Left to the conductors of the lab sessions | Left to the conductors of the lab sessions |
Exercise-specific penalties
Exercise | Total marks | Penalties on Source | Penalties on Output | ||
---|---|---|---|---|---|
Bad source | Documentation | Incorrect | Incomplete | ||
Assignment 1.3 | 10 | No specific guidelines | 0 | 5 | 5 (No credit for finding only one or two roots. All of the three roots must be printed.) |
Assignment 1.5 | 10 | No specific guidelines | 0 | 5 | 5 (It is necessary and sufficient to print the number of seconds.) |
Assignment 2.1 | 10 | 2 if (overflow is not properly handled) | 0 | 5 | 5 (only the smallest t is to be printed) |
Assignment 2.2 | 10 | 5 (if one or more of the functions asked to implement is/are missing) | 0 | 5 | 2 (if either i or pi is not output), 5 (if both are absent) |
Assignment 3.1 | 10 | 5 (if one or more of the functions asked to implement is/are missing) | 0 | 2 (if one of the methods gives incorrect result), 4 (if two of the methods give incorrect results), 5 (if all of the methods give incorrect results). | 5 (if one or more of the methods are missing and/or if the timing figures are absent) |
Assignment 3.2 | 10 | 2 (if degeneracy is not checked), 2 (if the function is not implemented) | 0 | 5 | 5 |
Assignment 4.1 | 10 | No specific guidelines | 0 | Half mark on each test input | Half mark on each test input |
Assignment 4.2 | 10 | 5 (if the Eratosthenes sieve is not implemented) | 0 | 5 (if the desired prime is not correctly computed or if the bound reported is incompatible with the prime) | 5 (if the Eratosthenes sieve is not implemented and/or if the desired prime or the bound is not reported) |
Assignment 5 | 20 | 4 (if math library is used), 2 (if repetition of arguments is not taken into consideration), 2 (if the zero polynomial is not treated properly), 2 (if Horner's rule is not used for evaluation of a polynomial) | If any data structure for polynmials other than what is suggested is used, you must explain it. Poor and/or no explanation in this case will be penalized according to the discretion of the evaluator. | 3 for Parts 1+2, 5 for Parts 3+4+5, 2 for Part 6. | 3 for Parts 1+2, 5 for Parts 3+4+5, 2 for Part 6. (Use of binomial coefficients instead of repeated polynomial multiplication will render Parts 3+4+5 invalid.) |
Assignment 6 | 20 | 2 (if the matrix and/or vector structures are not used), 2 (if an additional routine for checking the singularity of A (e.g., for the computation of det A) is implemented, unless an algorithm is used where this routine is essential), 2 (if random numbers are not used to generate A) | If any algorithm other than what is suggested is used, you must explain it. Poor and/or
no explanation in this case will be penalized according to the discretion of the evaluator.
(A linear system can be solved using (presumably) thousands of algorithms. You must clearly
indicate your algorithm, if it happens to differ from ours.) (Note: We didn't ask you to implement pivoting. But that doesn't mean implementing it will be a discredit. On the other hand, we mean that not implementing pivoting is no discredit.) | 10 (The correctness of your algorithm will be checked by comparing the original and the reconstructed b. Huge difference means incorrect output.) | 10 (If the reconstructed b is missing.) |
Assignment 7 | 20 | 5 (if dynamic memory is not used), 3 (if more memory than required is allocated to the pointers). You are required to use the binary tree and adjacency matrix in the manner described, failing which you will be penalized 5 to 10 depending on the evaluator. | 0 | 3 (incorrect display of the binary tree), 3 (incorrect display of the original tree), 4 (incorrecr display of the adjacency matrix) | 10 (if the test input is not used), 3 (not displaying the binary tree), 3 (not displaying the original tree), 4 (not displaying the vertex order and/or the adjacency matrix) |
Assignment 8 | 20 | 5 (not using dynamic arrays), 3 (for allocating more memory than needed), 6 (absence of the enumerative method), 2 (absence of the recursive method), 2 (absence of the iterative method) | 0 | 6 (incorrect results by the enumerative method), 2 (incorrect results by the recursive method), 2 (incorrect results by the iterative method). | 6 (incomplete/missing results by the enumerative method), 2 (incomplete/missing results by the recursive method), 2 (incomplete/missing results by the iterative method). |
Total marks | 20 | |
---|---|---|
Source | Total marks for source | 10 |
Bad source penalty | 5 for not implementing each part, 2 for not implementing a function for gcd. | |
Poor indentation penalty | 0 | |
Poor documentation penalty | 0 | |
Output | Total marks for output | 10 |
Incorrect output penalty | 2 for each part in each set of test inputs | |
Incomplete output penalty | 2 for absence of output to each part in each set of test inputs | |
Verbose penalty | Left to the discretion of the evaluator | |
Invisible input penalty | 4 | |
Wide line penalty | Depending on the situation | |
Miscellaneous | Late penalty | 0 |
Multiple print-out penalty | 1 | |
Junk print-out penalty | 1 | |
Marks obtained | On source | M1 = max(0,10 - total penalty on source) |
On output | M2 = max(0,10 - total penalty on output) | |
Total | max(0, M1 + M2 - sum of miscellaneous penalties) |
Total marks | 25 | |
---|---|---|
Source | Total marks for source | 10 |
Bad source penalty | 5 for not implementing each part, 5 for using recursive calls in Part II, 3 for not recording counts of recursive calls, 3 for not handling the proper sequence of evaluation of An, Bn and Cn in the iterative method, 2 for inefficient use of memory or time. | |
Poor indentation penalty | 0 | |
Poor documentation penalty | 0 | |
Output | Total marks for output | 15 |
Incorrect output penalty | 2 for each of A25, B25 and C25 in each part. | |
Incomplete output penalty | 2 for absence of each of A25, B25 and C25 in each part, 5 for the absence of call counts. | |
Verbose penalty | Left to the discretion of the evaluator. | |
Invisible input penalty | No input is needed for this program. If one uses inputs and does not echo, the penalty will be 5. | |
Wide line penalty | 2 to 5 depending on the amount of loss of data | |
Miscellaneous | Late penalty | 5 |
Multiple print-out penalty | 5 | |
Junk print-out penalty | 5 | |
Talk/Copy penalty | Left to the discretion of the invigilators. | |
Dishonesty penalty | Left to the discretion of the invigilators. | |
Marks obtained | On source | M1 = max(0,10 - total penalty on source) |
On output | M2 = max(0,15 - total penalty on output) | |
Total | max(0, M1 + M2 - sum of miscellaneous penalties) |
Total marks | 30 | |
---|---|---|
Source | Total marks for source | 20 |
Bad source penalty | 10 (for not implementing Part I), 10 (for not implementing Part II), 5 (for not using data types as suggested. However, use of dynamic memory instead of static arrays will not be a discredit.) | |
Poor indentation penalty | 5 | |
Poor documentation penalty | 0 | |
Output | Total marks for output | 10 |
Incorrect output penalty | 2 for each test input | |
Incomplete output penalty | 2 for each test input | |
Verbose penalty | Left to the discretion of the evaluator. | |
Invisible input penalty | 5 | |
Wide line penalty | 2 to 5 depending on the amount of loss of data | |
Miscellaneous | Late penalty | 5 |
Multiple print-out penalty | 5 | |
Junk print-out penalty | 5 | |
Talk/Copy penalty | Left to the discretion of the invigilators. | |
Dishonesty penalty | Left to the discretion of the invigilators. | |
Marks obtained | On source | M1 = max(0,20 - total penalty on source) |
On output | M2 = max(0,10 - total penalty on output) | |
Total | max(0, M1 + M2 - sum of miscellaneous penalties) |
[Course home] [Home]