Critical programming skills cannot be learned by attending lecture. You should budget enough time to work on the projects as well. Use the following time table to plan ahead. Note that the projects are due on Monday, Wednesday or Friday (when we don't have lectures).
Projects will be graded according to five equal parts: correctness, design, style, documentation and efficiency. So, turning in a project that simply "works" is not sufficient to receive full credit.
Projects are due by midnight of the due date. If you fail to turn in the project by this time, a 4% penalty will be assessed which doubles every 24 hours (including days over the weekend, but not counting Thursday through Sunday of Thanksgiving break). For example, if you turn in Project 1 on Saturday, September 30 instead of Wednesday, September 27, then 16% will be deducted from your project grade.
You may turn in incomplete projects for grading. Late penalties apply as usual. A project that runs incorrectly will receive no more than 75% of the grade. A project that does not compile will receive no more than 50% of the grade. These guidelines are for incomplete projects where a good effort was made. Garbage will receive 0%.
All projects must be completed by your own individual effort. You should never have a copy of someone else's project either on paper or electronically under any circumstance. Also, you should never give a copy of your project, either on paper or electronically, to another student. This also means that you cannot "work" on the project together. Cases of academic dishonesty will be dealt with severely.
If your project is turned in by someone else, both you and the person copying your project will receive a 0 for that project. This includes "substantially similar" projects. Furthermore, all parties concerned will have their prior projects checked for cheating. So, if you cheat on Project 5, you can lose all the points from Projects 1 through 4 --- even if you did all the work and just "let" other people copy from you. We will be using special software to check for cheating.