Department of Computer Science & Engineering
CS477/677 Analysis of Algorithms (Fall 2007)
Meets: TR 2:30 pm - 3:45 pm (SEM 347)
Dr. George Bebis
- Office : 235 SEM
- Office Hours: MW 11:00 am -12:30 pm and by appointment
Cormen, Leiserson, and Rivest Introduction to Algorithms McGraw Hill, 2nd edition, 2001.
Brassard and P. Bratley, Fundamentals of Algorithms , Prentice Hall, 1996.
Horowitz, Sahni, and Rajasekaran Computer Algorithms , Computer Science Press, 1996.
Sedgewick, Algorithms, Addison-Wesley.
CS 365 (Mathematics of Computer Science). Also, good working knowledge of
data structures such as linked lists, trees, and dynamically allocated
structures is required. If you do not meet the prerequisite requirements
for this course, you should see me immediately.
The design and analysis of algorithms is the core subject matter of Computer
Science. Given a problem, we want to (a) find an algorithm to solve the
problem, (b) prove that the algorithm solves the problem correctly, (c) prove
that we cannot solve the problem any faster, and (d) implement the algorithm.
Designing an algorithm for a computational problem involves knowledge
of the problem domain, a thorough knowledge of the data structures that are
available and suitable and no small measure of creativity. This course
concentrates on the above problems, studying useful algorithmic design
techniques, and methods for analyzing algorithms.
Course Outline (tentative)
- Introduction/Mathematical Foundations (Chapters 1, 3, Appendix A)
- Recurrences (Chapter 4)
- Intro to Sorting Algorithms (Chapter 2)
- Randomized Algorithms (Chapter 5)
- More on Sorting Algorithms (Chapters 6-9)
- Searching Algorithms (Chapters 11-14)
- Dynamic Programming (Chapter 15)
- Greedy Algorithms (Chapters 16)
- Graph Algorithms (Appendix B4, Chapters 22-25)
- NP-Complete Problems (Chapter 34)
Exams and Assignments
Grading will be based on two exams, quizzes, homework, a course project, and a
short presentation. Specifically, there will be several quizzes in class which
will be announced at least one class period in advance. Homework problems will
be assigned and collected for grading on a regular basis. Each homework
assignment will contain 5-8 problems. Undergraduate students will be required
to solve only those problems designated as "U-required"; graduate students
will be required to solve all of them. Homework solutions will be made
available within a week of the due date for the assignment. There will be two
exams, a midterm and a final. The material covered by the exams will be drawn
from the lectures, the quizzes, and the homework. Undergraduate students will
be required to solve only those exam problems designated as "U-required";
graduate students will be required to solve all of them. The course project
will have both individual and team components. Specifics and due dates will
be announced in class. Graduate students will be required to do extra work.
Also, there will be a short presentation (15-20 minutes) on a contemporary
issue related to algorithms. Presentations will be done in groups of two and
topics will be decided in coordination with the instructor. The presentations
should be professional as if it was presented in a formal conference (i.e.,
Lecture slides, homework assignments, and other useful information will be
posted on the course web page. Regular attendance is highly recommended. If
you miss a class, you are responsible for all material covered or assigned
in class. You should carefully read the section on Academic Dishonesty found
in the UNR Student Handbook (copies of this section are available
on-line). Your continued
enrollment in this course implies that you have read it, and that you
subscribe to the principles stated therein. Discussion of the assignments is
allowed and encouraged between students. However, each student would be
expected to do his/her own work. Assignments which are too similar will
receive a zero. No late homework or project report will be accepted. If you
are unable to hand in your homework or project report by the designated
deadline, you must notify me before the deadline. No incomplete grades (INC)
will be given in this course and a missed quiz/exam may be made up only if it
was missed due to an extreme emergency.
Any student with a disability needing academic accomodations is requested
to speak with me or contact the Disability Resource Center (Thompson Building,
Suite 101), as soon as possible to arrange for appropriate accomodations.
1. Cryptography, IEEE Potentials, February/March 2001 (3 pages); also see How Public Key Cryptography Works
2. Digital Signatures, IEEE Potentials, March/April 2006 (4 pages); also see How Public Key Cryptography Works
3. Nature's Algorithms, IEEE Potentials, April/May 2001 (4 pages)
4. Genetic Algorithms, IEEE Potentials, April/May 2001 (3 pages); also, see Applications of Genetic Algorithms, IEEE Potentials, February/March 1995 (5 pages)
5. Quantum Computers and Algorithms, IEEE Potentials, December02/January03 (4 pages)
6. Bioinformatics, IEEE Potentials, February/March 2004 (4 pages)
7. Learning Programs: Teaching Computers to Acquire Knowledge, IEEE Potentials, October 1992 (4 pages)
8. .The history of life through evolutionary computation, IEEE Potentials, August/September 2005 (4 pages)
9. Authenticating Airline Passengers, IEEE Potentials, February/March 2003 (3 pages)
10. The brick wall: NP-completeness, IEEE Potentials, October/November 1997 (6 pages)
11. Evolutionary Computation, IEEE Potentials, February 2000 (6 pages)
12. Breaking intractability, Scientific American, January 1994 (7 pages)
13. B-Trees, also see pages 434-452 in our textbook
14. Binomial Heaps, also see pages 455-471 in our textbook (definition of Binomial Heaps and basic operations, no proofs)
15. String matching, pages 906-915 in our textbook (no proofs); also see String Mathcing Applets
16. Convex Hull Algorithms, pages 947-952 in our textbook (no proofs); also see Convex Hull Animations
17. An Empirical Study on Insertion and Deletion in Binary Search Trees, Communications of the ACM, vol. 26, no. 9 (7 pages)
1. Presentations should be professional as if it was presented in a formal confe
rence (i.e., powerpoint slides/projector).
2. Your goal is to educate and inform your audience. Make sure your presentation
follows a logical sequence. Help the audience understand how successive definit
ions and results are related to each other and to the big picture.
3. You should have your remarks prepared and somewhat memorized. You may use not
es, however if your notes were somehow lost or destroyed you should be able to g
ive your presentation anyway. Reading from your notes excessively will be a very
4. Anticipate Questions: think of the five most likely questions and plan out yo
ur answer Understand the Question: paraphrase it if necessary; repeat it if need
ed. Do Not Digress. Be Honest: if you can't answer the question, say so
5. Each group's material is different but 15 - 20 minutes each should be more th
an adequate time for your presentation.
6. Meet the eyes of your audience from time to time.
7. Vary the tone of your voice and be careful to speak clearly and not talk too
8. Be as confident and upbeat as possible. Everyone will eventually be where you
are and we really do want you to do well.
Department of Computer Science & Engineering, University of Nevada, Reno, NV 89557