0% found this document useful (0 votes)
66 views2 pages

Data Structures Course Outcomes in C++

The document outlines the Bachelor of Technology program in Computer Science Engineering, specifically focusing on the course 'Data Structures using C++'. It details course outcomes, mapping of course outcomes to program outcomes, and comprehensive modules covering various data structures, algorithms, and practical laboratory work. Additionally, it lists required textbooks and reference materials for the course.
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)
66 views2 pages

Data Structures Course Outcomes in C++

The document outlines the Bachelor of Technology program in Computer Science Engineering, specifically focusing on the course 'Data Structures using C++'. It details course outcomes, mapping of course outcomes to program outcomes, and comprehensive modules covering various data structures, algorithms, and practical laboratory work. Additionally, it lists required textbooks and reference materials for the course.
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

Name of Program Bachelor of Technology (Computer Science Engineering)

CSET243 Data Structures using C++ L T P C

Owning School/Department School of Computer Science Engineering and 3 1 6 7


Technology
Pre-requisites/Exposure -

Course Outcomes (COs)


On completion of this course, the students will be able to:

CO1: Articulate the design, use and associated algorithms of fundamental and abstract data structures.
CO2: Examine various searching and sorting techniques based on complexity analysis for applicative
solutions.
CO3: Demonstrate hands-on experience on implementing different data structures.
CO4: Build optimized solutions for real-word programming problems using efficient data structures.

CO-PO/PSO Mapping

PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PSO1 PSO2 PSO3
CO1 3 2 3 2 2 2
CO2 3 3 3 3 1 3
CO3 2 3 3 3 2 3
CO4 3 2 2 3

1=weakly related 2= moderately related 3=strongly related

Course Contents:

Module I: 10 lecture hours

Essentials of Data Structures, Initiating C++: The First Program, Lifecycle of C++ Program Execution,
Fundamentals of Object-Oriented Programming (OOP), C++ Inheritance Principles, Multiple
inheritance, Friend Function, Run-time Polymorphism, Time Complexity: Asymptotic Analysis, Big-
Omega, Big-Theta, Big-Oh Notation, Handling Arrays, Insertion, Deletion, Traversal, Linear Search,
Recursion, Binary Search, Tower of Hanoi, Sorting, Bubble Sort, Selection Sort, Insertion Sort, Merge
Sort, Shell Sort, Counting Sort.
Module II: 10 lecture hours

Navigating C++: Pointers Essentials, Structures and Unions in C++, Exploring Linked Lists in C++,
Implementing Singly Linked Lists, Traversal Techniques for Singly Linked Lists in C++, Searching,
Insertion, Deletion, Polynomial Handling, Circular Linked List, Traversal, Insertion, Deletion, Stacks,
Traversal, Insertion, Deletion, Infix to Postfix Conversion, Post-fix Expression Evaluation, Deques,
Queues, Simple Queue Insertion, Deletion, Traversal, Circular Queue Insertion, Deletion, Traversal.
Module III: 11 lectures hours

Tree Data Structures, Height, Complete, Full, Perfect Trees, Binary Search Trees, Pre-Order, InOrder,
Post-Order, BST Searching, BST Insertion, BST Deletion, Heaps, Min-Max Heaps, HeapSort, Hashing,
Hash Functions, Hash Tables, Hashing Collision Resolution Strategies: Separate Chaining, Open
Addressing, Double Hashing, Graphs, Different Types of Graphs, Graphs Representations, Incidence
Matrix, Adjacency Matrix, Graphs Traversals: BFS, DFS, Topological Sort.
Module IV: 11 lectures hours

Maintaining Height Equilibrium: AVL Trees, Balanced Factor and Rotations in AVL Trees, Operations
in AVL Trees: Insertion and Deletion, Exploring Red-Black Trees: Insertion and Deletion, B-Trees:
Efficient Insertion and Deletion Operations, Enhanced Structure: B+ Trees and their Insertion and
Deletion Operations, Deletion, Disjoint Sets, Path Compression, Union Finding Algorithm, van Emde
Boas Tree.

Studio Work / Laboratory Experiments:

