0% found this document useful (0 votes)
23 views4 pages

CS2301: Data Structures-I: Syllabus Theory

The document outlines the syllabus for the CS2301: Data Structures-I course at Vishwakarma Institute of Technology, detailing course objectives, relevance, and a comprehensive syllabus covering linear and non-linear data structures. It includes laboratory experiments, course projects, and expected outcomes for students, emphasizing the importance of data structures in computer engineering and related fields. Additionally, it provides references for textbooks and online resources for further learning.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views4 pages

CS2301: Data Structures-I: Syllabus Theory

The document outlines the syllabus for the CS2301: Data Structures-I course at Vishwakarma Institute of Technology, detailing course objectives, relevance, and a comprehensive syllabus covering linear and non-linear data structures. It includes laboratory experiments, course projects, and expected outcomes for students, emphasizing the importance of data structures in computer engineering and related fields. Additionally, it provides references for textbooks and online resources for further learning.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Vishwakarma Institute of Technology Issue 01 : Rev No. 00 : Dt.

01/08/22

FF No. : 654
CS2301: Data Structures-I
Credits: 3 Teaching Scheme: Theory: 2 Hours / Week
Lab: 2 Hours / Week

Course Prerequisites: Basic programming Skills (C/C++)

Course Objectives:
1. To introduce the basic concepts of data structures and algorithms.
2. To learn and understand linear and non-linear data structure constructs.
3. To implement searching and sorting techniques using linear data structures.
4. To understand how to solve problems using step by step approach with the help of
fundamental data structures.
5. To associate data structures in developing and implementing efficient algorithms.

Course Relevance:
This is a basic Course for Computer Engineering and allied branches. This course has a high relevance
in all domains of computer engineering such as in Industries; research etc. as a basic prerequisite
course. Data Structures are a crucial part of computer algorithms as they allow programmers to do data
management efficiently. A wise selection of data structures can improve the performance of a computer
program or algorithm in a more useful way.

Syllabus
Theory
Section 1: Linear Data Structures
Unit 1: Arrays (4 Hours)
Asymptotic Notations, Time and Space Complexity Introduction, Memory Representation and
application of Single and Multidimensional arrays, Sparse Matrix. Searching and sorting techniques:
Linear Search, Binary search with Analysis. Sorting Techniques: Bubble Sort, Insertion Sort, Merge
Sort, Quick Sort with Analysis and passes.

Unit 2: Linked Lists (4 Hours)


Dynamic memory allocation, Singly Linked Lists, Doubly linked Lists, Circular linked lists and
Generalized linked lists, Applications of Linked list, introduction to Vectors and Application.

Unit 3: Stacks and Queues (6 Hours)


Stack: Stack representation and Implementation using arrays and Linked lists. Applications of stack
in Recursion, Expression conversions and evaluations. Queues: Representation and implementation

Computer Engineering Syllabus- AY 2025-26 Page 3


Vishwakarma Institute of Technology Issue 01 : Rev No. 00 : Dt. 01/08/22

using array and Linked lists, Types of queue. Applications of Queues: Job Scheduling, Josephus
problem etc.

Section 2: Non-Linear Data Structures


Unit 4: Trees (7 Hours)
Basic terminology, representation using array and linked lists. Tree Traversals: Recursive and Non
recursive, Operations on binary tree. Binary Search trees (BST).

Unit 5: Graphs (7 Hours)


Terminology and representation using Adjacency Matrix and Adjacency Lists, Graph Traversals and
Application: BFS and DFS, Connected graph, Bipartite Graph, Detecting Cycle in graph. Minimum
Spanning tree: Prims and Kruskal’s Algorithm, Shortest Path Algorithms, Union Find.

Unit 6: Hashing (2 Hours)


Hashing techniques, Hash table, Hash functions. Collision handling and Collision resolution
techniques.

