Data Structures (0368.2158)
Instructor:
Prof. Yossi Matias
(matias+ds@cs.tau.ac.il)
Teaching Assistants:
Oded Schwartz
(odedsc@tau.ac.il)
Asaf Shapira
(asafico@post.tau.ac.il)
This page will be modified during the course, and will outline
the classes
Text books:
Intoduction to Algorithms,
by Cormen, Leiserson and Rivest.
Data Structures and Algorithms,
by Aho, Hopcroft and Ullman.
The course follows both books.
Recommended purchase  first book (to be used by other courses).
Course syllabus:
The course will deal with data strucutres and their use
in the design of efficient algorithms.
Subjects:
Growth of functions and asymptotic notation;
amortized analysis;
recurrences: the substitution, master, and iteration methods;
elementary strucutres: lists, stacks, queues;
trees: ordered trees, binary trees, labeled trees and
expression trees;
set representation and manipulation;
dictionary and hash tables.
Tentative course outline

Class 1 :
Introduction
Recursion (review)

Class 2 :
Complexity
Master Theorem

Class 3 :
Elementary Structures: Lists, Stacks, Queues.
Doubling and amortized complexity.

Class 4 :
Trees: basic concepts. Ordered tress, labeled trees,
expression trees. Binary trees and Huffman Coding.

Class 5 :
Dictionary and Hashing. Open and Closesd Hash.
Expected value complexity analysis. Hash functions.
Rehashing. Reorganization. Universal Hashing.

Class 6:
Hash (continue): Perfect Hash.

Class 7:
Multilist, sparse matrices,
multiplerepresentation of data,
Priority Queue (Heaps).

Class 8:
Binary search trees

Class 9 :
RedBlack Trees.

Class 10 :
23 trees, Btrees, Mergefind trees

Class 11 :
Mergefind trees (cont.). Near Constant Complexity. Sorting:
Simple sort, Quick Sort (algorithm, worstcase and average complexity).

Class 12 :
Sorting: Heap Sort and use for partial sort, bin sort.
Order Statistics.
Course material
These are partial set of course notes (PowerPoint presentation in Hebrew).
(Note: these notes may change during the semester.)
Animation links
Check out the following links for animations of algorithms and data structures:
Grades:
The final grade will be composed of the following:

Final Exam: 80%,

Project: 10%. It is mandatory to obtain a "pass".

Homework assignments: 10%.
Tirgul, homeworks and project
Details will be given in the
Tirgul Home Page.
Last updated February 17, 2003