Assignments that are one or two days late are not a big problem to me, though I do like to grade things in a batch, so that the standards are consistent. If you are going to turn in something late, please be good enough to tell me. Assignments that are very late (a week or more), are a hassle. It means that I have to grade and return the on-time ones, and then grade yours when I've already forgotten how I graded the on-time ones.
Therefore, my standard late policy is designed to address these concerns. The following policy is what I enforce unless otherwise stated in the course syllabus. I will penalize your assignment ten points (one letter grade) per day. Obviously, it is pointless to turn something in ten or more days late; indeed, it's hardly worth bothering to turn something in a week late. For something that is half a day late, it might be only five points, but after something is twenty-four hours late, I'm not going to quibble over whether it's 2.5 or 2.75 days late, so don't ask.
For programming assignments, the time you turn it in is the time of the email message to me or the timestamp on the file in the drop folder. Alternatively, it is the timestamp on the files in your directory or on your disk, so do not modify those timestamps. Use more or cat if you need to look at a file. If you start up vi or Emacs, be sure you exit without saving.
Anything handed in on paper will be turned in at the beginning of class.
The end of the semester is a busy time for all of us, and I cannot do a good job grading assignments and preparing exams if I am grading a flurry of late assignments. Therefore, the absolute last day to turn in assignments is the last day of classes. If an assignment is due on the last day of classes, that means it may not be turned in late. I'm sorry, but only in unusual cases, where you have gotten my permission in advance, will I accept anything after midnight of the last day of classes.