Midterm: 2:30 - 3:20 pm, Friday, Feb 8, 2008
Final: 2:30-4:20 p.m. Tuesday, Mar. 18, 2008
There are no makeup exams. I will only give exceptions in extreme extenuating circumstances. If at all possible, you should notify me in advance if you must miss the exam (even a phone call from home while sick in bed).
This class will require pencil and paper assignments, as well as programming assignments. The paper assignments will give you additional experience with formal reasoning involved in algorithm analysis; the programming assignments should demonstrate the practical applications of the techniques discussed in class. For the programming assignments, you may use either Java or C/++. The Math Sciences Computing Center is the designated lab for this class; it already has installed software for Java development.
Collaboration is allowed (and even encouraged) to a limited extent on the assignments. You may discuss general ideas and approaches with other students. However, you must write up your answers entirely on your own. This applies to both the paper and the programming assignments -- eg., students cannot examine each other's code. Extra credit problems must be done completely independently. If you need additional help, ask the instructor or TA in office hours or through email.
Assignments are due at the beginning of class on the due date. Late assignments will be penalized 20% per day late.
This offering of 417 will try a small experiment with the assignments. In class, we will deal with a lot of mathemtical formalisms; several assignments will give students extra credit if they can connect these models to real world problems. These will only be worth a few points, but are intended to be relatively easy. Everyone is encouraged to attempt these problems. More details will accompany each problem set.
We may also offer several "challenge" problems as extra credit. These problems are expected to be quite difficult, yet will only be a worth a few points.
Algorithm Design by Jon Kleinberg and Eva Tardos. Addison Wesley, 2006. (Available from U Book Store, Amazon, etc.)
Based on past experience, we will probably have little if any time to cover the "computability" material outlined in the catalog description. If you want additional material on these topics, as well as an alternative presentation of the computational complexity/NP-completeness topics, I recommend:
Michael Sipser, Intro. to the Theory of Computation, 2nd ed., Thompson Course Technology, 2005. Errata. (Available from Amazon, etc.)