1. 2. 3. 4. 5. 6. 7. 8. Course Code: CSE-2322 Course Title: Data Structures Lab Credit Hours: 1 Contact Hours: 2 lab hours per week Type: Core, Engineering Prerequisite: CSE-1122 (Computer Programming I Lab) Co-requisite: CSE-2321 (Data Structures) Instructor’s Name Name: Md. Mahiuddin Email: mmuict@gmail.com 9. Course Rationale / Summary: This course is a continuation to the introduction to computer science and is a study of the different types of data structures, their design, implementation, efficiency and effective use in solving problems. It introduces students to new types of data structures such as arrays, linked list, trees, graphs, heaps, stacks and queues. Students will also learn how to design algorithms for each new data structure studied, create and perform simple operations such as insertion, deletion, merging, sorting, and traversing on data structures. It describes and implements common algorithms for working with advanced data structures and recognizes which data structure is the best to use to solve a particular problem. To take this course, students should be able to program in a standard programming language preferably in C/C++. Some mathematical maturity will also be helpful for the students. 10. Course Objective: The objectives of this course are to a. Impart a thorough understanding of linear data structures such as linked list, arrays, stacks, queues and their applications. b. Learn a thorough understanding of non-linear data structures such as trees, graphs and their applications. c. Familiarize with various sorting, searching and hashing techniques and their performance comparison. d. design and analyze recursive algorithms in data structures 11. Course Outcomes (COs): Upon successful completion of this course, students will be able to: # CO Description Weightage (%) 1. Demonstrate appropriate data structure & algorithmic methods in solving problem. Apply important static and dynamic data structures, and compare and contrast among them. Synthesize the computational efficiency of the principal algorithms for insertion, deletion, sorting, searching, and hashing. 30% 2. 3. 50% 20% 12. Mapping of CO-PO: # CO Description POs Bloom’s Taxonomy Domain/Level Delivery Assessment Methods and Tools activities # CO Description POs Bloom’s Taxonomy Domain/Level CO1 Demonstrate appropriate data structure & algorithmic methods in solving problem PO1 Cognitive/Apply CO2 Apply important static and dynamic data structures, and compare and contrast among them. PO1 Cognitive/Apply PO2 CO3 Synthesize the PO1 Cognitive/Create PO2 computational PO5 efficiency of the principal algorithms for insertion, deletion, sorting, searching, and hashing. Delivery Methods and activities Lecture, Class discussion, Assignment, Lab work, Note, Competitive Problem Solving Lecture, Class discussion, Assignment, Lab work, Note, Competitive Problem Solving Lecture, Class discussion, Assignment, Lab work, Note, Competitive Problem Solving Assessment Tools Exam, Quiz, Assignment, Competitive Problem Solving Exam, Quiz, Assignment, Competitive Problem Solving Exam, Quiz, Assignment, Competitive Problem Solving 13. Resources: Text Books: # Name of Authors 1. Seymour Lipschutz Title of Book Edition Publisher’s Name Year ISBN Data Structures Special Indian Edition Tata McGraw-Hill 2014 ISBN-13: 978-0-07060168-0 Title of Book Edition Publisher’s Name Year ISBN Data Structures Using C and C++ Data Structures 2nd Edition Prentice Hall India 2014 1st Edition CBS Publishers and Distributors 1983 ISBN:13 9780387202778 ISBN13: 9780316739511 Reference Books: # Name of Authors 1. Y. Langsam, Augenstein, A. M. Tanenbaum 2. Edward M. Reingold, Wilfred J. Hansen Name of Authors 3. Robert Sedgewick Title of Book Edition Publisher’s Name Year ISBN Algorithms in C 3rd Pearson Education, Inc 2001 4. D. Samanta Classic Data Structures 2nd Prentice Hall of India 2003 ISBN-13: 9780321573513 ISBN-10: 8120318749 # Online Resources: I) https://www.topcoder.com/community/competitive-programming/tutorials/ 14. Weightage Distribution among Assessment Tools: Assessment Tools Class Attendance Continuous Assessment Final Examinations Weightage (%) 10 40 50 15. Grading Policy: As per IIUC grading policy 16. Weekly Activity Plan and List of Experiments: Week Activities 1 Lab work 2 Lab work Experiments 1. Write a program to create an array of n elements and then display all the elements of the list. 2. Write a program to find the largest number from a given list of integers. 3. Write a program to calculate the roots of the quadratic equation ax 2 + bx + c = 0 where a, b and c are known. X=(-b+-sqrt(b*b-4*a*c))/(2*a) 4. Write a program to create an array of n elements and then separately write the odd and even elements of the list. 5. Write a program to create an array of n elements and then insert an element to the list. ITEM=50, LOC=5, N=7 DATA[20]= 20 30 25 23 33 50 24 10 12 DATA[LOC]=ITEM N=N+1 6. Write a program to create an array of n elements and then delete an element from the list. 7. Write a program to sort n numbers using Bubble Sort algorithm. Week Activities 3 Lab work 4 Lab work 5 Lab work 6 Lab work 7 Lab work 8 Lab work Experiments 8. Write a program to search an element from a list of n numbers using Linear Search algorithm. 9. Write a program to search an element from a list of n numbers using Binary Search algorithm. 10. Write a program to determine whether a number n is prime or not where 1< n < 215 by using sieve method. 11. Write a program to write 100 randomly generated integer to a file called RAND.DAT. And then read the contents of the file and display them on the screen. 12. Write a program to insert a string S into a text T so that S begins in position K of T. 13. A text T and a pattern P are in memory. Write a program to delete first occurrence of P in T. 14. Write a program that will read a string (S) and find the index of the first occurrence of a pattern (P) in the string S. 15. Write a program which calculates the no. of occurrence of each letter of an input text. 16. Write a program to implement the following string operation without using any built in functions related to string. a) Find the length of a string S b) Copy string S2 to S1. c) Concatenate string S2 to S1. d) Compare two strings S1 and S2 e) Reverse a string S. 17. Write a program to interchange the row and column of a matrix. 18. Write a program to add two matrices. 19. Write a program to calculate the multiplication of two matrices. 20. Write a program to calculate the row sum and column sum of a matrix. 21. Write a program that will read a positive integer in base b (2<=b<=16) and convert it into base d (2<=d<=16). 22. Write a program to implement the push and pop operation of a stack 23. Write a program to evaluate a Postfix expression. 24. Write a program to convert an Infix expression into its equivalent Postfix expression. 25. Write a program to implement the Euclidean Algorithm for finding the Greatest Common Divisor (GCD) of two given positive integers. 26. Write a program to show the insert and delete operations of a circular queue. 27. Write a program to show the insert and delete operations of a priority queue. 28. Write a program to calculate the Factorial of a number using recursive and non-recursive method 29. Write a program to find the nth term Fn of the Fibonacci sequence using recursive and non-recursive method. 30. Write a program to move n disks for Tower of Hanoi problem. 31. Write a program to implement Ackermann Function. Week Activities 9 Lab work 10 Lab work 11 Lab work 12 Lab work 13 Lab work 14 Lab work 15 Programming Contest Experiments 32. Write a program to create a Linked List of n elements and then display the list. 33. Write a program to create a Linked List of n elements and then search an element from the list. 34. Write a program to create a Linked List of n elements and then insert an element to the list. 35. Write a program to create a Linked List of n elements and then delete an element from the list. 36. Write a program to create a Circular Header Linked List of n elements and then display the list. 37. Write a program to create a Two way Linked List of n elements and then display the list. 38. Write a program to search an ITEM from the Linked list. 39. Write a program to print the even integer from a linked list. 40. Write a program to sum up the value of a linked list. 41. Write a program to count the number of elements in a linked list. 42. Write a program to sort n numbers using Insertion Sort algorithm. 43. Write a program to sort n numbers using Selection Sort algorithm. 44. Write a program to sort n numbers using Quick Sort algorithm. 45. Write a program to sort n numbers using Merge sort algorithm. 46. Write a program to create a Binary Search Tree of n elements and then display the elements (preorder, inorder and postorder) of the tree. 47. Write a program to create a Binary Search Tree of n elements and then search an element from the tree. 48. Write a program to create a Binary Search Tree of n elements and then delete an element from the tree. 49. Write a program to create a Maxheap of n elements and then display the elements of the heap. 50. Write a program to create a Maxheap of n elements and then delete an element from the heap. 51. Write a program to sort n numbers using Heap sort algorithm. 52. Write a program to display the adjacency matrix of a graph. 53. Write a program to display the adjacency list of a graph. 54. Write a program to traverse a graph using Breadth First Search. 55. Write a program to traverse a graph using Depth First Search. 56. Write a program to find the 100! 57. Write a program to determine the value of the nth Fibonacci number Fn where Fn = Fn–1+ Fn-2 and F1 = F2 = 1 and n<=500. Testing the problem solving skills of students by giving the problems