We'll work on two significant projects, one before Spring Break and the other after. Each project will be divided into a "design phase" and an "implementation phase", not necessarily done by the same people. When you turn in a design phase, it'll be worth 15% of your semester grade; then you'll switch teams and projects and do the implementation phase of another project, which is worth 20% of your semester grade. Meanwhile, somebody else will be implementing the project you designed; how well this turns out is worth 5% of your semester grade. (Some communication between designer and implementer is acceptable, but try to keep it to a minimum, as though the designer had been transferred to another department of the company and brought back for a one-day consultation.) Doing this for two projects adds up to 80%; the remaining 20% of your semester grade will be determined by a final exam.
The exam must be taken at the scheduled time, unless arranged in advance or prevented by a documented medical or family emergency. If you have three or more exams scheduled on the same date, or a religious holiday that conflicts with an exam or assignment due date, please notify me in writing within the first two weeks of the semester in order to receive due consideration. Exams not taken without one of the above excuses will be recorded with a grade of 0.
Homework and programming assignments will be accepted late, with a penalty of 1/5 per 24 hours or portion thereof after they're due. An hour late is 20% off, 25 hours late is 40% off, etc. No matter how late you are, however, it's better (both for your education and for your grade) to do the assignment than not to do it at all.
Programs are not abstract works of art, they are supposed to run and solve real problems. So if I get a program that doesn't compile or run, or a program that has little or nothing to do with the problem I assigned, I will give it a zero, no matter how much time you put into it. Don't bother turning in a program you haven't tested yourself.