The homework will consist of both programming exercises and written questions. This handout describes some general thoughts and techniques for doing homework, as well as what is required, how to submit it, how late homework is handled, and other administrative matters.
When you are asked to explain something, please be complete, show any work, and justify your answer. Otherwise, even if you get the right answer, you will get ZERO (that’s 0, zip, nada, nothing) points. Think your answer through. Write clearly and cogently. If the question asks for an opinion, state your opinion clearly, justify it, and don't ramble. Answers that start, “My opinion is yes” and conclude with “on the other hand it could equally well be no” won’t get much credit.
Please do not leave assignments for the last minute. The assignments are non-trivial and will require significant effort. Please take the time to design your programs carefully. More programming problems arise from improper design than anything else, and the time you spend on design will be amply repaid by shorter coding and debugging phases. So please think the design and interfaces through, and—as always—try to find the simplest way to do the assignment (within the limits given in the assignment, of course)!
All homework is due at noon on the due date, unless noted otherwise on the assignment.
For written homework, you must turn in a text or a PDF version of your answers (you can use any text processor you like to generate these). If your file is a text file, please call your file “written.txt”. If your file is a PDF file, please call it “written.pdf”.
Please turn in both your written exercises and programs using SmartSite. Be aware that SmartSite has one quirk that is very very nasty: once you submit an assignment, you cannot resubmit it, even if the due date has not arrived. If you need to resubmit it, ask the instructor or TA to enable this for you. Unfortunately, we have to do this on an individual basis. (And yes, we have reported this!)
When you turn in an assignment, you must turn in four sections, each in a separate file (or files):
If there are no written exercises, you can skip item 4. If there are no programming exercises, you can omit items 1, 2, and 3.
We do not mind being asked for help; indeed, we welcome it because it helps us know what students are finding difficult or confusing, and sometimes a few words about the problem in class will clarify the assignment immensely. When you come to us, or send us a note, asking for help, please show us whatever you have done to solve the problem, because the first question we will ask you is “What have you tried?” This isn’t because we think you’re wasting our time. It’s because understanding how you have tried to solve the problem will help us figure out exactly what your difficulty is and what we can do to help you. We’ll do everything we can to avoid solving the problem for you. When we give you help, our goal is to help you solve the problem yourself.
When we grade your programming exercise, we will use approximately the following weighting:
Design of program, including refinement | 20% |
Correctness, clarity of output | 40% |
Style (names, use of white space, commenting) | 20% |
Journal of errors | 20% |
We will vary these weights as needed. Please note that correctness is not enough for a perfect score.
Late homework will be accepted only with a doctor’s excuse.
If you feel that there is an error in grading, please come see me or the TA and we’ll look over it (and possibly talk with you about it). However, don’t dally; any such request must be made within one week of when the grades were made available. After that, we won’t change your grade.