CS 503/591C Grading

Grades are broken down as follows:

Grade Sheet

See the currently available grade sheet to see where you stand. If you detect any errors or have any questions please feel free to talk to myself or the TAs. Here are a few tips on parsing the notation: The best measure of your performance is how you are doing relative to the class mean.


There are a total of six milestones that have been set for the duration of the semester, as shown on the class schedule. A milestone is a demonstration of some basic capability that we have been learning about in class. If a milestone is not met by the stated deadline, a 5 point penalty will be imposed. Milestones must be demonstrated in groups of at most two people. In and of themselves, you do not receive points for obtaining milestones.


Widgets are miniature projects of your own design (within reason) for which you receive points. You may accumulate up to a total of 50 points for the duration of the class (1 pt = 1 grade percentage point). The value of a particular widget will be assigned at the time of demonstration and will depend upon the complexity of the widget, the quality of the work and the applicability to our overall class project. Any number of people may participate in the building of a widget (except when a widget is used to demonstrate a milestone). The points obtained for a widget will be split evenly between the participants.

Widgets can be demonstrated in phases and grow in complexity with each phase. For example, your first widget might be an ambient lighting device that displays different colors depending upon some ASCII input from the serial port. You might then demonstrate a week later the same widget that uses some sensor input to determine the color that it generates. Several weeks later, you might develop an I2C interface for your lighting device that allows it to cooperate with many other devices. At each stage, you may demonstrate your widget and receive additional points for that demonstration. In order to encourage incremental design and demonstration, the sum total points received over several demonstrations will generally be a little larger than if you simply demonstrated your final widget.

Licensing Intellectual Property

Once you have developed a widget, you may license components of the widget (e.g., circuit designs or code) to others in the class. These components may be used in the creation of more complex widgets (except when used to meet a milestone). You may ask for a small number of points as a licensing fee (transfer of this fee may be accomplished by all parties sending email to Patrick Deegan). When demonstrating your new widget, you must be clear about any licenses that you are using (whether you paid for the license or not). Points for this more complex widget will be granted based on the progress made beyond the original widget.

Note that if this gets out of hand, we reserve the right to cancel this aspect of the grading.

Industrial Espionage

Industrial espionage is defined as obtaining intellectual property without the explicit permission of the owner or without providing appropriate acknowledgment of the owner (one of the best way to do this for code is to document the history of the IP within the code itself). Industrial espionage is considered cheating and will be dealt with appropriately.

Developing Standards and Core Code

As we get into the latter half of the semester, many of our efforts will be dedicated toward integrating our widgets into a common smart space. This integration process will require that the class agree upon certain protocol standards and implementations thereof. Those students who are central to the development of these standards and core code will also be able to receive widget points for their efforts.


Last modified: Fri Oct 24 10:44:02 2003