This course is designed to provide learners with a comprehensive understanding of data structures and algorithms, equipping them with the knowledge to effectively organize, store, and manipulate data for optimized performance. Through C and C++, learners will enhance their programming skills by learning efficient methods to implement key data structures and solve complex computational problems.

The course covers essential data structures such as arrays, linked lists, stacks, queues, trees, graphs, and hash tables, offering a strong theoretical foundation and real-world application insights. Additionally, learners will explore algorithm optimization techniques, gaining practical experience in selecting and applying appropriate data structures to various scenarios.

Furthermore, learners will learn to analyze the efficiency and complexity of algorithms, fostering an understanding of how these structures impact computational resources and problem-solving effectiveness. By the end of the course, learners will be proficient in using data structures and algorithms to address challenges in fields like software development, data science, and system design.

120 hours (2 months)
Online
LEAP Data Structures using C & C++
Course Features:
  • Language: English
  • Duration: 120 hours (2 months)
  • Learning Mode: Online
  • Jurisdiction: Nationwide
  • Certificate of Completion

Introduction

This course provides students with a strong foundation in C and C++ programming, focusing on the implementation and analysis of data structures such as arrays, linked lists, stacks, queues, trees, and graphs. Students will gain proficiency in designing and applying algorithms to solve complex computational problems using various approaches, including recursion, dynamic programming, and greedy algorithms. The curriculum fosters critical thinking, enabling students to select the most effective data structures and algorithms for specific challenges. By the end of the course, students will be well-prepared for advanced studies and careers in software engineering, data analysis, and technology-driven industries.


What you'll learn ?

  • Students will become proficient in C and C++ programming languages, specifically in the context of data structures.
  • Ability to design, implement, and analyse algorithms for solving various computational problems.
  • Proficiency in implementing and utilizing various data structures such as arrays, linked lists, stacks, queues, trees, and graphs.
  • Ability to apply theoretical knowledge to practical problems in software development and other computational fields.
  • A solid foundation for pursuing advanced studies and research in computer science and related fields.
  • Comprehensive understanding of various algorithmic approaches, including iterative, recursive, divide-and-conquer, dynamic programming, and greedy algorithms.
  • Development of critical thinking skills to evaluate and choose the best data structures and algorithms for a given problem.
  • Preparation for careers in software engineering, data analysis, and other technology-driven fields where data structures and algorithms play a crucial role.

MKCL's LEAP Certificate

The certificate will be provided to the learner who will satisfy the below criteria:

  1. Learners who have successfully completed above mentioned 3 Sections i.e. Section 1, Section 2 and Section 3
  2. Additionally, learner should have completed Section 4 (i.e. Section 4 will comprise of SUPWs i.e. Socially Useful and Productive Work in form of Assignments)
    • Learner has to complete and upload minimum 2 out of 5 Assignments

Academic Approach

The academic approach of the courses focuses on the “work-centric” education i.e. begin with work (and not from a book!), derive knowledge from work and apply that knowledge to make the work more wholesome, useful and delightful. The ultimate objective is to empower the Learner to engage in socially useful and productive work. It aims at leading the learner to his/her rewarding career as an employee or entrepreneur as well as development of the community to which s/he belongs. Learning methodology:

  • Step -1: Learners are given an overview of the course and its connection to life and work.
  • Step -2: Learners are exposed to the specific tool(s) used in the course through the various real-life applications of the tool(s).
  • Step -3: Learners are acquainted with the careers and the hierarchy of roles they can perform at workplaces after attaining increasing levels of mastery over the tool(s).
  • Step -4: Learners are acquainted with the architecture of the tool or tool map so as to appreciate various parts of the tool, their functions, utility and inter-relations.
  • Step -5: Learners are exposed to simple application development methodology by using the tool at the beginner’s level.
  • Step -6: Learners perform the differential skills related to the use of the tool to improve the given ready-made industry-standard outputs.
  • Step -7: Learners are engaged in appreciation of real-life case studies developed by the experts.
  • Step -8: Learners are encouraged to proceed from appreciation to imitation of the experts.
  • Step -9: After the imitation experience, they are required to improve the expert’s outputs so that they proceed from mere imitation to emulation.
  • Step-10: Emulation is taken a level further from working with differential skills towards the visualization and creation of a complete output according to the requirements provided. (Long Assignments)
  • Step-11: Understanding the requirements, communicating one’s own thoughts and presenting are important skills required in facing an interview for securing a work order/job. For instilling these skills, learners are presented with various subject-specific technical as well as HR-oriented questions and encouraged to answer them.
  • Step-12: Finally, they develop the integral skills involving optimal methods and best practices to produce useful outputs right from scratch, publish them in their ePortfolio and thereby proceed from emulation to self-expression, from self-expression to self-confidence and from self-confidence to self-reliance and self-esteem!

