Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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.