General Grading Guidelines
80% of your grade is based on your performance in class projects. 20% of your grade is based on written homeworks (including "homework 0" which isn't really written)
Group Project Policies
Because grades in Comp314 are so strongly tied to your class projects, and because class projects are done in groups, your grades necessarily become tangled together with your partners. In order to address problems we have had in the past, Comp314 has a hard and fast rule:
You flake, you fail.
If your partner is counting on you and you disappear, it hurts your partner. As much as possible, we wish to prevent this. By "flaking", we mean being unresponsive to e-mail and other attempts to contact you. You are expected to pull your own weight. If we give up on you, we reassign your partner(s) and you receive an instant `F' as your final grade for the course. Alternately, if we have determined that one partner performed a disproportionate share of the effort, we may arrange a non-equal distribution of the project points, at our own discretion, to prevent a "bad" partner from dragging down the grade of a "good" partner. Students should not assume that we will invoke any of these rules. However, we do encourage students experiencing problematic partners to contact us early so we can remind them of their responsibilities.
We also recognize that things happen in your life that are beyond your control and that require you to reprioritize your time. In these cases, you are responsible for contacting your partner(s) as well as the course staff as soon as possible to explain your predicament.
In the event you are considering dropping from Comp314, your timing matters. Programming projects generally last a couple weeks. The time to drop is between projects. By staying in the class, you are making a personal committent to your partner(s) to complete a project after you have begun it. Dropping mid-project is extremely rude to your partner(s).
Otherwise, the project grading guidelines will apply. This also includes our policy on late project submissions.
Honor Code Issues
Projects are generally divided into two phases: design and implementation. While you are encouraged to have discussions with your peers in this course, there are a number of places where we require you to keep quiet.
- Design, before the check-off. We wish every group to come up with its own independent project design. If you are exposed to other designs before the staff has checked off on your own work, then we cannot distinguish between your ideas and those of your peers. After the check-off, you are free to discuss your design with others in the class, including wholesale borrowing from your peers. We expect you to cite your sources. It's okay to borrow a design (post check-off), but you need to give credit where credit is due.
- Implementation code. The specific code you write should be kept private among the members of your group. You should take appropriate measures with Unix protection bits to prevent stray eyes from seeing your code while a project is under way. However, after a project deadline has past, you may freely make your code available within (and beyond) the class.
- Technical assistance. You are encouraged to help your peers with all the technical issues involved in using Java and the system class libraries. This may mean leaking some details of your design (e.g., "oh, it's much easier if you build your system to accept and dispatch GUI events from the widget system."), which is acceptable in moderation. It may also mean leaking snippets of source code (e.g., "here's a test program I used to get the GUI system to do `Hello, world.'"). You must use your own discretion in choosing what you leak. Helping your peers understand the problem is good. Giving away your solution to the problem is bad.
- External resources. You are explicitly permitted to consult any external resource you can get your hands on, including textbooks, source code, or friends outside of Comp314. Cite your sources. Also, for people outside of Comp314, make sure to explain why you're asking a question and don't let them just solve the problem for you. With regard to incorporating code written outside of Comp314 in your own solution, this will depend on the specific project. Generally, external code that, in some general purpose fashion, helps you out is okay (e.g., a better GUI layout system), but external code that largely solves the problem you've been assigned is forbidden. Consult the course staff if there's any doubt.
- Materials from previous years. We reuse some materials from prior years of Comp314, including homeworks and projects. If you use the work of a prior Comp314 student, with or without giving credit, you will be considered to be cheating and you will be reported to the Honor Council. Similarly, if you reuse a problem set solution, perhaps found in a cached web page somewhere, that will be considered to be cheating.