Syllabus

  • Introduction to Data Structures
  • Mathematical Notations
  • Contradiction
  • Mathematical Induction
  • Mathematical Prerequisites
  • Introduction to Algorithm
  • Asymptotic Notations
  • Variables and Datatypes
  • Decisions
  • Switch Case
  • Array
  • Functions
  • Pointers
  • Object Oriented Programming
  • Structure
  • Data Types
  • Union
  • Miscellaneous Problems and Solutions
  • Introduction
  • Loop
  • Recursion
  • Backtracking
  • Recursion and Backtracking: Problems
  • Introduction to Array
  • Array Operations
  • Introduction
  • Two Dimensional Array Operations
  • String Introduction
  • Programming String Operations
  • Array of String
  • Pointers and Strings
  • Pattern Matching
  • String Matching
  • Linked List
  • Programming Linked List
  • Circular Linked List Introduction
  • Programming Circular Linked List
  • Doubly Linked List
  • Programming Doubly Linked List
  • Comparison of Array and Linked List
  • Recursive Display of Linked List
  • Circular Linked problems and other concepts
  • Matrix Introduction
  • Lower Triangular Matrix
  • Upper Triangular Matrix
  • Symmetric Matrix
  • Tri-Diagonal and Tri-band Matrix
  • Toeplitz Matrix
  • Sparse Matrix
  • Operations on Sparse Matrices
  • Introduction to Stacks
  • Stack using Array
  • Stack using Linked List
  • Parentheses Matching
  • Operators
  • Infix to Prefix Conversion
  • Postfix to Prefix Conversion
  • Postfix to Infix Conversion
  • Infix to postfix conversion
  • Evaluation of Postfix Expression
  • Introduction to Queue
  • Queue as an array
  • Queue as a linked list
  • Queue: Problems and Solutions
  • Introduction to Double ended Queue
  • Programming Deque
  • Priority Queue
  • Circular Queue
  • Introduction to Trees
  • Strict and Complete Binary Tree comparison
  • Tree: Problems and Solutions
  • Binary Tree
  • Traversal of a Binary Tree
  • Binary Tree: Problems and Solutions
  • Introduction
  • Operation on BST - search and insert
  • Deletion from a BST
  • Programming: Binary Search Tree
  • Generating BST from preorder
  • Applications of Binary Tree
  • Generating BST from post order
  • Binary Search Tree: Problems and Solution
  • Introduction
  • Operation on AVL tree
  • Programming various operations on AVL
  • AVL Tree: Problems and Solution
  • 2-3 Trees Introduction
  • 2-3-4 trees Introduction
  • Searching in a 2-3 Tree
  • Insertion in a 2-3 Tree
  • Deletion from a 2-3 Tree
  • Introduction to red black tree
  • Operations on red black tree
  • Operation on red black tree to a 2-3-4 tree
  • Priority Queue
  • Introduction to Heap
  • Insertion in a heap
  • Heap: Problems, Solution and Implementation
  • Heap as a priority queue and Implementation
  • Heap as a priority queue and Implementation
  • Replacement of a node in heap
  • Introduction to Disjoint subsets
  • Fast find implementation
  • Fast Union Implementation
  • Definition and terminologies
  • Depth First Search (DFS)
  • Breadth First Search (BFS)
  • Spanning Tree
  • Disjoint subsets
  • Minimum Spanning Tree
  • Prim's method
  • Kruskal's method
  • Programming: Minimal spanning tree
  • Introduction
  • Linear Search
  • Binary Search
  • Interpolation Search
  • Introduction to sorting
  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Shell Sort
  • Comparison of Sorting Methods
  • Merge Sort
  • Quick Sort
  • Counting Sort
  • Radix Sort
  • Bucket Sort
  • Introduction to Symbol table
  • Introduction to Symbol table
  • Array Implementation of Symbol Table
  • Linked List Implementation of Symbol Table
  • Other implementation
  • Comparison of implementation methods
  • Introduction to Hashing
  • Chaining
  • Linear Probing
  • Double Hashing
  • Hash Functions
  • Introduction to Single Shortest Path
  • Dijkstra's Algorithm
  • Bellman-Ford Algorithm
  • Introduction to Greedy Approach
  • Huffman Coding Algorithm
  • Huffman Coding Algorithm
  • Fractional Knapsack problem
  • Dynamic Programming
  • Algorithm: 0/1 Knapsack Problem
  • Matrix Multiplication
  • Chain Matrix Multiplication
  • Divide and Conquer Approach
  • Binary Search
  • Strassen's Matrix Chain Multiplication
  • Introduction to Branch and Bound Approach
  • 4-Queens Problem
  • Least Cost search
  • 15-puzzle problem
  • FIFO - Branch and Bound
  • Introduction
  • Partition Based Selection
  • Linear Search
  • Finding K-smallest elements
  • Selection Algorithm: Problems and Solutions
  • Introduction to Travelling Salesman Problem
  • Introduction to All Pairs Shortest Path Problem
  • Job Scheduling Problem
  • Coin Change Problem
  • Introduction to NP completeness
  • Polynomial Time Reduction algorithms
  • NP hard and NP complete Problems
  • SAT problem
  • NP problems: Examples
  • Compaction of Blocks and storage
  • First-Fit
  • Best-Fit
  • Improvement in the first fit algorithm
  • Freeing Storage Blocks
  • Dynamic Memory Allocation: Problems and Solutions
  • Revisiting Programming Concepts
  • Revisiting data structures
  • Revisiting algorithmic concepts
  • Miscellaneous problems and solutions

Evaluation Pattern

Evaluation Pattern of LEAP Courses consist of 4 Sections as per below table:

Section No. Section Name Total Marks Minimum Passing Marks
1 Learning Progression 25 10
2 Internal Assessment 25 10
3 Final Online Examination 50 20
Total 100 40
4 SUPWs (Socially Useful and Productive Work in form of Assignments) 5 Assignments 2 Assignments to be Completed & Uploaded