This course combines Object-Oriented Programming concepts in C++ with traditional Data Structures and Algorithms, and includes Python implementations. This unique structure helps build a strong foundation in both programming paradigms and DSA concepts.
- Follow the sections in order - concepts build upon each other
- Complete the practice problems for each section
- Implement the code examples in both C++ and Python where applicable
- Review the PYQs at the end of each major section
- Structure of C++ Program ---> https://www.geeksforgeeks.org/cpp-basic-syntax/
- Data Types (Primary, User-defined, Derived) ---> https://www.geeksforgeeks.org/cpp-data-types/
- Operators and Their Precedence ---> https://www.geeksforgeeks.org/operators-in-cpp/ && https://www.geeksforgeeks.org/cpp-polymorphism/
- Control Statements ---> https://www.geeksforgeeks.org/decision-making-c-cpp/
- Functions ---> https://www.geeksforgeeks.org/c-functions/
- Classes and Constructors ---> https://www.geeksforgeeks.org/c-classes-and-objects/ && https://www.geeksforgeeks.org/inheritance-in-c/
- Templates ---> https://www.geeksforgeeks.org/templates-cpp/
- Difference between pass by value and reference
- Understanding function prototyping
- Inline functions and their use cases
- Pointer manipulation
- Illustrate the types of constructors using a program. (CO1, BL3, PO1, PO5) -- 3M 2023endsem
- Ilustrate operator overloading by writing a program which uses a unary ++ operator to increment a value. (CO1, BL3, PO1, PO5) -- 4M 2023endsem
- Write a C++ program to find the sum of numbers which illustrates the use of base class constructors in a single inheritance. (CO1, BL4, PO5). --3M 2024midsem
- How are control structures classified? Give the syntaxes for the different types. (CO1, BL2, PO1) --3M 2024midsem
- Write a program to illustrate the working of multilevel inheritance for the mathematical expression (a+b)^2 . Use two-member functions, one to read the data and the other to display its value. (CO1, BL4, PO5) --4M 2024midsem
- Illustrate function templates with multiple parameters using a C++ program. (CO1, BL4, PO5) --2M 2024midsem
- Write a program in C++ to print a square pattern with the # character using loops. (CO1, BL4, PO5) --2M 2024midsem
- Understanding recursive functions
- Base cases and recursive cases
- Stack frame in recursion
- Common recursive problems
- Factorial calculation
- Fibonacci series
- Tower of Hanoi
- Debugging techniques for recursive functions
- Single Linked List
- Double Linked List
- Circular Linked List
- Common operations
- Insertion (beginning, end, middle)
- Deletion
- Traversal
- Special cases handling
- Write a program to delete an element at the end of the linked list of array size 12. (CO2, BL3, PO1, PO5) -- 3M 2023endsem
- Write a C++ program to implement a recursive function to calculate the sum of digits of a given number. (CO2, BL4, PO1, PO5) -- 3M 2023endsem
- Write a C++ program to implement a recursive function to calculate the product of two numbers without using the multiplication operator. (CO2, BL4, PO5) --3M 2024midsem
- Write a program in C++ to create a doubly linked list of βnβ nodes and count the number of nodes. (CO2, BL4, PO5) --3M 2024midsem
- Binary Search Trees
- Tree Traversal (Inorder, Preorder, Postorder)
- Binary Expression Trees
- Kernel Density Trees
- Stack operations and applications
- Queue types and implementations
- Priority Queues
- Ring Buffer concept
Core Concepts
- Max Heap
- Min Heap
- Heapify process
- Common operations
- State the advantages of circular queue over linear queue. With examples, compare the enqueue and dequeue operations between the two. (CO3, BL3, PO1, PO2) --4M 2023endsem
- Illustrate any three types of binary tree. (CO3, BL3, PO1, PO2) --3M 2023endsem
- If there are 8 nodes in a binary tree, calculate its minimum and maximum height. (CO3, BL4, PO1, PO3) --2M 2023endsem
- Convert the given infix expression to prefix using stack.
Write the algorithm for the prefix expression for an expression tree. Draw the expression tree. (CO3, BL4, PO1, PO3) --5M 2023endsem - Calculate the order to print all the nodes of the graph starting from the root node using Depth first search algorithm. Consider 0 as the root node. (CO3, BL4, PO1, PO3) --4M 2023endsem
- What are the different traversal algorithms in binary search tree? Write the algorithms. (CO3, BL2, PO1) --3M 2024midsem
- Which properties of binary search tree make it a special type of binary tree? (CO3, BL2, PO1) --2M 2024midsem
- Lists vs Arrays
- Tuples
- Python implementation of previous structures
- Python-specific optimizations
- Write a Python program to find the sum of two numbers using multi-level inheritance. (CO4, BL3, PO3, PO5) --3M 2023endsem
- Write a Python program to create a recursive function to calculate the sum of numbers from 0 to 10. (CO4, BL4, PO1, PO5) --2M 2023endsem
- Compare lists and tuples in Python Programming with examples. (CO4, BL3, PO1) --3M 2023endsem
- Bubble Sort
- Heap Sort
- Radix Sort
- Complexity Analysis
- Linear Search
- Binary Search
- Hashing Techniques
- Time-Space Trade-offs
- Collision in hashing occurs when two indices have to store different values. Given an array {4, 11, 6, 3, 7, 13, 12, 9}, with m = 10 and h(k) = 2k +3, illustrate how collision can be avoided using Quadratic Probing. Also write the order of storage after collision avoidance. (CO5, BL4, PO1, PO3) -- 3M 2023endsem
- Sort the given array [50, 25, 35, 16, 55, 22, 9, 8, 75, 20] using heap sort algorithm with all the steps. (CO5, BL4, PO1, PO3) -- 4M 2023endsem
- Given an array [15, 24, 36, 55, 78, 90, 111, 145, 176, 208], find 55 using binary search algorithm. Write the algorithm for the same. (CO5, BL4, PO1, PO3)
(Add links to helpful online resources, videos, and practice platforms)
(Add section about common mistakes and misconceptions)
-------x----------x--------------