Assignments are to be submitted to Canvas. Programming assignments are usually split out into a separate submissions, so that we can easily provide you feedback on your code and in some cases execute unit tests on your code. Written work should be typed when possible, but drawings can be scanned and inserted into your documents. Hand-written work is acceptable if converted to a pdf. Affidavits are required, see below.

Assignments must be submitted by 10:30 PM on the day they are due and have a 30 min grace period. Afterwards, assignments are considered late. Unless otherwise specified, late assignments are accepted up to 10:30 PM with a 30 min grace period the next time that the class meets. e.g. If the assignment was due Thu, late assignments are accepted up to Tue at 10:30 PM. Upon occasion, the late due date may be moved up. This will always be announced, and is usually to allow a solution key to be released before an exam or due to an assignment extension.

Submission of programs

When submitting programs, you can either upload your files individually or as a zip archive file. If you use a zip file, make sure that files are at the top-level of the archive. Do not place them a directory within the zip archive. Subdirectories are fine if the program is supposed to have structure (e.g. Python packages).


You are expected to do your own work. While you may consult with peers for general strategies, you may not share code. You may not use material gathered from the Internet, books, etc., without permission. All work must be in your words. When submitting work, you must include an affidavit that the work you submitted is your own. In courses where pair programming has been allowed, use the multiple programmer affidavit if you are submitting a pair programming assignment.

For each assignment, you must submit an affidavit. Failure to do so will result in lost points. When assignments are submitted in two separate submissions (written work and program), place your affidavit in the program. It should be in the comments at the top of the file that contains the program’s entry point. If you are only submitting written work, place it at the top of your document.

Single programmer:

I promise that the attached assignment is my own work. I recognize that should this not be the case, I will be subject to penalties as outlined in the course syllabus. [Your Name]

Multiple programmer:

We the undersigned promise that we have in good faith attempted to follow the principles of pair programming. Although we were free to discuss ideas with others, the implementation is our own. We have shared a common workspace (possibly virtually) and taken turns at the keyboard for the majority of the work that we are submitting. Furthermore, any non programming portions of the assignment were done independently. We recognize that should this not be the case, we will be subject to penalties as outlined in the course syllabus. [Your Names]

Solution keys

Solutions to selected problems are available on Canvas. Solutions to programming assignments are not posted, but they are discussed in class.