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.
KLiC Data Structures using C & C++
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.
Introduction
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.
Certification
- KLiC courses are recognised by Yashwantrao Chavan Maharashtra Open University (YCMOU).
- MKCL provides certificate to the KLiC learner after his/her successful course completion.
- Yashwantrao Chavan Maharashtra Open University (YCMOU) provides mark sheet to successfully passed KLiC learners (Jurisdiction: Maharashtra).
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 KLiC Courses consists 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 |
YCMOU Mark Sheet
Printed Mark Sheet will be issued by YCMOU on successful completion of Section 1, Section 2 and Section 3 and will be delivered to the learner by MKCL.
YCMOU Mark Sheet will be available only for Maharashtra jurisdiction learners.
MKCL's KLiC Certificate
The certificate will be provided to the learner who will satisfy the below criteria:
- Learners who have successfully completed above mentioned 3 Sections i.e. Section 1, Section 2 and Section 3
- 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
KLiC Courses Fee Structure for the year 2024
For Mumbai, Mumbai Suburb, Thane, Palghar and Raigad District Area under Mumbai Metropolitan Region Development Authority (MMRDA) Region and Revised Fee applicable from February 2024 Batch onwards as mentioned below:
KLiC Courses of 120 Hours:
Mode | Total Fee (Rupees) |
Single Instalment (Rupees) |
Two Instalments (Rupees) |
Single Installment | 6000/- | 6000/- | N/A |
Two Installments | 6200/- | 3100/- | 3100/- |
Total fee is including of Course fees, Examination fees and Certification fees
For Thane, Palghar and Raigad District Area comes under (Non-MMRDA): Region: Fee applicable from January 2024 Batch onwards as mentioned below:
KLiC Courses of 120 Hours:
Mode | Total Fee (Rupees) |
Single Instalment (Rupees) |
Two Instalments (Rupees) |
Single Installment | 5000/- | 5000/- | N/A |
Two Installments | 5200/- | 2600/- | 2600/- |
Total fee is including of Course fees, Examination fees and Certification fees
For all Districts of Maharashtra (except Mumbai, Mumbai Suburb, Thane, Palghar and Raigad Districts): Fee applicable from January 2024 Batch onwards as mentioned below:
KLiC Courses of 120 Hours:
Mode | Total Fee (Rupees) |
Single Instalment (Rupees) |
Two Instalments (Rupees) |
Single Installment | 5000/- | 5000/- | N/A |
Two Installments | 5200/- | 2600/- | 2600/- |
Total fee is including of Course fees, Examination fees and Certification fees
* Above mentioned fee is applicable for all Modes of KLiC Courses offered at Authorised Learning Center (ALC) and at Satellite Center
* Total fee is including of Course fees, Examination fees and Certification fees
* MKCL reserves the right to modify the Fees of Courses during the year without any prior notice and MKCL shall not be liable to anyone for any such modification/s