22CA001 CHO Programming Paradigm v0
22CA001 CHO Programming Paradigm v0
The main objectives of the course are: The students should be able to
To make students learn the implementation of generic programming using templates
To enable the students to acknowledge the advantages of standard Template Libraries (STL).
To understand storing and manipulating objects using STL, which makes the program reusable and
robust
To strengthen the ability of the students to solve problems computationally by utilizing an
understanding of algorithm analysis and data structures.
To enable the learners to segregate and classify the available data structures into various classes
depending upon storage and their access-associated characteristics
.
.To implement efficient and excellent code with the PO1, PO2 K2 Conceptual 10
CLO01 data structures and algorithms in the standard Procedural
template library
CLO PO PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12 PO13 PO14
CLO1 M L
CLO2 M
CLO3 M M
CLO4 M H L M M
Entrepreneurship 1
Research 1
Innovation 2
Skills 2
Employability 3
Link 1 https://www.simplilearn.com/tutorials/cpp-tutorial/cpp-standard-template-library
Link 2 https://www.geeksforgeeks.org/cpp-stl-tutorial/
Link 3 https://byjus.com/gate/introduction-to-data-structure-notes/
Link 4 https://www.hackerearth.com/practice/data-structures
Session Recommended
Topic(s)
No. Books (B)
1 Unit-1: Templates/Generic Programming B2
Introduction to generic functions and generic classes
2 -3 Function with two generic types, explicitly overloading a generic function, B1
using standard parameters with template functions generic function
restrictions.
4-5 A class with one and two generic data types, default arguments with B1
template classes
6-7 Unit-2: Standard Template Library (STL) B1 and B2
Overview of STL: Containers, Algorithms, Iterators
8-10 Container Classes: vector, stack, queue, deque, list, map B1 and B2
8. Delivery/Instructional Resources:
Session
No. Topic(s) Web References Audio/Video
#Component 1 and component 3 are mandatory components and require 40% marks in each for clearing the subject.
*Lab Evaluation have2 Lab performances- LP1 and LP2 and one Internal viva which shall be considered for evaluation based on
experiments.
**Out of 02 STs, the ERP system automatically picks the best 01 ST.
***Further, as per Academic Guidelines, minimum 75% attendance is required to become eligible for appearing in the End Semester
Examination.
2 Given an array V[] of size R, the task to reverse the array using https://
Stack. www.geeksforgeeks.org/
reverse-an-array-using-stack/
Input: arr[] = { 10, 20, 30, 40, 50 }
Output: 50 40 30 20 10
Explanation: Reversing the array modifies arr[] to { 50, 40, 30, 20, 10
} Therefore, the required output is 50 40 30 20 10.
Input Format
First line contains a single integer N denoting the size of the linked
list.
Second line contains N space separated integers denoting the
elements of the linked list.
Third line contains a single integer K denoting the number of
elements that are to be appended.
Constraints
1 <= N <= 10^4
1 <= K <= 10^4
Output Format
Display all the elements in the modified linked list.
Sample Input
7
1221856
3
Sample Output
8561221
9 Given a linked list with n nodes. Find the kth element from last
Queues
Unit 5: Link List and Trees
Applications of link list, classification of link list, Memory Representation,
traversing, Insertion and deletion operations on the Singly list, Implementation
of doubly list, Implementation of Circular linked list, Stack and Queue
implementation using a linked list, Introduction to tree terminology and 19 30%
Memory representations of binary tree, Tree Traversal Algorithms, Tree
Construction from tree traversals, Insertion and deletion in binary search tree,
Merge sort and Quick sort
CLO03: Select basic data structures and algorithms for autonomous realization of simple programs or
program parts
CLO04: Know the importance of memory management through dynamic memory allocation and make
use of memory efficient data structure like linked list.
CLO05:: Describe the divide-and-conquer paradigm and explain when an algorithmic design situation
calls for it. Recite algorithms that employ this paradigm. Synthesize divide-and-conquer algorithms.
Derive and solve recurrences describing the performance of divide-and-conquer algorithms.
CLO06: : Ability to sensibly select appropriate data structures and algorithms for problems and to
justify that choice.