Syllabus
Laboratory
List of Experiments
1) To implement the different sorting algorithms.
2) To implement the linked list.
3) To implement any application of Stack data structure.
4) Implement various expression conversions using Stack.
5) To implement any application of Queue data structure.
6) To implement an algorithm to perform Binary Search Tree (BST) operations (Create, Insert, Delete
and Traversals).
7) To implement an algorithm to perform various operations on Binary Tree (Mirror image, Height,
Leaf node display, Level wise display etc.)
8) To implement an algorithm to perform various Tree traversals using Stack.
9) To implement Graph traversal: algorithms: Depth First Search and Breadth First Search.
10) To implement Prim’s and Kruskals Algorithms to find a Minimum Spanning Tree (MST).
11) To implement Dijkstra’s algorithm to solve a Single Source Shortest Path Problem.
12) To implement Hashing algorithms.

Computer Engineering Syllabus- AY 2025-26 Page 4


Vishwakarma Institute of Technology Issue 01 : Rev No. 00 : Dt. 01/08/22

Course Project
List of Course Projects
1) Finding Nearest Neighbors.
2) Calendar Application using File handling.
3) Path finder in Maze.
4) Word Completion Using Trie.
5) Bloom Filters.
6) Different Management Systems.
7) Scheduling Applications and Simulation.
8) Shortest Path Applications. (Kirchhoff’s Circuit, TSP with Scenarios).
9) Efficient Storage and Data Retrieval Systems.
10) Different Gaming Application.

Course Outcomes
The student will be able to –
1) Make use of single and multi-dimensional array for searching and sorting based applications.
2) Construct computer science applications with the help of dynamic storage representation.
3) Build computer science applications using stacks and queues.
4) Demonstrate the use of tree data structure to represent and manipulate hierarchically organized data
in various applications.
5) Utilize graph data structure to design social media, network based and circuit applications.
6) Design and develop the single and multithreads applications by applying hash table and hash map
techniques.
CO-PO Mapping

CO Program Outcomes (PO) PSO


CO/PO PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PSO1 PSO2 PSO3
CO1 2 2 3 2 3 2
CO2 2 3 2 2 3 2
CO3 3 3 3 2 2 2 3 2 2
CO4 3 3 3 3 2 2 2 3 2 2
CO5 3 3 2 2 3 2
CO6 2 3 3 2 3 2
Average 2.5 3.0 2.66 3.0 2.0 2.0 2.0 3.0 2.0 2.0

CO Attainment levels:

Computer Engineering Syllabus- AY 2025-26 Page 5


Vishwakarma Institute of Technology Issue 01 : Rev No. 00 : Dt. 01/08/22

Weights for attainment levels: L1 - Easy-0.75 L2 - Comfortatble-0.7 L3 – Medium – 0.65


L4 – Somewhat difficult – 0.6 L5 – Difficult – 0.55
CO1 – L3, CO2– L3, CO3 – L2, CO4 – L4, CO5 – L4 and CO6 – L5

Future Courses Mapping:


Advanced Data Structures, Design and Analysis of Algorithms, Compiler Design, Systems
Programming, Data Science and similar courses.

Job Mapping:
Data Structures is must necessary part of any core programming job. Without Data structures it is
not possible to be good in Competitive coding. All Industries always look for a strong knowledge in
Advanced Data structures. Without learning this course, one can’t imagine a job in computer/IT
related industries and research.

Text Books:
1. E. Horwitz , S. Sahani, Anderson-Freed, “ Fundamentals of Data Structures in C”,
Second Edition, Universities Press.
2. Y. Langsam, M.J. Augenstein, [Link], “Data structures using C and C++”,
Pearson Education, Second Edition.
3. Narasimha Karumanchi, “Data Structures and Algorithm Made Easy”, Fifth Edition, CareerMonk
publication.
Reference Books:
1.J. Tremblay, P. Soresan, “An Introduction to data Structures with applications”, TMHPublication, 2nd
Edition.

For MOOCs and other learning Resources


1. [Link],
2. [Link]
3. [Link]
WIyu&index=5
4. [Link]

Computer Engineering Syllabus- AY 2025-26 Page 6

