16:198:513:01
Design And Analysis Of Data Structures And Algorithms I, Fall 2006
Final Exam: same room: HLL-120, same time: 3:20pm.
Time: T-Th 3:20-4:40 pm
Place:
HLL-120
Instructor:
Endre Szemerédi
Office :
HLL-492
Office Hours: Tuesday 9:20am-10:20am & 5pm-6pm
TA:
Miguel Mosteiro
Office:
HLL-414
Office Hours: Wednesday 10am-11am
TA 10/16 -> 11/30:
Devendra Desai
Office:
HLL-203
Office Hours: Monday 1pm-3pm
Objectives:
Core material for Computer Science degree candidates. Discussion of
representative algorithms and data structures encountered in
applications.
Prerequisites:
Admission requirements; familiarity with the Prim and Kruskal minimum
spanning tree algorithms and with the Dijkstra shortest path
algorithm.
Knowledge of basic concepts of programming and data
structures is assumed (e.g. lists, stacks, queues, trees) as well as
basic mathematics (e.g. proof by induction, permutations, logarithms,
the basics of solving recurances, and asymptotic (i.e. "big-oh",
"big-omega") notation). A general background in undergraduate
algorithms: sorting upper and comparison model lower bounds, MST
algorithms, shortest paths, etc.
Outline:
Basic Concepts of Algorithm Design and Analysis.
Worst-case, average case, and amortized analysis.
Data structures: search trees; hash tables; heaps; Fibonacci heaps; union-find programs.
Algorithms: string matching; sorting and order statistics; graph algorithms.
NP-completeness.
Fundamental techniques for designing efficient
combinatorial algorithms and mathematical methods for analyzing their
complexity.
Expected Work:
The course is primarily a lecture course with 6-7 homework
assignments. There is a midterm and final examination.
Text:
Cormen, Leiserson, Rivest and Stein, Introduction to Algorithms, 2nd Ed., MIT Press, 2001 (CLRS2).
References:
Jon Kleinberg and Éva Tardos, Algorithm Design, Addison-Wesley, 2006.
Tarjan, R.E., Data Structures and Network Algorithms, SIAM, 1984.
Baase, S., Computer Algorithms: Introduction to Design and Analysis, Addison-Weslay, 1978.
Tentative list of topics: All chapter numbers are listed for the CLRS2
book (The list of topics may vary according to level of student algorithmic and
graph-theoretic background). All these chapters are present in the first edition
of the book as well, but chapter numbers and problem numbers will not be
provided for this.
- Chapter 6, Heapsort.
- Chapter 7, Quicksort.
- Chapter 8.1-3, Lower Bounds for Sorting, Counting Sort, Radix Sort.
- Chapter 9, Selection.
- Chapter 12, Binary Search Trees.
- Chapter 13, Red-Black Trees.
- Chapter 17.1-3, Amortized Analysis.
- Chapter 19, Binomial Heaps.
- Chapter 20, Fibonacci Heaps.
- Chapter 21, Data Structures for Disjoint Sets.
- More chapters to be announced later.
Grading Policy:
There will be one midterm and a final exam. The midterm
is worth 30% of the final grade. The final will weigh 40% of the final grade.
All tests are cumulative. Weekly homework assignments will constitute the
remaining 30% of the final grade.
The homework assignments are mathematically oriented and involve
derivations of mathematical equations, proofs of combinatorial
theorems and running time analysis of combinatorial algorithms.
Homework is to be done independently. Students are encouraged to
discuss general course material with their classmates, the TA or the
instructor, but specific homework problems may not be written
collaboratively. NO LATE HOMEWORK WILL BE ACCEPTED.
Homeworks: A '*' indicates that a problem is difficult.
- Homework 1 (Due in class on 09/21)
- 6.4-4
- 6.4-5*
- 6.5-8
- 7.2-6
- 7.4-2
- 7.4-6*
- Homework 2 (Due in class on 10/03)
- 8.1-3
- 8.1-4
- 9.1-1
- 9.1-2*
- 9.3-6
- 12.2-8
- Homework 3 (Due in class on 10/17)
- 12.2-8
- 13.2-4
- 13.2-5
- 13.3-5
- 13.4-7
- 17.3-1
- Homework 4 (Due in class on 11/14)
- 20.3-1
- 20.4-2
- 21.3-3
- 21.3-4
- 21.4-4
- 21.4-2
- Homework 5 (Due in class on 11/28)
- 22.2-5
- 22.2-7
- 22.3-8
- 23.1-5
- 23.1-8
- 23.2-4
- Homework 6 (Due in class on 12/12)
- 26.2-4
- 26.2-9
- 26.3-3
- 26.3-4
- 32.3-3
- 32.4-6
Schedule for the first 6 weeks:
- Primality testing
- Factorization
- Randomized parallel matching
- Time-space trade-off for branching programs
Most probably the students will have to present a paper
at the end of the semester.
The first class will be on January 25.