Grading assignments: 40 points, programming project 30 points, quiz 10 points, final 20 points.
Homework
Assignments will be posted on the course web. You should start the homework early. Late submissions will not be accepted unless it is pre-approved by the instructor or an emergency. Please talk to the instructor beforehand if you want to get an extension due to special reasons.
Participation
Please attend the lectures, as exams might contain material covered in class but not in the textbook/reference. Class notes will be posted on the web regularly. You are strongly recommended to read the notes and suggested readings quickly before lecture. A second read after class is necessary to fully understand the material and prepare for the homework.
Collaboration
Group discussions are encouraged to further understand difficult topics. You may consult with other students about homework problems, provided that you indicate such information (whom you consulted with, which problem, to which extent) on your solution sheet. However, you must refrain from getting direct answers from others.
Pandemic or other emergencies
In the event of a major campus emergency, course requirements, deadlines and grading percentages are subject to changes that may be necessitated by a revised semester calendar or other circumstances beyond the instructor's control. Here are ways to get information about changes in this course.
Also refer to the Campus Emergency Guide for more information.
Things to be checked before submission of HW (Added Nov. 7th, 2010)
1. Check Whether It's Compilable/Runnable
Every uncompilable/not runnable program will get 0 point, since it has no value. To avoid this, comment out the portion of code which has errors before submission. This does not necessarily mean the grading will be done as all-or-nothing. You should implement functions step by step, and try to compile/run it in each step you make a progress. If you can't make a certain step done unfortunately, then comment out that part. You'll receive partial credit for the part you've succeed to implement.
2. Check it whether it runs on skew
Sometimes not every student works on skew, and use his/her own machine. This is perfectly fine if you feel more comfortable to work that way. However, you have to make sure that your code compiles and runs fine on skew. This is critically important, because you don't always have the freedom to choose your working environment. If you cannot adjust to the given environment, your whole skill learned in this class is almost useless.
The grader will regard code which is uncompilable/not runnable on skew as simply 'uncompilable/not runnable' (which will have zero point).
Those who're working with Visual Studio or other non-ANSI C compilers should be aware of this fact.
3. Check Memory Management Errors
Use tools like valgrind to make sure that your program has no mismanagement of memory at all.
It will critically affect your score.
To avoid this, comment out the portion of code which has memory management problems before submission, to get maximum partial credit.