COSC 483:
The Design and Analysis of Algorithms
Fall 2006
Room:YR 201
Time: Tues., Thurs., 5:30-6:45
Textbook: T. Cormen, C. Leiserson, R. Rivest, and C. Stein,
Introduction to Algorithms,
McGraw Hill/MIT Press.
ISBN:
There are many other good books on algorithms out there. If you
are interested in other reading, I suggest the following:
- Levitin, A. Introduction to the Design and Analysis of
Algorithms. This book is a somewhat gentler introduction than
that which is found in Cormen et al. Cook Library has a copy of
the 2003 edition, but not the newer 2006 edition.
- Kleinberg, J. and Tardos, E. Algorithm Design> is a bit
verbose, but it does a great job of building a framework for
thinking about and comparing algoirithms. Cook Library has a
copy.
- A new book by Dasgupta, Papadimitriou, and Vazirani is simply
titled Algorithms,
a full draft is available online. It's probably a good text as well.
I have the Levitin book, the Kleinberg/Tardos book, and several
other texts in my office. Anyone who is interested is welcome to
come and take a look.
Course Description:
This course has two goals: 1) To provide a background
in techniques for analyzing the correctness and computational cost
of algorithms and 2) To discuss specific algorithms from a variety of
fields in Computer Science. Mathematical foundsations will be
reviewed, including asymptotic notation, summation techniques, and
recurrences. Several algorithm design techniques, including greedy
algorithms and dynamic programming will be discussed. Specific
examples from graph theory, computational geometry, string
matching, and NP-completeness theory will also be covered as time
allows.
Course Organization:
Coursework will consist of 6-7 homework assignments,
and 2 exams - a final and a midterm. Although the homework may
count for a relatively small portion of the final grade, it still
must be taken seriously: you may face difficulty on the eams if you
have not done the homework.Policies:
- All homework will be handed in on the due date. Late
assignments will be penalized 15% for each day of
delay. Assignments will not be accepted after solutions have been
discussed in class or posted on the web site.
- Your work should be easy to read: there are many
papers to be graded and we do not have the time to decipher
cryptic handwriting. If possible, type your work. Otherwise,
please write neatly and clearly. In any case, please explain your
answers clearly and succinctly. No credit will be given for
answers that we cannot understand.
- The work you turn in must be your own. You can feel free to
discuss assignment questions with others, but tyou must not take
any written notes out of these discussion. Cheating in any form -
including copying someone else's work or letting your work be
copied - is unacceptable at Towson University. Do not turn in work
that has been copied from somebody else, do not let your work be
copied. Anyone found cheating (on either side, copying or being
copied) will receive an F for the course and a letter to the dean
will be sent. Any incidents of cheating
will be handled through appropriate administrative channels.
- Attendance will be taken at each class session. If you
miss a class, it is your responsibility to make up the material, to
get information about assignments, and to complete those
assignments. Requests for permission to make up exams must be
supported by written verification of the reason for the absence.
- Towson University does not post grades. The department
office will not inform you about your grade after a course is
completed since you can check your grades online.
- University policy states that students may not
repeat a course more than once without prior permission of the
Academic Standards Committee.
- No food or drink is allowed in the labs; no food is
allowed in the classrooms.
- Please don't use cell phones, pagers, laptops, etc. in class.
Evaluation:
- Homework:
25%.
- Midterm:
35%.
Tentatively scheduled for October 10
- Final Exam (Tuesday, December 12):
40%.
Grading Policy
|
A: 93-100 |
A-: 90-92.9 |
|
B+: 87-89.9 |
B: 83-86.9 |
B-: 80-82.9 |
|
C+: 75-79.9 |
C: 70-74.9 |
|
D+: 65-69.9 |
D: 60-64.9 |
|
F: < 60 |
Although class participation is not listed explicitly,
you will need to attend class in order to do well in this course..
Syllabus:
- Foundations: algorithms and efficiency,
asymptotic notation, average and worst-case analysis, mathematical
tools, recurrences.
- Sorting and Selection: merge sort, quick sort,
selection.
- Algorithm Design Techniques: Greedy algorithms, divide and
conquer, dynamic programming, amortized analysis.
- Data Structures: binary heaps, binomial heaps, binary
search trees, balanced trees, disjoint sets.
- Graph algorithms: basic traverals, minimum spanning trees,
shortest paths, network flow algorithms
- Computational Geometry: convex hulls, closest points,
range searching
- Computational Complexity: P and NP, NP-Complete problems,
Heuristic approaches for NP-complete problems, Approximation
algorithms.
- Others: pattern matching and others as time allows