COMPUTER SCIENCE 315                                                        Juniata College
Analysis and Algorithms                                                                   Spring 2010

Description:
The study and analysis of algorithms, their complexity and supporting data structures. Topics include searching, sorting, mathematical algorithms, tree and graph algorithms, the classes of P and NP, NP-complete and intractable problems, and parallel algorithms.

This course has a CW designation as a writing course.

Prerequisites:    CS 240, MA 160, and MA 210 or MA 116

Class Times and Locations:
TuTh     1:00pm - 2:20pm     C-210 Brumbaugh Academic Center
M          4:00pm - 4:55pm     C-102 Brumbaugh Academic Center

Instructor:    Dr. Gerald Kruse

Phone:          641-3595

Office:          C-205A Brumbaugh Academic Center

E-mail:         kruse@juniata.edu

Office Hours:  For the most up-to-date, see http://faculty.juniata.edu/kruse/office.htm

Textbook:        Introduction to Algorithms, Third Edition, by Cormen, Leiserson, Rivest, and Stein. ISBN: 978-0262-03384-8
Any CD's containing the implementation of algorithms from the text is optional.

Grading (Dates tenative):
Exam 01, Thurs 18.Mar 100 pts.
Exam 02, Tues 04.May100 pts.
Writing Assignments, approx 150 pts.
Homework Assignments, approx 150 pts.
Class Attendance, Participation, and Professionalism 25 pts.
                       

Participation:
Each student will be expected to present at least one homework problem to the rest of the class over the course of the semester. Volunteers will be solicited before students are randomly chosen. Additionally, you may earn a bonus point for asking a good, insightful question during discussion section. Students are expected to attend and participate in each class, and act with their peers and instructor in a professional manner.

Homework: (as always, show your work or include your Maple worksheet, where appropriate)
HW01 due 01/25 (upload in Moodle): Read Chap. 1, E 1.1 - 4,  E 1.2 - 2,  E 1.2 - 3,  P 1-1(only thru one day)
HW02 due 02/01 (upload in Moodle): Read Chap. 2, A.1-1(pg. 1149), A.2-1(pg. 1156), C.1-9(pg. 1188), E 2.2 - 1, E 2.2 - 2, E 2.2 - 4, E 2.3 - 1, E 2.3 - 3, P 2-3 (parts a and b only)
HW03 due 02/08 (upload in Moodle): Read Chap. 3, Chap. 4 (read Chap 28 Sec. 2 if you have the 2nd edition), P 2-2 (part d only, be sure to clearly identify the worst-case, though), E 3.1 - 3, E 3.1 - 4, E 4.4-6 (if you have the 2nd edition this problem is E 4.2 - 2)
HW04 due 02/15 due 02/22 (upload in Moodle): Read Chap. 7, E 4.2-1 (if you have the 2nd edition this problem is E 28.2 - 1), E 4.2-2 (this problem is not in the 2nd edition ), E 7.1 - 1 array of <13, 19, 9, 5, 12, 8> only , E 7.1 - 2, E 7.2 - 2, E 7.2 -3
HW05 due 02/21: Read Chap. 6, E 6.1 - 1 , E 6.1 - 2, E 6.1 - 6, E 6.2 -1
HW06 due 03/01 due 03/04: Read Chap. 9 and 8,E 6.2 - 3 , E 6.2 - 4, E 6.3 - 2, E 6.5 -1, E 6.5 -2, P 9-1, E 8.2 - 3, E 8.3 - 4
HW07 due 03/17: Read Chap. 12, E 12.1 - 1, E 12.1 - 2, E 12.2 - 1, E 12.2 - 5, P12 - 2

Writing Assignments:
Writing Assignment 01 (upload in Moodle)
Writing Assignment 02 (upload in Moodle) due Mon, 15.Feb
Writing Assignment 03 (upload in Moodle) first draft due Fri, 26.Feb at 5:00pm Mon, 01.Mar at 4:30pm, final draft due Fri, 05.Mar at 5:00pm


Code:
Sorts.java

Additional links:    Partition Worksheet     Google's Ranking Changes      Timing in Java and C++      Excel Tips      Running Visual C++      An Interesting Discussion of Euler's Sums      Sum of the squares of inverses      Running of the Squirrels      Herding Cats     Bambi Meets Godzilla

Content:
Growth of Functions / Summations, Recurrence Relations, O( ) sorts, Heapsort, Quicksort, other O( ) sorts, sorting in linear time, Medians and Order Statistics, Hash Tables, Binary Search Trees, Red-Black Trees, Augmenting Data Structures, Elementary Graph Algorithms, Pattern Matching, Internet Algorithms, NP-Completeness

Sorting Animations

The home of Zestful Algorithms.

Standard Course Policies: For the most up-to-date, see http://faculty.juniata.edu/kruse/policies.htm