CSc 545 | Design and Analysis of Algorithms |
Time and place | MonWed 3:00-4:30, Gould-Simpson 906 |
Instructor |
Alon Efrat alon@cs.arizona.edu Gould-Simpson 720 (520) 621-8047 Office hours: TuesTh 3:00-4:00pm, or by an appointment. |
Grader: | Anurag Katiyar, anuragk@email.arizona.edu |
Description |
After a short illustration of algorithm design and analysis,
the course begins with a brief review of basic
analysis techniques
(approximating functions asymptotically, bounding sums,
and solving recurrences). Student are
expected to have some familiarity with this material. After covering several topics related to data structures, we will study Amortized Analysis which is a common technique to bound the running time of algorithms which have the property that one of their operation might be computationally expensive, but their overall running time is still small.
We will study several algorithms and data structures whose analysis require the use of this technique.
We then study problems that are efficiently solvable, focusing on
basic design techniques
(divide-and-conquer, dynamic programming, and greedy). We present some graph algorithms
(strongly-connected components, minimum spanning trees, shortest paths,
and mainly maximum flow and its application). We will see how some of these, and similar algorithms can be used for the internet and other routing application
We will survey some approximation algorithms, and branch-and-bound), as methods to handle intractability
If time would permit, we will discuss other topics such as string matching and computational geometyr
The emphasis throughout is on algorithm design: the ability to synthesize correct and efficient procedures for new combinatorial problems. This skill is developed through written assignments containing challenging exercises. The scope of the course will focus slightly more toward practical areas. |
Hopmework | Here. |
Web resources | Splay tree. |
Notes | Click Here |
Newsgroup | course.cs545 |
Required text |
Thomas H. Cormen, Charles E. Leiserson, Ron L. Rivest, and Clifford Stein [CLR], Introduction to Algorithms, second edition, McGraw-Hill, Boston, 2001. |
Optional text |
Dexter C. Kozen, The Design and Analysis of Algorithms, Springer-Verlag, New York, 1992. |
Reserved books | The optional text by Kozen will be put on reserve in the Main Library. |
Syllabus |
The course is organized into several parts.
After each topic below is the approximate number of lectures
followed by chapter numbers from the text.
Material not in the textbook [CLR] will be spread in the classroom.
I Background
II Data structures
III Amortized Analysis and more data structures
IV Design techniques
V Graph algorithms
VI Dealing with intractability
|
Schedule |
There are two in-class exams.
|
Grading |
33% Homeworks 40% Better Exam Grade 27% Lower Exam Grade Mapping numerical grading to a letter grade: Basically, 91-100 and up is mapped to 'A', 81-90 are mapped to 'B', 71-80 are mapped to 'C' etc. However, numerical grades which are close to the borderline (for example -89) might be mapped either way, based on parameters such as participation in discussions in class, originality in solving homework problems etc. |
Policies |
On homeworks you may discuss general ideas with friends, but your
solutions must be written up separately and represent individual work.
Use of solutions from previous offerings of the course is not
permitted.
Homework is due at the start of class; homework turned in once
class begins is not accepted.
The online webpage of homeworks is
here.
When you turn in solutions to homeworks and exams, write only
on one side of the paper, and staple your pages together.
Neatness, and especially conciseness, is required
to earn the highest marks.
If you cannot solve a problem,
state this in your write-up,
and write down only what you know to be correct;
rambling at length about ideas that don't quite work
may cause additional points to be deducted. Attendance would be checked during the first 2-3 weeks. Missing more than one class in this period might lead to an administrative drop from the class. After this period, attendance is not mandatory but recommended. However, it is your responsibility to know the material as it was taught in the class.
|