There will be one midterm, worth 20% of your grade; one final, worth 30%; and ten to 12 programming assignments, worth the remaining 50%.
Grades will be curved. There is no fixed percentage that will earn you a particular grade.
For those with a statistics background: The exam scores will be added according to the above weights, and converted to Z scores. The assignment grades will be added and converted to Z scores. The two Z scores for each individual will be averaged. Z scores will then be arranged in rank order, and grade cutoffs assigned subjectively.
Typically there will be about 1/2 grades in the range A- to A+, 1/2 in the range B- to B+, and a small number of grades below B-. Incompletes can be made up by re-taking the course in a subsequent semester, not by completing the work during the summer.
This class is designed to be cooperative, not competitive. Your final grade will not be based on how well you perform compared to your fellow students; it will be based on how well you perform compared to students I have taught over the past 45 years.
It would be a good idea to read Grading Criteria for Assignments , but here's a summary: Do exactly what the assignment says to do, use good programming style, test your program carefully, zip up your program (if it's more than a single file), and turn it in via Canvas. Late programs will lose points.
"Zipping" files is a way to compress them (make them smaller). More important for this class, it is also a way to combine multiple files into a single file that can be easily uploaded and downloaded.
Single Python files should not be zipped. But if your Python program consists of multiple files, Zip up the entire directory for that program, and submit the zipped file. For Java assignments, zip the entire project and submit it.
Important: "Zip" means the universally understood .zip format. Submissions using a proprietary format such as Microsoft's .rar will be penalized 10%.
All assignments are to be submitted via Canvas. Only assignments submitted via Canvas will be accepted--any assignments emailed to me will be discarded without comment.
Unless otherwise specified, assignments will be due at 6am on the following Friday. There will be a 10 point penalty (out of 100 points) for programs between one minute and one week late, and a 25 point penalty for programs later than one week. At some unspecified time after one week (usually, once we announce the grades) we will stop accepting assignments.
Most assignments will be done with a partner. I assign the partner. If you are unable to attend a lab, or will be late to lab, notify me no later than the day before. If I have to reassign partners because you fail to show, that will be a ten point penalty.
You are expected to help one another. This includes explaining the material, discussing how to write programs, helping to debug programs, and critiquing one another's work.
Cheating consists of (1) copying someone else's program, or (2) allowing another to have a copy of your program, whether deliberately or through carelessness, or (3) working with another person (not an assigned partner) to write a program.. For more details, see Academic Integrity Policy.
All cases of cheating will be turned over to the Office of Student Conduct, with a recommendation of a grade of F for the course.