Download CDM_ADSA File

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
ADI SHANKARA INSTITUTE OF ENGINEERING AND TECHNOLOGY
MCSCS 104: ADVANCED DATA STRUCTURES AND ALGORITHMS
FIRST SEMESTER M-TECH (2016-2018), AUGUST 2016
COMPUTER SCIENCE AND ENGINEERING
1. Course overview:
Analysis of algorithms and its implementation using data structures has vital importance in the field of computer science. This course will
cover the study about randomized data structures and the complexity analysis of algorithms. It also include the following topics different algorithm design techniques , brief introduction to game theory and approximation algorithms, analysis of graph algorithms.
Course Objectives:
This course is intended to provide the foundations of the practical implementation and usage of algorithms and data structures. One
objective is to ensure that the student are capable of designing and analyzing implementations of algorithms and data structures for
different kinds of problems,. The second objective is to expose the student to the algorithm design and analysis techniques.
Upon completion of this course, students will be able to do the following:
A.
Analyze different tree structures.
B.
Write rigorous correctness proofs for algorithms.
C.
Demonstrate a familiarity with major algorithms and data structures.
D.
Apply important algorithmic design paradigms and methods of analysis.
E.
To synthesize efficient algorithms in common engineering design situations
Course Outcome:
Objectives

Analyze different tree
structures

Demonstrate a familiarity
with major algorithms and
data structures.

Write rigorous correctness
proofs for algorithms.

Apply important algorithmic
design paradigms and
methods of analysis
Outcomes

Compare between different data structures. Pick an appropriate
data structure for a design situation.

Explain the major tree algorithms and their analyses. Employ
trees to model engineering problems, when appropriate.
Synthesize new tree algorithms and algorithms that employ tree
computations as key components, and analyse them.

Argue the correctness of algorithms using inductive proofs and
invariants.

Analyse worst-case running times of algorithms using
asymptotic analysis.

. Describe the dynamic-programming paradigm and explain
when an algorithmic design situation calls for it. Recite
algorithms that employ this paradigm. Synthesize
dynamicprogramming algorithms, and analyse them.
Describe the divide-and-conquer paradigm and explain when an
algorithmic design situation calls for it. Recite algorithms that
employ this paradigm. Synthesize divide-andconquer
algorithms. Derive and solve recurrences describing the
performance of divideand-conquer algorithms.
Describe the greedy paradigm and explain when an algorithmic
design situation calls for it. Recite algorithms that employ this
paradigm. Synthesize greedy algorithms, and analyse them.


To synthesize efficient
algorithms in common
engineering design situations

