Ugraded work will be assigned frequently (as often as every class period), with due dates ranging from the next class period to a week later.

Projects will account for 90% of the course grade. Two projects will be pledged, ie. to be done individually, without assistance, and turned with the standard Rice honor pledge written as part of the text. These two pledged projects will account for 40% of the grade. The remaining projects will be unpledged - that is, you are encouraged to work together with your fellow students in completing these assignments. It is probably a good idea to form groups or teams that work together throughout the semester, but that is up to you. I don't care whether you actually get together or not, as you can work by email almost as well. These unpledged projects will account for 50% of your grade.

LaTeX-formatted lecture notes will provide the remaining 10% of the course grade. Each student will have the opportunity to act as "scribe" several times during the semester. The scribe will transcribe the day's lecture and other information into a LaTex-formatted document and provide all source (.tex and other) and a pdf within a week, to be posted on the course web site (with attribution!). Volunteering and satisfactory performance will give you 100% of this 10%.

You should turn in your homework using the CAAM 420 homework turn-in procedure - no other method will be accepted, except in extreme circumstances and will prior approval of the instructor.

No late homework will be accepted. Of course occasionally you may not be able to complete a homework assignment on time. However a couple of unreturned homeworks should not affect your grade in any serious way (or what you learn from the course), because I will discount the two lowest grades (of the unpledged assignments) in computing your final grade for the course.

If you do work together in groups, it is still necessary for everyone to turn in the homework.

The emphasis on collaboration is very deliberate: writing software can be an enormously time-consuming process, and the quickest way to get yourself out of trouble is to show your code (that doesn't work) to someone else. You will learn a lot from your fellow students, possibly more than you learn from the instructor.