Design and Analysis of Data Structures and Algorithms

 

16:198:513

 

Fall 2016

 

Instructor: Shubhangi Saraf

Email:   shubhangi.saraf@gmail.com

Timing:  Wednesday 3:20 pm - 6:20 pm 

Location:  Lsh A143 (Livingston Campus)

Office hours:  Tuesday 11:45 am– 12:45 pm (Hill 426, Busch Campus)

 

 

TA: Amey Bhangale

Email Address: amey.bhangale@rutgers.edu

Office hours: Fridays 2 pm – 4 pm   Hill 268

 

 

 

Text:  Introduction to Algorithms (CormenLeisersonRivest, Stein)

Additional References: Algorithms (Dasgupta, Papadimitriou, Vazirani), Randomized Algorithms (Motwani, Raghavan)

Prerequisite: Basic linear algebra, probability. Topics covered in a first algorithms course such as greedy algorithms, divide and conquer, sorting, dynamic programming, graph algorithms (such as graph search, shortest path, minimum spanning tree, max-flow min-cut), basic linear programming, notion of P, NP, NP completeness, reductions.

 

 

Description:  The following is a partial and tentative list of topics that might be covered

(This list may change based on interest of students and their background/preparation)

 

·      Randomized algorithms (Identity testing, string matching, fingerprinting, hashing)

·      Data structures

·      Number theoretic algorithms (Fast integer multiplication, primality testing)

·      Algebraic algorithms (Fast fourier transforms, matchings)

·      Cuts and flows, bipartite matching

·      Cryptography

·      Sublinear algorithms (polling, element distinctness)

·      Dimension reduction (Johnson Lindenstrauss)

·      Approximation algorithms (3SAT, set cover, SDP for maxcut)

·      Online algorithms

·      Parallel algorithms (perfect matchings, maximal independent set)

·      Multiplicative weights and applications

·      NP-completeness, space complexity

 

Grade: There will be one midterm exam (on October 12), one final exam (on Dec 14) and biweekly problem sets and in-class quizzes. The problem sets and quizzes will be worth 30% of the grade, midterm will be worth 25% of the grade, the final exam will be worth 45% of the grade. Class participation will determine the grade for borderline cases.

Late homeworks will not be accepted. Also if you miss an in-class quiz, there will be no make up. However when we assign your final grade, we will drop the homework with the lowest grade and quiz with the lowest grade. Thus if you do poorly on (or miss) one homework and/or one quiz, then it wont affect your grade.

Homework: You are allowed to discuss the homework problem sets or work in small groups to solve the problems. In case you do work with others, clearly indicate in your homework writeup who you collaborated with. The writeup of the homework must be done independently and must be original.

 

Other interesting courses with overlapping material:

 

 

Homework

Problem Set 1    (Due on September 21 in class)

Problem Set 2    (Due on October 5 in class)

Problem Set 3    (Due on November 2 in class)

Problem Set 4    (Due on November 16 in class)

 

 

Schedule

Sept 7:  Overview, review of asymptotic notation, recurrences, divide and conquer, in class quiz

Sept 13: Fast Fourier transform, Selection in linear time (randomized and deterministic)

Sept 21: Start randomized algorithms (Probability basics, max-cut, algorithm for min-cut)

Sept 28: Short quiz, min-cut analysis, balls in bins, load balancing, hashing

Oct 5:  More hashing, polynomial identity testing

Oct 12: Midterm, parallel algorithm for maximal independent set

Oct 19: More polynomial identity testing, perfect matchings in graphs

Oct 26: Short quiz, string algorithms, number theory algorithms

Nov 2: number theory algorithms, Applications to cryptography

Nov 9: Short quiz, more cryptography

Nov 16: Multiplicative weights update method

Nov 23: No class (Wednesday became Friday schedule)

Nov 30: The stable matching problem

Dec 7: Error correcting codes