2. Syllabus:
Course No.
MCSCS102
Course Name
ADVANCED DATA STRUCTURES AND
ALGORITHMS
L-T-P-Credits
3-0-0-3
Year of Introduction
2015
MOUDLE I
Introduction to Basic data structures—Sequential Lists, Random Access Lists, Stacks, Queues, Binary trees, Graph Representation (Graph Traversal)
Trees--Binary Search Trees, AVL Trees, B-Trees, Red Black Trees, Splay Trees, k-d Trees, Generic Trees—Trie, Compressed Trie, Suffix Trie (with
Analysis) Partially Ordered Data -- Priority Queues, Binomial Heaps, Deaps.
MOUDLE II
Algorithm Design Techniques, Greedy Method – Knapsack Problem, Job Sequencing, Divide and Conquer Method – Quick Sort, Finding Maximum
and Minimum, Dynamic Programming- Matrix chain multiplication. Analysis of Algorithms, Algorithm Complexity, Asymptotic Notations,
Amortized Analysis, Recurrence Equations, Solving Recurrence Equations (through Substitution Method, Master Theorem)
MOUDLE III
Randomized Data Structure: Basic Data Structures (Hash tables and Universal Hashing), Random Treaps. Probabilistic Data Structures – Bloom
Filters (Motivation, Design and Analysis). Introduction to Game Theory and Lower Bounding; Game tree Evaluation; Minmax principle,
Introduction to Approximation Algorithms— The greedy Algorithm for Set Cover, Layering.
MOUDLE IV
Some Problems for Analysis: Shortest Path in Graphs, Minimum Spanning Tree. Find the convex hull, Huffman Coding, Task Scheduling Problem;
Satisfiability(SAT) Problem, Vertex Cover Problem, Primality Testing and Factorization
References:
1. Ellis Horowitz, Sartaj Sahni, Susan Anderson Freed, Fundamentals of Data Structures in C, University Press
2. Ellis Horowitz and Sartaj Sahni, Sanguthevar Rajasekaran, Fundamentals of Computer Algorithms,Universities Press
3. Thomas Cormen, Charles, Ronald Rives, Introduction to algorithm, PHI Learning.
4. Yedidyah Langsam, Moshe J. Augenstein, Aaron M.Tenenbaum, Data Structures using C and C++, Second Edition, PHI Learning
Private Limited , 2010.
5. Brassard and P. Bratley, Algorithmics: Theory and Practice, Prentice –Hall
6. Hari Mohan Pandey, Design Analysis and Algorithms, University Science Press
7. Aho, Hopcroft and Ullman, The Design and Analysis of Computer Algorithms, Pearson Education.
8. V.S Subramanian, Principles of Multimedia Database systems, Morgan Kaufman, 1998.
9. Rajeev Motwani and Prabakhar Raghavan, Randomized Algorithms. Cambridge University Press, Foundation Books.
10. Vijay Vazirani. Approximation Algorithms. Springer (2001).
3. Instructor:
Ms. SREERESMI T S
Asst. Professor
Department of Computer Science & Engineering
ASIET,
Email: sreeresmi.cs @ dishankara.ac.in
Mob: 9495159545
4. Classes:
Wednesday: 3rd and 4th Hr
Thursday: 5th and 6th Hr
Venue: Lecture Hall I
SESSION 1
Session
period
P1
Time
SESSION 2
P2
P3
8.45-10.35
P4
10.45-12.35
SESSION 3
SESSION 4
SESSION 5
P5
P6
P7
1.20-2.15
2.15-310
3.20-4.15
ADSA
ADSA
MON
ADSA
THU
Break
Break
WED
LUNCH BREAK
TUE
FRI
5. 1 Course Structure:
I.
Introduction to Basic data structures:
1.
2.
3.
4.
II.
III.
IV.
V.
Need for data structures
Stack –PUSH ,POP
Queue – Linear Queue, Circular queue, Priority Queues,
Linked lists – Different types
Overview of Trees and Graphs
1. Trees – Terminology, different types.
2. Operations on Trees
3. Graph and its traversals
Different Types of Trees
1. AVL Tree
2. B tree
3. Red Black Tree
4. Splay Tree
5. k-d Trees,
Generic Trees
1. Trie
2. Compressed Trie
3. Suffix Trie (with Analysis)
4. Partially ordered data
5. Binomial Heaps, Deaps.
Analysis of Algorithms
1. Algorithm Complexity
2. Asymptotic Notations
3. Recurrence Equations,
4. Solving Recurrence Equations (through Substitution Method, Master Theorem)
5. Amortized Analysis,
Algorithm Design Techniques
1. Greedy Method – Knapsack Problem, Job Sequencing
2. Divide and Conquer Method – Quick Sort, Finding Maximum and Minimum
3. Dynamic Programming- Matrix chain multiplication.
VII.
Randomized Data Structure
1. Basic Data Structures (Hash tables and Universal Hashing),
2. Random Treaps.
3. Probabilistic Data Structures – Bloom Filters (Motivation, Design and Analysis).
VIII.
Introduction to Game Theory and Lower Bounding.
1. Game tree Evaluation; Minmax principle
2. Introduction to Approximation Algorithms
3. The greedy Algorithm for Set Cover, Layering.
IX.
Example of problem Analysis - Graph
1. Shortest Path in Graphs,
2. Minimum Spanning Tree.
3. Find the convex hull,
4. Huffman Coding,
X.
Example of problem Analysis - Graph
1. Task Scheduling Problem; Satisfiability(SAT) Problem,
2. Vertex Cover Problem, Primality Testing and Factorization
5. 2 Teaching Strategies, Learning Outcomes and Learning Activities
5.2(a) Teaching Strategies:
VI.

The Lecture materials will introduce the theories and their proponents in the class room itself and the class room/lab activities after the
lecture will give the background or it will extend the understanding of the lecture materials.

The discussions in the class room will give the students the opportunity to practice what they have learnt and what they have acquired from
the class room activity and share with other students.

By the course project students will be able to apply the theory that is acquired from the class room/ lab activity by using different tools.
5.2.(b) Student Learning Outcomes / Course Learning Outcomes










