Department of Computer Science

Kent State University

CS 46101/56101 - Fall 2002

Design and Analysis of Algorithms


[Syllabus] [Project] [Schedule] [Homework] [(F)AQ] [Home]



CS 4/56101 Syllabus

Instructor: Dr. Volkert

office: 216 MSB
phone: 672-9037
email: volkert@cs.kent.edu
office hours: T Th 2:30 - 4:00 p.m.

Prerequisites:

CS 31011, CS 33001 and MATH 12003 or equivalent (discrete mathematics and data structures)

Time and Place:

Tuesdays and Thursdays, 12:15 pm - 1:30 pm, MSB 228.
Midterm Exam on Thursday, Oct. 17, 2002.
Final Exam: Monday, Dec 9, 2002, Room MCS 109, 12:45 pm - 2:00 p.m.

Required Textbook:

Algorithm Design, Foundations, Analysis, and Internet Examples, Goodrich and Tamassia, Wiley Publishers, 2001
ISBN: 0-471-38365-1

Suggested Reference Textbooks:

Fundementals of Algorithms, Brassard and Bratley, Prentice Hall, 1996
ISBN: 0-13-335068-1.

Introduction to Algorithms (2nd Edition), Cormen, Leiserson, Rivest and Stein , MIT press 2001,
ISBN: 0-07-013151-1.

Data Structures and Algorithms in Java, (2nd Edition), Goodrich and Tamassia, Wiley Publishers, 2000
ISBN: 0-471-38367-8

Description.

This course will cover the fundamentals of analysis of algorithms, time and space complexity and their trade-offs. We will also cover sorting algorithms, heaps, hash tables, trees, greedy algorithms, graph algorithms, string algorithms and an introduction to NP-completeness.

A thorough knowledge of algorithms allows a computer scientist to determine what problems can be solved using a given amount of resources. The tools and techniques used for the basic algorithms covered in this course can be adapted to provide efficient solutions to many novel problems.

The study of algorithms is mainly a mathematical study, in that it involves calculating the amount of time used for compound solutions given costs of basic operations, and theoretical limits on computations of certain problems. Therefore, homeworks will not involve a lot of programming, rather algorithm design and analysis. In the cases where programming is required, students may program in any language they please. The stress is on algorithmic design and clarity.

Assignments

There will be 6 homework assignments, roughly one every other week. Homeworks are due at the begining of class on the due date. Since homeworks may be discussed in class, I will mark off 20% for each day late. Homeworks may be submitted via e-mail as long as they are sent as a PDF formated file

Additionally there will be a programming project that involves implementing some of the algorithms presented in class. Each algorithm will be executed on instructor supplied datasets and must record run-time statistics. Comparisons of the run-time statistics will be written up and turned in for credit along with print-outs of your source code and a self-assesment of your experience.

Exams and Grading

Your final course grade will be determined as follows: Homework Assignments: 30% (6 assignments) Programming Project: 20% Midterm: 25% Final Exam: 25%

Policies