# Department of Computer Science & Engineering

## CS477/677 Analysis of Algorithms (Fall 2007)

• Meets: TR 2:30 pm - 3:45 pm (SEM 347)

• Instructor: Dr. George Bebis

• Email: bebis@cse.unr.edu
• Phone: (775) 784-6463
• Office : 235 SEM
• Office Hours: MW 11:00 am -12:30 pm and by appointment

• E-mail: TBD
• Text: Cormen, Leiserson, and Rivest Introduction to Algorithms McGraw Hill, 2nd edition, 2001.

• Other Texts:
Brassard and P. Bratley, Fundamentals of Algorithms , Prentice Hall, 1996.
Horowitz, Sahni, and Rajasekaran Computer Algorithms , Computer Science Press, 1996. .

## Prerequisites

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.

## Description/Objectives

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., slides/projector).

## Course Policies

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.

## Disability Statement

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.

• ## Presentation Guidelines

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 bad thing...
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 quickly.
8. Be as confident and upbeat as possible. Everyone will eventually be where you are and we really do want you to do well.

• ## Course Project

• Department of Computer Science & Engineering, University of Nevada, Reno, NV 89557