Learn about basic data structures and their operations.
To get familiar with advanced Tree data structures
To get familiar with Trie data structure and its types
To get familiar with Heap and Deap
To get familiar with the Different algorithm design techniques.
Study the method of analyzing algorithms especially solving recurrence relations.
To get familiar with Randomized and Probabilistic Data Structures
To get familiar with game theory and lower bounding
To get the idea of approximation algoirhms.
To learn about the analysis differen graph problems specified .
5.2. c.1 Activities
A.
B.
C.
D.
E.
F.
G.
Reading (print, online)
Large group (lecture, presentation)
Lab work
Workbooks, assignments
Student presentation
Class tests with feedback (face-to-face, online)
Exams
5.2.c.2 Typical Learning Activities (Based on Moodle)
A.
B.
C.
D.
E.
F.
Lecture
Reading
Lab work
Assignments
Student presentation
Class tests
5.2. d Plan for Assessing Expected Learning Outcomes
How will this expected learning
outcome be assesses? What
methods will you use to measure
student's mastery of this
outcome?
Learning Activities
When will this expected
learning outcome be
assessed?
If these assessments show deficiencies in
student's mastery of this expected learning
outcome, what are your plans for improving
student learning related to this outcome?
As per weekly scheduling
plan
Review answers in the class.
Explain unclear concepts.
Class Tests
September (starting),
November(last)
Explain solutions to problems. Provide answer
keys.
Non graded activities
As per weekly scheduling
plan
Review answers in the class.
Explain unclear concepts.
Non graded activities
As per weekly scheduling
plan
Review answers in the class.
Explain unclear concepts.
6. Scheduling the course
6. 1 Weekly Organisation of Topics
Pre requisite :LAB ASSIGNMENT
Week 1:
Topic: : Introduction to Basic data structures
Learning activities: Reading /submission/lecture
Reading:
1.Ellis Horowitz, Sartaj Sahni, Susan Anderson Freed, Fundamentals of Data Structures in C, University Press
2. Samantha , classic Data structures
Week 2:
Topic: Overview of Trees and Graphs
Learning activities: Reading /submission/lecture
Reading:
1. Ellis Horowitz, Sartaj Sahni, Susan Anderson Freed, Fundamentals of Data Structures in C, University Press
2. Samantha , classic Data structures
ASSIGNMENT
Week 3:
Topic: Different Types of Trees – AVL Tree, Red Black Tree, B tree
Learning activities: Reading /submission/lecture
Reading:
1.
2.
. Ellis Horowitz, Sartaj Sahni, Susan Anderson Freed, Fundamentals of Data Structures in C, University Press
Yedidyah Langsam, Moshe J. Augenstein, Aaron M.Tenenbaum, Data Structures using C and C++, Second Edition, PHI Learning Private
Limited , 2010.
Week 4:
Topic: Generic Trie
Learning activities: Reading /submission/lecture
Reading:
1.
2.
. Ellis Horowitz, Sartaj Sahni, Susan Anderson Freed, Fundamentals of Data Structures in C, University Press
Yedidyah Langsam, Moshe J. Augenstein, Aaron M.Tenenbaum, Data Structures using C and C++, Second Edition, PHI Learning Private
Limited , 2010.
Week 5: Analysis of Algorithms
Topic:
Learning activities: Reading /submission/lecture
Reading:
1.
2.
3.
4.
5.
Brassard and P. Bratley, Algorithmics: Theory and Practice, Prentice –Hall
Hari Mohan Pandey, Design Analysis and Algorithms, University Science Press
Aho, Hopcroft and Ullman, The Design and Analysis of Computer Algorithms, Pearson Education.
Ellis Horowitz and Sartaj Sahni, Sanguthevar Rajasekaran, Fundamentals of Computer Algorithms,Universities Press
Thomas Cormen, Charles, Ronald Rives, Introduction to algorithm, PHI Learning.
Week 6:
Topic: Analysis of Algorithms
Learning activities: Reading /submission/lecture
Reading:
1.
2.
3.
4.
5.
Brassard and P. Bratley, Algorithmics: Theory and Practice, Prentice –Hall
Hari Mohan Pandey, Design Analysis and Algorithms, University Science Press
Aho, Hopcroft and Ullman, The Design and Analysis of Computer Algorithms, Pearson Education.
Ellis Horowitz and Sartaj Sahni, Sanguthevar Rajasekaran, Fundamentals of Computer Algorithms,Universities Press
Thomas Cormen, Charles, Ronald Rives, Introduction to algorithm, PHI Learning.
Week 7,8:
Topic: Algorithm Design Techniques
Learning activities: Reading /submission/lecture
Reading:
1. Brassard and P. Bratley, Algorithmics: Theory and Practice, Prentice –Hall
2. Hari Mohan Pandey, Design Analysis and Algorithms, University Science Press
3. Aho, Hopcroft and Ullman, The Design and Analysis of Computer Algorithms, Pearson Education.
4. Ellis Horowitz and Sartaj Sahni, Sanguthevar Rajasekaran, Fundamentals of Computer Algorithms,Universities Press
5. Thomas Cormen, Charles, Ronald Rives, Introduction to algorithm, PHI Learning.
Week 9:
Topic: Randomized Data structures
ASSIGNMENT
Learning activities: Reading /submission/Lecture
Reading:
1. Rajeev Motwani and Prabakhar Raghavan, Randomized Algorithms. Cambridge University Press, Foundation Books
2. Thomas Cormen, Charles, Ronald Rives, Introduction to algorithm, PHI Learning.
STUDENT PRESENTATION
Week 10,11:
Topic: Introduction to Game Theory and Lower Bound
Learning activities: Reading /submission/lecture
Reading:
1. http://web.eecs.umich.edu/~jabernet/eecs598course/fall2013/web/notes/lec6_092313.pdf
2. www.seas.gwu.edu/~bell/csci212/lower_bound_theory.pdf.
3. http://www.personal.psu.edu/cxg286/Math486.pdf
Week 12: Example of problem Analysis
Topic ing
Learning activities: Reading /submission/lecture
Reading:
1.
Introduction to Algorithms, Third EditionBy Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
Week 13: Example of problem Analysis
Topic:
Learning activities: Reading /submission/lecture
Reading:
1. Introduction to Algorithms, Third EditionBy Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
6. 2 Tentative Course Schedule
A course schedule usually contains the following information:

