Detailed Curriculum
Introduction to Programming
Topics Sub-topics Details
Introduction to flowcharts, Decision making using flowcharts, Loops,
Flowcharts Example problems
First program, Variables and data types, Taking input, How data is
Variables and Data types
Basics of Programming stored in memory, Arithmetic Operators
Introduction to If else, Relational and logical operators, Nested
Conditional statements conditionals
While loops, Flow of execution of statements in while loop, Example
While loops problems using while loop
Introduction to patterns, Basic Patterns, Square Patterns, Triangular
Patterns Patterns, Character Patterns, Reverse Triangle, Inverted patterns,
Loops and Functions Isosceles triangles
For loops For loops, Break and Continue, increment - decrement operators
Functions Introduction to functions, Working of function calling, Variables and its
scope, Pass by value
Introduction to arrays,
Introduction to arrays How arrays are stored in memory, Passing arrays to functions
Arrays
Searching and Sorting Understanding Binary Search, Selection sort, Bubble sort, Insertion sort,
Merging two sorted arrays
Strings Introduction to strings, storage of strings and their inbuilt functions
Strings and 2D Arrays
2D Arrays 2D arrays, Storage of 2D arrays, Example problems using 2D Arrays
Data Structures
Topics Sub-topics Details
Introduction to recursion, Principle of mathematical
Recursion induction, Fibonacci numbers, Recursion using arrays,
Recursion using strings, Recursion using 2D arrays
Problem Solving
Techniques Order complexity analysis, Theoretical complexity
analysis, Time complexity analysis of searching and
Time and space complexity recursive algorithms, Theoretical space complexity, Space
Introduction to backtracking, Problems based on backtracking:
Backtracking Rat in the maze, Word search, and N-Queens.
Introduction to oops, Creating objects, Getters, and setters,
Basics of OOP Constructors and related concepts, Inbuilt constructor and
destructor, Example classes
Object-oriented
programming Static members, Function overloading and related
Advance concepts of concepts, Abstraction, Encapsulation, Inheritance,
Polymorphism, Virtual functions, Abstract classes,
OOP Exception handling
Introduction to linked list, Inserting node in linked list, Deleting
Linked lists node from linked list, Midpoint of linked list, Merge two sorted
linked lists, merge sort of a linked list, Reversing a linked list
Linear Data Structures
Introduction to stacks, Stack using arrays, Dynamic Stack class,Stack
Stacks and Queues using linked list, Inbuilt stack, Queue using arrays, Dynamic queue
class, Queue using linked list, Inbuilt queue
Generic Trees Introduction to Trees, Making a tree node class, Taking a tree as input
and printing, Tree traversals, Destructor for tree node class
Introduction to Binary Trees, Taking a binary tree as input and printing,
Trees Binary Trees Binary Tree traversals, Diameter of binary tree
Binary Search Trees Introduction to Binary Search Trees, Searching a node in BST, BST class,
Inserting and Deleting nodes in BST, Types of balanced BSTs
Topics Sub-topics Details
Introduction to Priority Queues, Ways to implement priority queues,
Introduction to heaps, Introduction to Complete Binary Trees and its
Priority Queues implementation, Insert and Delete operations in heaps, Implementing
priority queues, Heap sort, Inbuilt Priority Queue
Introduction to Hashmaps, Inbuilt Hashmap, Hash
functions, Collision handling, Insert and Delete operation
Hashmaps implementation in hashmap, Load factor, Rehashing
Advanced
Data Structures
Introduction to Tries, Making a Trie Node class, Insert,
Tries and Huffman Coding Search and Remove operation implementation in Tries,
Introduction to Graphs, Graph Terminology, Graph implementation,
Graphs Graph Traversals (DFS and BFS), Weighted and Directed Graphs,
Minimum Spanning Trees, Cycle Detection in Graphs, Kruskal's
algorithm, Prim's Algorithm, Dijkstra's algorithm
Introduction to Memoization, Introduction to Dynamic
Introduction to Programming, Fibonacci numbers using recursion, memoization
Dynamic Programming and dynamic programming
Dynamic Programming
Longest Common Subsequence (LCS) using recursion, memoization
Applications of Dynamic and dynamic programming, Edit distance using recursion,
memoization and dynamic programming, Knapsack problem using
recursion, memoization and dynamic programming