0% found this document useful (0 votes)
225 views

CSE 5010 - Data Structures and Algorithms Analysis

This document provides an overview of the Data Structures and Algorithms Analysis course. The course focuses on designing efficient algorithms and providing foundational knowledge of common data structures and algorithms. It aims to help students select appropriate data structures and algorithms for problems, and analyze algorithm efficiency. The course covers topics like data structures, trees, graphs, searching, sorting, algorithm design/analysis, and computational complexity. Students will implement challenging data structures and algorithms projects. Evaluation includes assignments, quizzes, exams and projects.

Uploaded by

yuvashree s
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
225 views

CSE 5010 - Data Structures and Algorithms Analysis

This document provides an overview of the Data Structures and Algorithms Analysis course. The course focuses on designing efficient algorithms and providing foundational knowledge of common data structures and algorithms. It aims to help students select appropriate data structures and algorithms for problems, and analyze algorithm efficiency. The course covers topics like data structures, trees, graphs, searching, sorting, algorithm design/analysis, and computational complexity. Students will implement challenging data structures and algorithms projects. Evaluation includes assignments, quizzes, exams and projects.

Uploaded by

yuvashree s
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Course code Data Structures and Algorithms Analysis L T P J C

CSE5010 3 0 2 0 4
Pre-requisite Nil Syllabus version

Course Objectives:
1. To focus on the design of algorithms in various domains
2. To provide a foundation for designing efficient algorithms.
3. To provide familiarity with main thrusts of working algorithms-sufficient to gives context for
formulating and seeking known solutions to an algorithmic problem.

Expected Course Outcome:


1. Use the fundamental data types of computing (lists, stacks, queues, priority queues, sets,
maps, trees, etc.).
2. Understand the major techniques for implementing the fundamental data types (linked
lists, binary search trees, hashing, heaps, etc.) and implement several of them.
3. Properly use and select data structures from language-provided data-structure libraries.
4. Apply basic algorithm analysis.
5. Understand how recursion works and write programs using recursion to solve problems.
6. Make informed decisions about which sorting and searching algorithms to use in specific
circumstances.
7. The student can make the distinction between problems and their algorithmic solutions
8. The student can prove the correctness of a subset of the algorithms considered in the
course.

Module:1 DATA STRUCTURES 3 hours


Introduction to data structures- Arrays-Linked Lists-Doubly Linked Lists-Stack, Evaluations of
expression-Conversion of Infix to postfix-Multiple stacks-Queues, Circular Queues-Priority
queues-Dequeues

Module:2 TREES 5 hours


Heaps, dictionaries, hash tables, bloom filters, binary search trees-, Creation-Insertion-Deletion-
Update-Search operations- Recursive Tree traversal- Non-Recursive Tree Traversal, Interval
trees, AVL Trees – Splay Trees – B-Trees – B+-Trees- Red Black Trees

Module:3 GRAPH REPRESENTATION AND 5 hours


ALGORITHMS
Graphs – Definitions – Representation of Graphs – Graph Traversals– Shortest path algorithm –
Minimum spanning tree – graph traversals. Undirected Graphs – Biconnectivity – Directed Graph
–Detecting Strong Components – All Pair Shortest paths – Floyd Warshall algorithm – Network
Flow Problem – A Simple Maximum Flow Algorithm

Module:4 SEARCHING AND SORTING 3 hours


Internal Sorting- Bubble sort, Insertion sort, selection sort, Merge sort, bucket and radix sort;
medians and order statistics. Indexed sequential searching and Interpolation search

Module:5 ALGORITHM DESIGN ANALYSIS 3 hours


The Role of Algorithms in Computing – Algorithms – Designing Algorithms – Analysing
Algorithms – Iterative Algorithms-Asymptotic notations and their significance, running time of
an algorithm, Time-complexity of an algorithm, Performance analysis of an algorithm, Master
theorem (without proof)

Module:6 COMPUTATIONAL COMPLEXITY 5 hours


CLASSES
Understanding of Computational Complexity – NP-Hard –NP-Completeness – Reducibility –
Cook’s Theorem – NP-Completeness Proofs – Probabilistic Analysis and Randomized
Algorithms – Quicksort – Approximation Algorithms – Set Cover and Vertex Cover- 3-CNF-
SAT Reduction Problems

Module:7 ADVANCED ALGORITHMS AND 4 hours


ANALYSIS
Divide and Conquer, Brute force, Greedy, Recursive Backtracking, and Dynamic programming,
Matrix Chain Multiplication – Elements of Dynamic Programming – Longest Common
Subsequence – Basics of String – String Edit Problem-Knuth-Morris-Pratt algorithm - Rabin-
Karp algorithm- Line segments: properties, intersections; convex hull finding algorithms-
Limitations of approximation - Vertex-cover problem

Module:8 RECENT TRENDS 2 hours

Total Lecture hours: 30 hours

Reference Books
1. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein,
“Introductionto Algorithms”, MIT Press, 3rd Edition, 2009.
2. Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran, “Computer Algorithms”,
SiliconPress Publications, 2nd Edition, 2008.
3. Ellis Horowitz, Sartaj Sahni, Dinesh Mehta, “Fundamentals of Data Structures using C+
+”, 2nd Edition, Universities Press, 2008.
4. Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman, “Data Structures and
Algorithms”,Pearson, 1st Edition, 2006
5. S.Sridhar, “Design and Analysis of Algorithms”, Oxford University Press, 2015
6. Tim Roguhgarden, “Algorithms Illuminated” (Part 3), Soundlikeyourself Publishing,
LLC, 2019
Mode of Evaluation: CAT / Assignment / Quiz / FAT / Project / Seminar
List of Challenging Experiments (Indicative)
1. Implementation of Stack, Queue and List Data Structures using Pointers. 2 hours
2. Implementation of AVL trees. 2 hours
3. Implementation of Splay Trees. 2 hours
4. Implementation of a Heap trees. 3 hours
5. Implementation of Graphs and Sorting of vertices using Topological Sort 3 hours
6. Implementation of Graph Traversals Algorithms: Breadth-First Search, 3 hours
Depth-FirstSearch.
7. Implementation of Shortest Path Algorithms: Dijkstra‘s algorithm, 3 hours
Bellman-Fordalgorithm, Floyd-Warshall algorithm.
8. Implementation of Minimum Spanning Tree: Kruskal’s and Prim’s 3 hours
algorithm.
9. Merge sort algorithm analysis using divide and conquer 3 hours
10. Quick sort using randomized algorithmic approach 3 hours
11. Matrix chain multiplication using dynamic programming 3 hours
Total Laboratory Hours 30 hours
Mode of evaluation:
Recommended by Board of Studies 01-06-2019
Approved by Academic Council No. 41 Date 24-09-2019

You might also like