daa-new - A complete guide for CSIT student

daa-new

Design and Analysis of Algorithm
Course Title: Data and Analysis of Algorithm
Course No: CSC 314
Nature of Course: Theory + Lab
Semester: V

  • Unit 1: Foundation of Algorithm Analysis (4)
    • 1.1. Algorithm and its properties, RAM model, Time and Space Complexity, detailed analysis of algorithms (Like factorial algorithm), Concept of Aggregate Analysis
    • 1.2. Asymptotic Notations: Big-O, Big-Ω and Big-Ó¨ Notations their Geometrical Interpretation and Examples.
    • 1.3. Recurrences: Recursive Algorithms and Recurrence Relations, Solving Recurrences (Recursion Tree Method, Substitution Method, Application of Masters Theorem)
  • Unit 2: Iterative Algorithms (4)
    • 2.1. Basic Algorithms: Algorithm for GCD, Fibonacci Number and analysis of their time and space complexity
    • 2.2. Searching Algorithms: Sequential Search and its analysis
    • 2.3. Sorting Algorithms: Bubble, Selection, and Insertion Sort and their Analysis
  • Unit 3: Divide and Conquer Algorithms (8)
    • 3.1. Searching Algorithms: Binary Search, Min-Max Finding and their Analysis
    • 3.2. Sorting Algorithms: Merge Sort and Analysis, Quick Sort and Analysis (Best Case, Worst Case and Average Case), Heap Sort (Heapify, Build Heap and Heap Sort Algorithms and their Analysis), Randomized Quick sort and its Analysis
    • 3.3. Order Statistics: Selection in Expected Linear Time, Selection in Worst Case Linear Time and their Analysis.
  • Unit 4: Greedy Algorithms (6)
    • 4.1. Optimization Problems and Optimal Solution, Introduction of Greedy Algorithms, Elements of Greedy Strategy.
    • 4.2. Greedy Algorithms: Fractional Knapsack, Job sequencing with Deadlines, Kruskal’s Algorithm, Prims Algorithm, Dijkstra’s Algorithm and their Analysis
    • 4.3. Huffman Coding: Purpose of Huffman Coding, Prefix Codes, Huffman Coding Algorithm and its Analysis
  • Unit 5: Dynamic Programming (8)
    • 5.1. Greedy Algorithms vs Dynamic Programming, Recursion vs Dynamic Programming, Elements of DP Strategy
    • 5.2. DP Algorithms: Matrix Chain Multiplication, String Editing, Zero-One Knapsack Problem, Floyd Warshwall Algorithm, Travelling Salesman Problem and their Analysis.
    • 5.3. Memoization Strategy, Dynamic Programming vs Memoization
  • Unit 6: Backtracking (5)
    • 6.1. Concept of Backtracking, Recursion vs Backtracking
    • 6.2. Backtracking Algorithms: Subset-sum Problem, Zero-one Knapsack Problem, N-queen Problem and their Analysis.
  • Unit 7: Number Theoretic Algorithms (5)
    • 7.1. Number Theoretic Notations, Euclid’s and Extended Euclid’s Algorithms and their Analysis.
    • 7.2. Solving Modular Linear Equations, Chinese Remainder Theorem, Primility Testing: Miller-Rabin Randomized Primility Test and their Analysis
  • Unit 8: NP Completeness (5)
    • 8.1. Tractable and Intractable Problems, Concept of Polynomial Time and Super Polynomial Time Complexity
    • 8.2. Complexity Classes: P, NP, NP-Hard and NP-Complete
    • 8.3. NP Complete Problems, NP Completeness and Reducibility, Cooks Theorem, Proofs of NP Completeness (CNF-SAT, Vertex Cover and Subset Sum)
    • 8.4. Approximation Algorithms: Concept, Vertex Cover Problem, Subset Sum Problem

  • Laboratory Work:
  • This course can be learnt in effective way only if we give focus is given in practical aspects of algorithms and techniques discussed in class. Therefore student should be able to implement the algorithms and analyze their behavior. Students should:

    • Implement comparison sorting algorithms and perform their empirical analysis.
    • Implement divide-and-conquer sorting algorithms and perform their empirical analysis.
    • Implement algorithms for order statistics and perform their empirical analysis.
    • Implement algorithms by using Greedy, DP and backtracking paradigm
    • Implement NP-complete problems and realize their hardness.

    Click here for Design and Analysis of Algorithm Old Course Syllabus

No comments:

Post a Comment

विज्ञापन