Analysis of Algorithms Fall 2000
Data structures and algorithms, and
discrete mathematics are required for this course. If you do not
meet these requirements you must talk with the instructor.
An un-graded ``assessment test'' will be given.
Monday, Wednesday 6:30 - 7:45 in 137EC
William D. Shoaff, 252 Olin Engineering Complex
Telephone (321) 674-8066
See http://www.cs.fit.edu/wds/classes/office.html
or by electronic mail wds@cs.fit.edu,
or by appointment.
http://www.cs.fit.edu/wds/classes/algorithms.
http://lyris.fit.edu/cgi-bin/lyris.pl
Introduction to Algorithms,
Corman, Leiserson, Rivest,
McGraw-Hill, 1990.
Fundamentals of Algorithmics, G. Brassard and P. Brantley,
Prentice-Hall, 1996.
- Two quizzes 200 points
- Florida Tech Algorithmics Conference 100 points
- Final exam 100 points
- Letter grades will be assigned according to the following scale:
A=90 - 100% B=80 - 89% C=70 - 79% F=0 - 69%
This class covers
the design and analysis of algorithms.
Some simple mathematical concepts are needed to analyze
algorithms, e.g., mathematical induction, combinatorics,
knowledge of standard functions, and recurrence equations.
We will see that many algorithms can be categorized as belonging to
a class type, e.g., divide-and-conquer algorithms, greedy
algorithms, dynamic programming, backtracking, local search etc.
Understanding this helps one to design better algorithms
for solving new problems.
Searching and sorting are two fundamental computer science problems and
many algorithms will be presented to solve these problems.
Many other algorithms will be covered, for example,
graph algorithms, numerical algorithms, and scheduling algorithms.
Topics on the complexity of algorithms (P and NP) will be introduced.
Ethical issues related to computer algorithms.
Homework problems will be provided for practice
in the design and analysis of algorithms.
Students are encouraged to know how to correctly work all problems.
Selected problems will be collected weekly for grading.
The instructor is available for help.
You may write your programs in any language and for any machine.
Your programs will be graded on (1) meeting the stated requirements
of the project and (2) programming ``style.''
You must be able to demonstrate your program to the instructor.
Extra consideration will be given to students who use literate
programming, see for example noweb
Each student is required to submit a paper for the
Florida Tech Algorithmics Conference
Each student must provide an anonymous reviews of two papers written by other
students.
Each student must present the results of their work to the rest of the class.
The goal of homework is to master the material.
This can often best be accomplished by working with others.
If you do study with others, you owe it to yourself and your
group to spend time trying to solve each problem prior to meeting with the
group.
You must write up solutions by yourself without assistance,
this includes any code you may write.
You must also identify collaborators on all assignments.
If you obtain a solution through research, provide a citation
of your source.
Absolutely no collaboration is allowed on exams.
Plagiarism and other anti-intellectual behavior will not be tolerated.
- First class: Monday, August 28, 2000
- Last day to add/drop with full refund and without W:
Friday, September 1, 2000
- Labor Day Holiday: Monday, September 4, 2000
- Quiz 1: Monday, October 2, 2000
- Last day to drop with a W: Friday, October 20, 2000
- Quiz 2: Monday, November 20, 2000
- Thanksgiving Holiday: November 23-24, 2000
- Florida Tech Algorithmics Conference: November 27 - December 6, 2000
- Final Exam: 8:30 - 10:30, Wednesday, December 13, 2000
- AC75
-
A. V. Aho and Margaret J. Corasick.
Efficient string matching: An aid to bibliographic search.
Communications of the ACM, 18(6):333-340, June 1975.
- AHU74
-
A. V. Aho, J. E. Hopcroft, and J. D. Ullman.
The Design and Analysis of Computer Algorithms.
Addison-Wesley, 1974.
- AHU83
-
A. V. Aho, J. E. Hopcroft, and J. D. Ullman.
Data Structures and Algorithms.
Addison-Wesley, 1983.
- Baa88
-
Sara Baase.
Computer Algorithms: Introduction to Design and Analysis.
Addison-Wesley, second edition, 1988.
- BB96
-
Gilles Brassard and Paul Bratley.
Fundamentals of Algorithmics.
Prentice-Hall, 1996.
ISBN 0-13-335068-1.
- Ben79
-
Jon Louis Bentley.
An introduction to algorithm design.
Computer, pages 66-87, February 1979.
- Ben82
-
Jon Louis Bentley.
Writing Efficient Programs.
Prentice-Hall, 1982.
- Ben86
-
Jon Louis Bentley.
Programming Pearls.
Addison-Wesley, 1986.
- Ben88
-
Jon Louis Bentley.
More Programming Pearls: Confessions of a Coder.
Addison-Wesley, 1988.
- BM77
-
Robert S. Boyer and J. Strother Moore.
A fast string searching algorithm.
Communications of the ACM, 20(10):762-772, October 1977.
- CLR90
-
Thomas H. Corman, Charles E. Leiserson, and Ronald L. Rivest.
Introduction to Algorithms.
McGraw-Hill, 1990.
- GBY91
-
G. H. Gonnet and R. Baeza-Yates.
Handbook of Algorithms and Data Structures.
Addison-Wesley, 1991.
- GK82
-
Daniel H. Greene and Donald E. Knuth.
Mathematics for the Analysis of Algorithms.
Birkhäuser, second edition, 1982.
- GKP89
-
Ronald L. Graham, Donald E. Knuth, and Oren Patashnik.
Concrete Mathematics.
Addison-Wesley, 1989.
- GT98
-
Micheal T. Goodrich and Roberto Tamassia.
Data Structures and Algorithms in Java.
Wiley, New York, New York, 1998.
- Gus97
-
Dan Gusfield.
Algorithms on Strings, Trees, and Sequences: Computer Science
and Computational Biology.
Cambridge University Press, 1997.
- Har92
-
David Harel.
Algorithmics: The Spirit of Computing.
Addison-Wesley, second edition, 1992.
- Hoa61
-
C. A. R. Hoare.
Quicksort.
Computer Journal, 5(1):10-15, 1961.
- HS78
-
Ellis Horowitz and Sartaj Sahni.
Fundamentals of Computer Algorithms.
Computer Science Press, 1978.
- KMP77
-
D. E. Knuth, J. H. Morris, and V. R. Pratt.
Fast pattern matching in strings.
SIAM Journal of Computing, 6(2):240-267, June 1977.
- Knu74
-
Donald E. Knuth.
Structured programming with go to statements.
Computing Surveys, 6(4):261-301, December 1974.
- Knu93
-
Donald E. Knuth.
The Stanford GraphBase: A Platform for Combinatorial Computing.
Addison-Wesley, ACM Press, 1993.
- Knu97a
-
Donald E. Knuth.
The Art of Computer Programming: Fundamental Algorithms,
volume 1.
Addison-Wesley, third edition, 1997.
- Knu97b
-
Donald E. Knuth.
The Art of Computer Programming: Seminumerical Algorithms,
volume 2.
Addison-Wesley, third edition, 1997.
- Knu98
-
Donald E. Knuth.
The Art of Computer Programming: Sorting and Searching,
volume 3.
Addison-Wesley, third edition, 1998.
- Kru56
-
J. B. Kruskal.
On the shortest spanning subtree of a graph and the traveling
salesman problem.
Proceedings of the American Mathematical Society, 7:48-50,
1956.
- LP78
-
Harry R. Lewis and Christos H. Papadimitriou.
The efficiency of algorithms.
Scientific American, pages 96-108, January 1978.
- Lue80
-
George S. Lueker.
Some techniques for solving recurrences.
ACM Computing Surveys, 12(4):419-436, December 1980.
- Raw91
-
Gregory J. E. Rawlings.
Compare to What? An Introduction to the Analysis of Algorithms.
Computer Science Press, 1991.
- Ros99
-
Kenneth H. Rosen.
Discrete Mathematics and its Application.
McGraw-Hill, 1999.
ISBN 0-07-289905-0.
- Sed77
-
Robert Sedgewick.
The analysis of quicksort programs.
Acta Informatica, 7:327-355, 1977.
- Sed78
-
Robert Sedgewick.
Implementing quicksort programs.
Communications of the ACM, 21(10):847-857, October 1978.
- Sed92
-
Robert Sedgewick.
Algorithms in C++.
Addison-Wesley, 1992.
How is my teaching?
Review this class anonymously at
TeacherReviews.com.
William Shoaff
2000-08-30