A general organization of the order in which the topics will be covered

A schedule that includes the tentative dates for course topics (this can be daily, weekly, or by topic)

Along with Learning Outcomes for the topics,

Enabling Learning activities that ensure the Learning outcomes,

Assessment of the Learning activities,
The tentative lecture schedule is given below. There may be changes due to …………….
Note: This information is provided only to give you a rough idea of how the course material will be presented, and most likely presents an
overly optimistic timeline. All specific details are subject to change.
Week #
Seq #
Lecture #
1
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
11
11
12
12
13
13
14
14
2
3
Date
Topic
Notes
Introduction to Basic data
structures
LAB ASSIGNMENT
Overview of Trees and
Graphs
Different Types of Trees
ASSIGNMENT
4
5
6
7
Generic Trie
Analysis of Algorithms
Algorithm Design
Techniques
8
9
15
15
16
16
17
17
18
18
Randomized data
structures
ASSIGNMENT
10
11
12
13
19
19
20
20
21
21
22
22
23
23
24
24
25
25
26
26
Introduction to Game
Theory and Lower Bound
Introduction to Game
Theory and Lower Bound
Example of problem
Analysis
Example of problem
Analysis
PRESENTATION
6.2 a Topics and Sub topics with learning outcomes, enabling learning activities, references and assessment (Inputs from 1,2,3,5 and 6.1
crystallised into the following table.
Week/Date
1
2
3
Topics and
Subtopics
Introduction
to Basic
data
structures
Sample SLO/CLO
Learn about basic data structures and their operations Need for data structures
5
6
Different
Types of
Trees
7
Analysis of
Algorithms
Analysis of
Algorithms
Algorithm
Design
Techniques



Queue – Linear Queue, Circular queue, Priority Queues,













Trees – Terminology, different types.
Operations on Trees.
Graph and its traversals
AVL Tree
B tree
Red Black Tree
Splay Tree
k-d Trees
Trie
Compressed Trie
Suffix Trie (with Analysis)
Partially ordered data
Binomial Heaps, Deaps.



Algorithm Complexity
Asymptotic Notations
Recurrence Equations
Stack –PUSH ,POP
Reading,
Lecture
assignment
Linked lists – Different types
Open Discussion
Overview of
Trees and
Graphs
Generic Trie
4
Learning
Activities

Reading ,
Lecture,
assignment
Lecture,
Assignment.
Lecture
Lecture, Reading,

Solving Recurrence Equations (through Substitution Method, Master
Theorem)
Amortized Analysis


Greedy Method – Knapsack Problem, Job Sequencing
Divide and Conquer Method – Quick Sort
Lecture, Reading,
References
8
9
Algorithm
Design
Techniques


, Finding Maximum and Minimum
Dynamic Programming- Matrix chain multiplication
Randomized
data
structures



Basic Data Structures (Hash tables and Universal Hashing),
Random Treaps.
Probabilistic Data Structures – Bloom Filters (Motivation, Design and
Analysis).
10
Introduction
to Game
Theory and
Lower
Bound
11
Introduction
to Game
Theory and
Lower
Bound
12
Example of
problem
Analysis
12
Example of
problem
Analysis


Lecture, Reading,
Lecture,
Assignment



Game theory
Game Tree
Game tree Evaluation; Minmax principle
Lecture, Reading


Introduction to Approximation Algorithms
The greedy Algorithm for Set Cover, Layering.
Lecture, Reading,




Shortest Path in Graphs,
Minimum Spanning Tree.
Find the convex hull,
Huffman Coding
Task Scheduling Problem; Satisfiability(SAT) Problem,
Vertex Cover Problem, Primality Testing and Factorization
Lecture, Reading,
Student
Presentation
Lecture, Reading,
Student
Presentation
Note: This information is provided only to give you a rough idea of how the course material will be presented, and most likely presents an overly
optimistic timeline. All specific details are subject to change.
7.
Reference Books and Materials
Texts and References: (Primary)

. Ellis Horowitz, Sartaj Sahni, Susan Anderson Freed, Fundamentals of Data Structures in C, University Press

Ellis Horowitz and Sartaj Sahni, Sanguthevar Rajasekaran, Fundamentals of Computer Algorithms,Universities Press

Thomas Cormen, Charles, Ronald Rives, Introduction to algorithm, PHI Learning.

Yedidyah Langsam, Moshe J. Augenstein, Aaron M.Tenenbaum, Data Structures using C and C++, Second Edition, PHI
Learning Private Limited , 2010.

Brassard and P. Bratley, Algorithmics: Theory and Practice, Prentice –Hall

Hari Mohan Pandey, Design Analysis and Algorithms, University Science Press

Aho, Hopcroft and Ullman, The Design and Analysis of Computer Algorithms, Pearson Education.

V.S Subramanian, Principles of Multimedia Database systems, Morgan Kaufman, 1998.

Rajeev Motwani and Prabakhar Raghavan, Randomized Algorithms. Cambridge University Press, Foundation Books.

Vijay Vazirani. Approximation Algorithms. Springer (2001).
8.
Class Attendance and Participation
• Regular class attendance is strongly advised and is necessary for students to fully grasp many of the course concepts.
• Please be on time to class.
• If you miss a class session, it will be your responsibility to find out the materials that were covered.
• Students in attendance are expected to be active participants in the course. This participation includes: contributing to class discussions,
providing insight into the class discussion topics, raising questions, and relating class material to personal experiences and other course
topics.
9.
Grading Criteria / Policy
Your final grade for this course will be based on your performance in the course project, class participation, assignments, class tests, and
the final university exam.
The breakup will be as follows:
TA(10)
Assignments: 60%
Student Presentations:40%
CT(30):
Class test 1 (15)
Class test 2 (15)
TOTAL –internal marks: 40 marks
9.1. Lab Assignments
There will be lab activities in middle part of the semester to help you familiarize yourself with the algorithms of various system calls in UNIX
system.
9.2. Participation in class discussions:
Students should participate in class discussion. Quality participation is expected from the students. It means conveying your experience, research,
opinions, questions or commentary in a professional manner. Comments on projects produced by other students are an important part of the learning
process. Comments must be made in a respectful and constructive manner. Disagreements among students are expected and often valuable, but they
should be expressed tactfully, not in a confrontational tone.
10. Laboratory Usage
The graduate computer lab and PG lab will be available for use by students taking the course. However, since the lab space may be shared with
one or more other courses, you can expect a significant amount of crowding, particularly when assignments/projects are due.
11. Computer Accounts
Contact the Lab Administrator for assistance.
12. Announcements
Announcements will be made on [http://117.239.79.250/moodle/]. The instructor will post announcements regarding the class on this.
Check this regularly for clarifications, corrections, and all course-related announcements.
13. Policy on Computer Failures
Computer failures (e.g. server failures, network failures, power outages, etc.) are a fact of life. Plan your work (labs, assignments, seminars,
course project etc to be able to cope with this degree of uncertainty. Short failures will be considered to be part of the normal course of
events
14. Policy on Cheating
This section on cheating is the only reference to the topic we will have throughout the course. It is expected that the students taking the
course have the integrity not to cheat. To be fair to the vast majority of honest es on cheating will be rigorously enforced.