CS-2101

Data structure and algorithm

Course ID
CS-2101
Department
Software Engineering
Campus
Chella Campus
Level
Undergraduate
Semester
3rd
Credit
3 + 1
Method
Lecture + Lab

Course Outlines:

Fundamentals of data structures: An overview of computer programming,Data types, abstract data types, C/C++ background
Review of pointers, Pointer arithmetic, Pointer indirections
Computational complexity of algorithms and their time-space analysis:Running time calculations,Asymptotic notations for algorithmic complexity analysis
Lists Data Structure: Simple arrays, Linked lists, Linear search vs binary search
Lists Data Structure: Double linked lists, Circular linked lists
Stacks & Queues: Sequential/array implementation of stacks and queues,Linked list implementation of stacks and queues.
Arithmetic expressions: Polish notation, Recursion: Recursive implementation of stacks and queues
Sorting: Bubble sort, Insertion sort, Selection sort.
Sorting: Merge sort, Quick sort, Counting Sort & Radix sort, Heap sort (tentative).
Trees: Data structure definition and generic implementation, Tree traversals and its application, Binary tree, binary search tree, Expression trees, AVL trees
Huffman coding, B-Tree.
Graphs: Adjacency matrix implementation, Linked list implementation.
Graphs Search: Depth-first traversal of graphs, Breadth-first traversal of graphs, Shortest distance algorithms
Hashing and searching: Hashing techniques, Implementation of Hashing techniques
Priority Queues: Binary Heap and its applications

Course Learning Outcomes

Understand basic static and dynamic data structures and relevant standard algorithms for them: stack, queue, dynamically linked lists, trees, graphs, heap, priority queue, hash tables, sorting algorithms, min-max algorithm.

Evaluate appropriate abstract data type (ADT), data structure, and algorithm for an application.

Apply variations of standard data structures and algorithms and understand how changes affect correctness and time complexity.

Choose an appropriate algorithm to solve a problem of insertion, deletion, searching & sorting efficiently in terms of time & memory for each data-structure, array, linked list, singly linked list ,doubly Linked list, Stack & Queues.(Lab)

Build a menu based application that implements all the data-structures & algorithms.(Lab)

Teaching Methodology (Proposed as applicable):

Lectures (audio/video aids), Written Assignments/ Quizzes, Tutorials, Case Studies relevant to engineering disciplines, Semester Project, Guest Speaker, Industrial/ Field Visits, Group discussion, Report Writing

Assessment:

Mid Term, Report writing/ Presentation, Assignments, Project Report, Quizzes, Final Term

Suggested Books:

Data Structures and Algorithm Analysis in C by Mark Weiss. Addison Wesley;ISBN: 0-201-49840-5, latest edition.

Data Structures and Algorithm Analysis in C++ by Mark Weiss. AddisonWesley; ISBN 0321-44146-X, latest edition

Introduction to Algorithms, Thomas H. Cormen et al, latest edition.

There are 133 total credit hours to complete the Software Engineering degree.