CSC304 Spring 2010 Syllabus

CSC304 Algorithms [ https://scholar.georgetowncollege.edu ] TR 09:30am-10:45am, Asher 132
Dr. Danny Thorne (dthorne0), Asher 121, 502-863-8362, http://www.georgetowncollege.edu/Departments/mpc/thorne/

Course Description Study of algorithms such as advanced searching and sorting algorithms, graph and numerical algorithms, hashing, pattern matching, and others. Complexity and recursion.

Primary Text Sedgewick, Algorithms in C++ (1992) -- http://www.amazon.com/Algorithms-C-Robert-Sedgewick/dp/0201510596
Sedgewick picks up in a pretty natural way where we left off in CSC215 and covers a nice broad range of algorithms in a way suitable for an introductory undergraduate level course.
Auxiliary Text Dasgupta, Papadimitriou, and Vazirani, Algorithms -- http://www.amazon.com/Algorithms-Sanjoy-Dasgupta/dp/0073523402/ (Online version: http://www.cs.berkeley.edu/~vazirani/algorithms.html)
This is a very nice, albeit terse, exposition. I considered using this as the primary text, but it assumes more background than what CSC215 and MAT301 provide.
Popular Reference Cormen, et al., Introduction to Algorithms -- http://www.amazon.com/gp/product/0262033844/
This may be the most commonly used and referenced algorithms text. It is the text that was used in my graduate level algorithms course. Dr. Crawley and I tend to consider it too big and elaborate for the primary text of an introductory undergraduate course.
Classic Monograph Knuth, The Art of Computer Programming -- http://www.amazon.com/Art-Computer-Programming-Volumes-Boxed/dp/0201485419
Probably most people familiar with this 4 volume opus (5th volume in the works) would not consider it an overstatement to call this a masterpiece. The original three volume set that was completed last century was named by American Scientist as one of the 100 or so Books that shaped a Century of Science, listed among the 12 physical sciences monographs along with works by Einstein, von Neumann, Feynman, etc. It is the authoritative exposition on algorithms. Although not appropriate as the primary text for an undergrad introduction, Donald Knuth is one of the paragons of our field with whom every computer science major should be familiar.
Grading Categories and weightings: Homework 0.55, Exam One 0.15, Exam Two 0.15. Final Exam 0.15. Numerical scores between 0 and 1 (0% and 100%) are computed for assignments and exams by dividing the total number of points earned by the total number of points possible. Scores for categories are computed by averaging the individual scores in the categories. The score for each category is then weighted according to the above weights to give an overall course score between 0 and 1. The overall score for the course is then mapped to a letter grade for the course as follows: [0.925,1.000]-->A, [0.875,0.925)-->AB, [0.825,0.875)-->B, [0.775,0.825)-->BC, [0.700,0.775)-->C [0.600,0.700)-->D [0.000,0.600)-->F .

Homework Homework will be assigned and collected regularly. Homework will be in the form of both pencil & paper assignments and programming projects. Homework should be completed independently by each student (see the Honor System section of the Student Handbook http://www.georgetowncollege.edu/studentlife/handbook.pdf). That does not mean you have to avoid discussing concepts related to assignments with each other, but you need to do your own work. If you do discuss aspects of an assignment with others in a way that helps you understand how to complete part(s) of the assignment, cite them on your assignment submission (i.e., provide their name and how they helped you). Likewise, cite any other sources from which you get assistance. If you have to turn in homework late, provide a documented reason.

Exams Tentative, approximate dates for the midterm exams are late February for Exam 1 and mid April for Exam 2. If you must miss an exam and want to make it up, arrange it with me at least a couple of days before the exam date, and provide a documented reason for missing.

The Final Exam is scheduled for Friday, May 7, 9-11am.

Attendance Your attendance will be monitored. There is no explicit category for attendance in the grading scheme for the course. However, missed exams and homework will affect your grade. Furthermore, attendance will flavor my decisions about borderline scores at the end of the semester.

Office Hours My office hours ( M 3:30p-4:30p, T 1:30p-2:30p, W 3:30p-4:30p, R 1:30p-2:30p ) are posted on my door and on my web page. They might change, so check my door or the web page to confirm. I am at your disposal independently of office hours. You may call ahead, make an appointment, or just drop by and see if I am available. If I am unavailable due to work-related business when you drop by, I will tell you; otherwise, I am happy to see you anytime.

Coding Style Conventions