Skienna, The Algorithm Design Manual, 2nd Edition, Springer, 2010
Available in hardcover, paperback, and e-text forms to rent or buy.
Note that the book has strong reference value for the future.
We'll affectionately call the book "the Design Manual" or "DM" for short.
An evolving summary of course resources and lecture topics is maintained and is linked from the course Sakai website.
Homework will be assigned primarily on a "problem of the day" basis. A homework problem will be assigned at the end of each class and due at the beginning of the next class. This is in part an attendance record keeping mechanism. For that reason, you cannot give your homework to another person to hand in or hand it in at another time or place. One point will be assigned for any solution and 2 points for a correct solution. 2.2 points will be given for especially well written and thorough solutions. In addition there will be two projects involving programming.
There will be a midterm exam and a final exam. The midterm exam will cover approximately a half of the course material. The final exam will be 1/4 on the first half and 3/4 devoted to the second half. The exams are closed book, closed notes, closed electronic devices.
Exams, pencil and paper exercises, and programming assignments are intended to measure your individual performance and accomplishments in the course. The writeup and organization of the solutions you submit must be entirely your own. You may consult books, papers, and web sources for ideas. However this is usually neither necessary nor particularly recommended. Solutions you discover for your self, you own. They are much more memorable for exam time and for later life. Plagerism from other students in the course or from anyone else is not tolerated and will be prosecuted in the UD judicial system.
Design and analysis of algorithms: worst/average case analysis, proofs for
correctness and performance of algorithms. Algorithmic strategies (divide and
conquer, greedy methods, dynamic programming, etc.). Algorithms for searching,
forming and traversal of strings, trees and graphs. Categorization of
computational problems: classes P and NP. NP completeness.
PREREQ: MATH210 and a minimum grade of C- in CISC220.