Grading, Lateness, and Extensions
If you are a current student, please Log In for full access to the web site.
Note that this link will take you to an external site (https://oidc.mit.edu) to authenticate, and then you will be redirected back to this page.
1) Laboratory Assignments
You will be responsible for nine laboratory assignments during the semester. Note that two of the labs extend over two weeks, with an intermediate submission due after the first week. All the laboratories will correspond to coding assignments to be done in Python (version 3.5 or later).
All submissions must be uploaded to this website, through the provided links.
For each laboratory or quiz you will get a
.zip file that contains a
README file and most, if not all, of the test cases that are used to
grade your assignment. You can work offline till you are satisfied
with your code and then submit to the website. In a few laboratories,
your job will be to produce test cases in addition to the ones given
that test your code for correctness. Your grade will depend on how
well you have tested your code and how it performs on staff test cases
that you will not have access to when doing the laboratory.
The laboratories count for \approx 40\% of the overall course grade. Labs 1 through 7 have equal weight (4 points each), and Labs 8 and 9, which are 2-week laboratories, have twice the weight (8 points).
Submission deadlines are Mondays at 10pm. To receive credit for the lab, you need to complete a check-off meeting with a staff member. If you submitted on-time, the check-off deadline is Friday at 4pm (just under 4 days after the lab is due). If you submitted late, the check-off deadline is four days after submission. Please do not ask individual course staff members for checkoffs outside of the lab or office hours. If you cannot make office Hours or lab hours during a particular week to get a checkoff, email the Lecturers at
firstname.lastname@example.org to the reasons why, and the lecturers will assign a staff member to help you. Course staff may post individual Checkoff sessions outside of the lab and office hours on Piazza if office or Lab hours are oversubscribed.
Each day or partial day late on submission or check-off counts as a late day. The first 7 late days are excused automatically; there is no need to contact the course staff. After the first 7 late days, additional late days incur a 1-point/day penalty.
Labs cannot be submitted after solutions are posted, which is usually the Saturday after the lab is due.
Note that the final deadline for all submissions and checkoffs is the last day of classes. Sorry, the final deadline cannot be extended by the use of late days.
The best way to do well on the exams is to do the laboratories yourself with as little help as possible from others. It is okay to talk with fellow students and the staff about how to approach the lab, but please see the course collaboration policies.
There will be three in-class quizzes of 110 minutes, each counting for \approx 20\% of your overall score:
- Friday, October 6, 2017
- Friday, November 3, 2017
- Friday, December 8, 2017
These quizzes will be held in the laboratory rooms (see this page for room numbers). There will, of course, be no Friday laboratories during the weeks of the exams. During Wednesday's tutorial of the quiz week you will have the opportunity to take a practice exam. You can take the practice exam on your own, if you wish.
The quizzes will be like the laboratories except smaller in scope and scale. You will be expected to produce working code from a description of a specification. At any time if you code runs, you will be able to test it for correctness against the full suite of tests that we will use to grade, with one exception. The exception is that we may run an additional test to check to see if a solution has hardcoded test cases, which is a no-no. Hardcoding will result in zero credit for the question.
Quizzes will typically be open-book and closed-internet, unless otherwise specified. This means that you can use any physical materials you have brought, but you may not access resources online (except the quiz page), or on your computer. Proctors will be available to answer administrative questions and clarify specifications of coding problems, but they should not be relied on for coding help. Python library and reference manuals will be provided as part of the quiz.
If you have a bug that results in your code not running or failing multiple test cases and you are unhappy with the score your autograder gave you, you may request a human (and humane) regrade for each such question. In order to request a regrade, you will have to submit corrected code that passes all the tests for the question and explain what your bug or lack of functionality in your original solution was in Python comments. You will need to do this through this web site on a separate quiz resubmission assignment prior to a posted deadline. We do not allow the use of late days for resubmissions.
Regrading will largely be based on how far away your submitted code was from the corrected solution you send us, but we would also like to reward the effort you put in to correcting your code. You should not delete incorrect solutions from your original quiz submission; you can comment them out to avoid error messages. We expect that you will do the work in correcting your code yourself just as in the original proctored quiz. Think of the resubmission as being a take-home quiz.
We expect that you will use your own laptop for the quizzes. If you do not have a working laptop, you can arrange to take the quiz in an Athena cluster. You will need to let us know if you wish to work on Athena by the Tuesday of each quiz week.
3) Overall Grade
The final grade will be based on the 9 laboratories and 3 quizzes. The laboratories will together be worth 44 points, and the quizzes will be worth 20 points each, giving a total of 104 points. See above for details on laboratory weights.
Attendance at the quizzes is mandatory. If circumstances make it impossible to take the quiz in your scheduled section on Friday, please contact email@example.com by Tuesday of the quiz week to arrange to take the make-up exam (scheduled for the Monday following the Friday quiz date). If you have an accommodation letter, please contact firstname.lastname@example.org by Tuesday of the quiz week to make the appropriate arrangements. In general, we do not make quiz arrangements other than those described above unless we receive an email from the Deans at Student Support Services.
Overall grades will be assigned using an absolute scale, i.e., we will not grade to a curve.
These thresholds have been revised (lowered at some grade boundaries) as of Monday, November 13. We reserve the right to lower the thresholds further at the end of the semester when we assign grades, but we will not raise them.
3.1) Grading of Code
Code will be graded for correctness and readability only, not performance. However, if your code is so slow that it does not finish in the ample time allotted by the automated grader, it will be deemed nonfunctional and therefore incorrect.
Correctness: You will be given a public set of unit tests to test your code. In some cases, these tests may be randomized to more extensively test your code -- producing different actual tests on each run. In some laboratories, we may also test your code against a larger set of test cases than what you have been given when we expect that you will generate your own tests. You are also expected to follow specified coding guidelines in order to receive readability of code credit during checkoffs.
Documentation: We encourage you to document your code with comments describing data structures and any algorithms used. Your code must be readable so the TAs or LAs will believe that your code does what it is supposed to do. You should be able to explain it to one or more of them in order to get checked off for the laboratory. You will only receive credit for a laboratory if you have been checked off.
The course staff reserves the right to lower your grade on a laboratory if we believe that you have not done the work yourself or do not understand the code you ostensibly have written.