The laboratory of Data structures is designed to provide a practical exposure to the students about the
concepts and topics taught in the classroom sessions. Implementing the learnt concepts using C++ will
help the students to have a better understanding of the subject.

Text Books :
1. Carey, John, Shreyans Doshi, and Payas Rajan. C++ Data Structures and Algorithm Design
Principles: Leverage the power of modern C++ to build robust and scalable applications. 1st ed.
Packt Publishing Ltd, 2019. ISBN 9781838827919.
2. Kanetkar, Yashavant. Data Structures Through C: Learn the fundamentals of Data Structures
through C. 1st ed. Cengage Learning, 2019. ISBN 9789388511360.

Reference Books :
1. Hu, Yang. Algorithms C++. 1st ed. Cengage Learning, 2020. ISBN 9798676695750.

Common questions

Powered by AI

B-trees and B+ trees are highly suitable for database indexing due to their ability to maintain sorted data and allow searches, sequential access, insertions, and deletions in logarithmic time. B-trees are structured such that all leaf nodes are at the same depth, offering efficient multi-level indexing. B+ trees enhance this by storing all keys in the leaf nodes and using internal nodes solely for guiding search paths, thereby enabling range queries and sorted data traversal within databases .

The course outcome CO2 enhances students' abilities to select appropriate searching and sorting techniques by teaching them to examine these algorithms based on complexity analysis. This involves understanding the trade-offs between different algorithms, such as time complexity and space requirements, to choose the most suitable one for specific applications and problem constraints .

In this course, students learn to analyze the complexity of various sorting algorithms such as Bubble Sort and QuickSort. Bubble Sort has a worst-case time complexity of O(n^2), making it inefficient on large data sets, whereas QuickSort has an average and best-case time complexity of O(n log n), which is more efficient. However, QuickSort’s worst-case time complexity is O(n^2), though this can often be mitigated with good pivot selection .

The knowledge of AVL trees and Red-Black trees is vital for maintaining balance in data structures, ensuring operations like insertion, deletion, and searching remain efficient. AVL trees use rotations to maintain a balance factor within -1, 0, or 1, ensuring O(log n) time complexity for operations. Red-Black trees, similarly, maintain balance through a set of properties that enforce a balanced tree structure with only a slight imbalance, thus also guaranteeing O(log n) complexity .

The course covers several techniques for resolving hashing collisions, including Separate Chaining, where each cell in the hash table points to a linked list of records that have the same hash index, and Open Addressing, which involves finding another open slot within the table's array by probing. Another method discussed is Double Hashing, which uses a secondary hash function to determine the probe sequence in the event of a collision .

Implementing data structures in C++ enhances learning and comprehension by allowing students to apply theoretical concepts in a practical setting, thereby solidifying their understanding. This hands-on approach, as outlined in the course laboratory, enables students to directly observe the behavior of data structures under various operations, facilitating deeper insights into their functionality and efficiency .

Students can optimize real-world programming solutions by employing efficient data structures, as indicated in the course outcome CO4. This involves understanding and implementing the principles of algorithms and data structures such as trees, graphs, and hashing, to create solutions that are not only functionally correct but also optimized in terms of time and space complexity .

Understanding different graph traversal techniques, such as Breadth-First Search (BFS) and Depth-First Search (DFS), is crucial because they provide foundational strategies for solving a variety of computational problems such as network connectivity, finding shortest paths, and detecting cycles. These techniques facilitate efficient exploration of graph structures to analyze connections and relationships within data, thereby aiding in complex problem-solving .

Asymptotic analysis plays a critical role in understanding data structures by providing a framework to analyze and express the limiting behavior of an algorithm's time or space complexity. This allows students to predict algorithm performance and efficiency for large data sets, thereby helping in the selection of the most appropriate data structure for specific problems. In this course, students learn to apply Big-O, Big-Theta, and Big-Omega notation to articulate these analyses .

The course utilizes Object-Oriented Programming (OOP) principles to enhance the design and implementation of data structures in C++ by promoting code reusability, scalability, and ease of maintenance. Using features like inheritance and polymorphism, students learn to create flexible data structures that can be easily extended or modified, enabling the development of robust applications .

You might also like