Common questions

Powered by AI

The CS2301 syllabus expects students to utilize fundamental data structures like arrays, linked lists, stacks, and queues in various applications, develop solutions using tree and graph data structures, and apply hashing techniques. These educational outcomes are critical as they align with industry needs for efficient algorithm implementation, improving problem-solving skills essential in areas like software development, competitive coding, and systems programming, positioning students well for careers in IT and computer science industries .

Tree data structures facilitate the organization and manipulation of hierarchically structured data by providing a parent-child relationship model, which inherently supports operations like searching, insertion, and deletion hierarchically. Binary search trees, for example, optimize searching operations by leveraging their structured order, enabling efficient data retrieval and storage management in applications like file systems and organization charts .

BFS (Breadth First Search) and DFS (Depth First Search) differ primarily in their traversal approach: BFS explores nodes layer by layer, using a queue to discover new levels, making it ideal for shortest path problems in unweighted graphs. DFS, using a stack, explores as deep as possible along branches before backtracking, suitable for path-finding and connectivity applications. Their difference reflects their application scope, influencing choice based on graph structure and the specific problem requirements .

Hashing algorithms play a critical role in ensuring efficient data retrieval in hash tables by transforming input keys into indices of an array. They enhance efficiency by allowing average-case constant time complexity for search operations. However, effective collision handling is crucial to maintain this efficiency. Techniques like chaining or open addressing help manage collisions by resolving conflicts between keys that hash to the same index, thereby maintaining the performance advantage of hash tables .

Asymptotic notations, such as Big O, Omega, and Theta, are used to describe the time and space complexity of algorithms, which represent the growth of the computational resources required as input size increases. In the context of data structures, analyzing time-space complexity helps in understanding the efficiency of various operations, determining which data structures are better suited based on their performance characteristics for specific tasks .

The adjacency matrix represents a graph using a 2D array where each cell (i,j) contains a boolean (or weight for weighted graphs) indicating the presence of an edge, facilitating fast look-up at the cost of higher space consumption. Adjacency lists, however, use a collection of lists for each vertex storing its neighbors, which is more space-efficient, especially for sparse graphs, but with potentially slower edge look-up. The choice impacts storage efficiency and retrieval speed and is influenced by the density of the graph .

Stacks and queues differ in their application through their underlying conceptual operations; stacks use a Last In First Out (LIFO) method, making them suitable for tasks like expression evaluation and backtracking. Conversely, queues utilize a First In First Out (FIFO) approach, which is ideal for scenarios like job scheduling and handling of buffered tasks. These differences influence their application areas, with stacks being useful for tasks that require reversal or undo capabilities, while queues are used where order of processing is crucial .

Key challenges in implementing a minimum spanning tree (MST) include ensuring optimal selection of edges without forming a cycle and managing efficiency in terms of time complexity. Prim’s algorithm addresses these by incrementally growing the MST from a starting node, continuously adding the smallest edge connecting the tree to the rest of the graph, making it efficient for dense graphs. Kruskal’s algorithm sorts all edges and adds them in order of weight, using a union-find data structure to prevent cycles, suitable for sparse graphs due to its edge-based approach .

Understanding complexity classes such as O(n^2) or O(n log n) is crucial in selecting sorting algorithms for applications because it directly impacts performance based on input size. Sorting algorithms like Quick Sort and Merge Sort provide better performance with O(n log n) complexity compared to Bubble Sort or Insertion Sort, which have O(n^2) complexity. This understanding helps in making informed decisions that balance tradeoffs between time and space complexity, especially for large-scale or real-time applications where efficiency is critical .

Dynamic memory allocation is essential for linked lists because it allows the data structure to efficiently use memory by allocating space as needed during runtime. This contrasts with static memory allocation, where memory size is fixed at compile-time, leading to potential wastage of resources. Linked lists benefit from dynamic allocation as they can grow or shrink without needing to recreate or copy data, effectively managing memory for fluctuating data requirements .

You might also like