Assistant Professor Department of Computer Science and Engineering National Institute of Technology Durgapur
CSC303 Dept of CSE, NIT Durgpur 2024-25 (Odd)
Disclaimer • The study materials/presentations used in this course are solely meant for academic purposes • The study materials presented/ distributed can be reused, reproduced, modified, and distributed by others for academic purposes only with proper acknowledgements
CSC303 Dept of CSE, NIT Durgpur 2024-25 (Odd)
Course outcomes After completing the course, students will be able to • CO1: Understand the fundamental concepts of data structures and algorithms as well as their design paradigms. • CO2: Apply different algorithmic ideas efficiently to solve new problems. • CO3: Efficiently analyze the time complexities of the data structures and algorithms. • CO4: Evaluate/recognize the state-of-the-art about the data structures and algorithms. • CO5: Create algorithmic solutions for real-life applications.
CSC303 Dept of CSE, NIT Durgpur 2024-25 (Odd)
Syllabus / Topics to be covered • Module 1: Introduction and basic concepts Algorithm, Asymptotic notations (big-Oh, big-Omega, big-Theta, small-oh) and their significance, introduction to RAM model of computation, complexity (Time Complexity, Space Complexity) analysis of algorithms, worst case and average case. Solving Recurrences – Substitution method, Recurrence tree method and Master Method.
• Module 2: Amortized complexity analysis
aggregate analysis, accounting method and potential method. Examples: storage allocation problem, binary counting problem. • Module 3: Sorting Comparison-based sorting: quick sort, merge sort, and their worst and average case analysis. Sorting in linear time: Radix sort, Count Sort.
CSC303 Dept of CSE, NIT Durgpur 2024-25 (Odd)
Syllabus / Topics to be covered • Module 4: Heaps Heap, applications of heaps: priority queue and heap sort, etc.
• Module 5: Lower bound
Lower bound for a problem. Computing the lower bound for sorting (comparison based sorting) and computing the lower bound for computing convex hull using the lower bound for sorting problem.
CSC303 Dept of CSE, NIT Durgpur 2024-25 (Odd)
Syllabus / Topics to be covered • Module 6: Search trees Binary search tree, Balanced binary search tree, AVL tree, Red Black tree, M- way tree, M-way search tree, B tree, B+ Tree.
• Module 7: Hashing Hash functions, Collision, Collision resolution techniques: linear probing, quadratic probing, double hashing, chaining, Rehashing. Hash Function for Hierarchical Memory Model.
CSC303 Dept of CSE, NIT Durgpur 2024-25 (Odd)
Syllabus / Topics to be covered • Module 8: Divide and Conquer Problem Multiplication of two n-bit integers, Strassen’s Matrix Multiplication problem, Closest pair of points, linear time median finding algorithm, Convex hull and its computation.
• Module 9: Greedy Algorithm
Greedy algorithms and their correctness proof: Interval scheduling problem, Interval partitioning problem, Minimizing the Lateness of Intervals problem, Fractional Knapsack Problem.
CSC303 Dept of CSE, NIT Durgpur 2024-25 (Odd)
Syllabus / Topics to be covered • Module 10: Dynamic Programming Matrix Chain Multiplication, 0-1 Knapsack Problem, Longest Common Subsequence Problem
CSC303 Dept of CSE, NIT Durgpur 2024-25 (Odd)
Assessments • Continuous assessment 1: Method : Assignment, test and/or Quiz Full Marks: 15 Schedule: Schedule will be notified latter • Mid Term: Method : Written Test Full Marks: 25 Schedule: To be scheduled in the month of September [Exact schedule will be notified latter]
CSC303 Dept of CSE, NIT Durgpur 2024-25 (Odd)
Assessments • End-term Examination: Method : Written Test Full Marks: 60 Schedule: To be scheduled in November [Exact schedule will be notified latter]
CSC303 Dept of CSE, NIT Durgpur 2024-25 (Odd)
Books and other reference materials • Text Books: • 1. T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to Algorithms, by Prentice Hall. • 2. Kleinberg and Eva Tardos. Algorithm Design. Addison-Wesley 2005 ISBN-13: 978-0321295354. • 3. E. Horowitz, S. Sahni, S. Anderson-Freed, “Fundamentals of Data Structures in C”, Universities Press; Second edition (2008). • 4. A. V. Aho, J. D. Ullman and J. E. Hopcroft, “Data Structures and Algorithms”, Addition Wesley.
CSC303 Dept of CSE, NIT Durgpur 2024-25 (Odd)
Books and other reference materials • Reference Books: • 1. Knuth, Donald E. The Art of Computer Programming. 3rd ed. Vols 1&2. Reading, MA: • Addison-Wesley, 1997. ISBN: 0201896834. ISBN: 0201896842. ISBN: 0201896850. • 2. Michael T. Goodrich and Roberto Tamassia, Algorithm Design: Foundations, Analysis, and Internet Examples, Second Edition, Wiley, 2006. • 3. Sanjoy Dasgupta, Christos H. Papadimitriou and Umesh V. Vazirani, Algorithms, Tata McGraw-Hill, 2008. • 4. Y. Langsam, M. J. Augenstein and A. N. Tanenbaum, "Data Structures using C and C++", Pearson, 2006. • 5. R. F. Gilberg and B. A. Forouzan, "Data Structures: A pseudocode approach with C", 2nd Edition, CENGAGE Learning.