Homework Policies |
Electronic Submission
Homework assignments are due Thursday nights at 11:59pm (America/New York timezone). Homework is submitted electronically and submission times are judged by the webserver timestamp. If your submission is one minute late, it is a day late, so we suggest that you don't actually wait until the last minute. You may submit your assignment multiple times -- we will only grade your last submission (or you may specify which version we should grade). Please see the Course Calendar for the homework assignments and due dates.
Note: Please do not email your homework assignment to the instructor or the TAs (unless explicitly requested to do so). We will only grade material submitted to the homework submission server. We can login and view your submitted homework files if you encounter a problem at submission time. Please check the discussion forum for announcements about the current homework and ask a new question if you do not see a similar question and answer that helps you.
Late Day Policy
Each student will initially be given one day (whole or partial) of grace for late homework assignments. Through consistent participation and solid performance on Lecture Participation Polls each student may earn additional late days. These grace days are intended to cover minor illnesses, hardware malfunctions, and schedule conflicts with homeworks/tests in your other classes. Note that you will always have at least 6 full days to complete each homework assignment and students are expected and encouraged to practice good time management accordingly.
To use a late day, simply submit the assignment as normal through the homework submission link. You do not need to notify your TA or instructor. For example, an assignment submitted 22 hours late (Friday evening at 10:00pm) counts as 1 late day used. As another example, an assignment submitted 26 hours late (Saturday morning at 2:00am) counts as 2 late days used. No more than two late days may be used for any one assignment. Once your late days have been exhausted, late assignments will not be accepted without an official excused absense.
Students should use their late days carefully, saving them for the latter part of the semester or (better yet) not using them at all.
Prepare Your Assignment for Submission
Make sure you read and follow the Collaboration Policy and Academic Integrity statement which applies to all homework assignments.
Once you've finished writing, testing, debugging, and commenting your code, re-read the assignment description and collect all of the necessary files for submission. Be sure to include your plaintext README.txt (use the provided template for the assignment), your .cpp and .h code files, and any other files specifically requested for the assignment. You do not need to include any compiled object files or the executable. Submitty will ignore these files if they are included. You do not need to include any of the provided input data files or your output files for the basic homework --- these will be re-generated by Submitty. But you should include any new data input files and corresponding output for any extra credit you completed, as described in the assignment description.
Next, click the "Gradeables" link from the top of the left sidebar to access Submitty. You will use your RCS ID and password to access this page. Access to Submitty is automatically given to all registered students (but it can take a day or two). Contact the instructor if you are registered for the course but cannot successfully login to Submitty.
Choose the appropriate assignment from the navigation page. Drag and drop your files into the indicated area(s) or click to launch a file browser. Press "Submit" to upload your homework.
Note: Please do not email your homework assignment to the instructor or the TAs (unless explicitly requested to do so).
Automated Compilation, Testing, and Grading
Submitty will compile your code with Ubuntu 22.04 gcc/g++ 11.4 and/or llvm/clang++ 14.0 and then run the resulting executable on several test cases. It will inform you of any compile, link, and runtime errors or warnings and will present the results of these tests for your review. Your grade for the homework will be a combination of this online testing of your code and (later) a TA's review of the structure, efficiency, and overall quality of your code (see also Good Programming Practices and Advice from TAs), plus the TA's grading of any additional non-code parts of the assignment.
You will have practice using the submission process during the first lab. Please see a TA during office hours if you need additional help writing portable code.
Carefully check the result of your submission. Verify that all necessary files were received by Submitty. Confirm that your code compiled and ran successfully. If you find a mistake in your homework, you can fix it and re-submit using the same procedure. We will only grade the most recent submission. Please see a TA in office hours if you need help preparing your assignment for successful submission. If the automatic grading of your homework seems incorrect or unfair please use the discussion forum and/or see the instructor or a TA in office hours. You may make a note to the TAs in your README.txt file about problems with the automated grading; however, the TAs will not edit the automated grading scores.
NOTE: Some of the automated test cases on Submitty will be labeled "Hidden". These additional tests with novel inputs are intended to prevent "hardcoding" to a limited set of known inputs, and to encourage students to think carefully about "corner cases" when writing their programs. Other than the title of the test case, the details of these tests will not be made available to students before the deadline. After the deadline has passed, and the TAs have finished their manual grading, your numeric scores for the hidden tests will be available, but the details of these tests will probably remain hidden. Students may see the instructor or TA in office hours to ask questions about the hidden test cases after grades have been returned.
Note on # of submissions:
Do not use Submitty as your sole development/testing platform. You should use your laptop as your primary testing & debugging interface. However, don't wait until the last minute to submit for the first time. You should do an early practice submission of a partially working version of the homework to confirm you are on the right track. A small point penalty will be assessed if the count of your submission attempts is greater than 20 for any one homework assignment.
Note on submission file size:
If you accidentally include lots of unnecessary "stuff" in your uploaded files, it may be too big for submission. If you think you have included only the necessary files and yet Submitty still complains about the size of your submission, please check the Discussion Forum for announcements, and ask a question if no one else has yet encountered this problem for this homework -- please don't send your homework files by email!
Note on the submission server:
If Submitty crashes or is unresponsive, or if your submission attempt fails and you cannot make sense of the Submitty output, check the Discussion Forum for announcements, and ask a question if no one else has yet encountered this problem for this homework -- please don't send your homework files by email!