Last updated
Last updated
You can request a TA to come and sign off your assignment using the .
To have your assignments approved, your work needs to meet all of the following conditions:
Your code must be submitted on Canvas.
Your finished code needs to be functionally correct.
Your code needs to be algorithmically correct.
Your code needs to be properly documented.
Your code must pass all CodeGrade tests.
You must be able to explain your code to one of the TAs and answer their questions concerning your code.
We stress that your work will not be considered fit for approval until you meet all six of these criteria. The details of what we consider to be correct in this context will be defined in the subsequent paragraphs.
The source code that you hand in should be functionally correct. This is implied by the following:
The program must function as specified in the assignment.
The program must run to completion without runtime errors.
For most assignments, the functionality is largely tested automatically through CodeGrade. However, passing the tests does not mean that your program is necessarily functionally correct. The tests are only intended as an indication for you. A TA might still find functional flaws during the hand-in and reject your submission on the basis thereof.
The programs that you hand in should be algorithmically correct. The correct algorithm is, by definition, the algorithm that was conveyed to you by the TAs during the approval of your specifications. Solutions that are functionally correct but do not follow the required algorithm will not be approved during hand-in.
All source code, including pseudocode, should be properly documented. Commenting source code is not an exact science, but at the least, we expect that you adhere to the following guidelines:
Natural language: Comments should be written in a natural human language, which is preferably in English. We expect that you use the same language consistently. Pseudocode and overly complicated mathematical notations are not accepted as proper comments.
Continuity: The comments in the body of your code should “tell the story” of the code in a concise, clear manner. If you strip away the accompanying source code, your comments should make up a compact description of the algorithm in acceptable prose. Do place your comments with care and avoid overly lengthy comments.
Functions: Each function should be accompanied by a clear description of its purpose. A description should also be given of the meaning and type of the arguments and the return value (the function signature).
Layout: Part of the readability of source code comes from a good layout. We expect you to be precise and, most importantly, consistent in your style.
Your code must directly use Python’s socket library. The use of other libraries for network-related functionality (e.g., socketserver, zlib) is not permitted.
The use of the socket.sendall
method is not permitted. Use socket.send
instead.