The document outlines an index for a computer programming course covering various topics over 13 weeks, including understanding programs and algorithms, programming fundamentals, arrays, strings, pointers, recursion, binary trees, graphs, hashing, greedy algorithms, dynamic programming, and number theory. Specific topics include data types, loops, functions, complexity analysis, sorting, linked lists, stacks, queues, heaps, hash tables, dynamic programming techniques like knapsack and shortest paths, graph algorithms, and number theory concepts. Pattern questions and challenges are included for many topics.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
188 views9 pages
Timeline of C++ Course
The document outlines an index for a computer programming course covering various topics over 13 weeks, including understanding programs and algorithms, programming fundamentals, arrays, strings, pointers, recursion, binary trees, graphs, hashing, greedy algorithms, dynamic programming, and number theory. Specific topics include data types, loops, functions, complexity analysis, sorting, linked lists, stacks, queues, heaps, hash tables, dynamic programming techniques like knapsack and shortest paths, graph algorithms, and number theory concepts. Pattern questions and challenges are included for many topics.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9
Index
(Started from 8th October 2020)
1. Understanding computer programs (First week - 8/10/2020 - 14/10/2020) - What is computer program and algorithm - What is flowchart - What is pseudocode - Examples - Setting up c++ environment - Hello world program - Brain teasers
2. Programming Fundamentals l (First week)
- Data Types and ranges - Type modifiers - Input output in C++ - If else - Loops - while, do while, for
- Binary number system - Reverse a number - Armstrong number - Prime numbers
6. Functions (second week) (Second week)
- Introduction to functions - Examples
7. Space and time complexity (Third week 22/10/2020 - 28/10/2020)
- Definition and basics - Polynomial evaluation
8. Arrays (Third week)
- Introduction to arrays - Linear search and Binary search - Sorting algorithms - STL sort - Max subarray sum - Pair sum problem
9. 2D arrays (Third week)
- Introduction and searching - Example questions
10. Character arrays (Fourth week 29/10/2020 - 4/11/2020)
- Introduction and input - Palindromic arrays - Largest word in a string
11. Strings (Fourth week)
- Intro + STL functions on strings - Sorting a string
12. Questions (Fourth week)
- Target sum triplets (https://www.geeksforgeeks.org/find-a-triplet-that-sum-to-a-given-value/) - Max circular sum (https://www.geeksforgeeks.org/maximum-contiguous-circular-sum/) - String questions
13. Pointers (Fourth week)
- & operator - Introduction to pointers - Dereference operator - Pass by reference and Pass by value
14. Dynamic Memory Allocation (Fourth week)
- Compile time and run time - Heap and Stack - New, delete
15. Bit Manipulation (Fifth week 5/11/2020 - 11/11/2020)
- Get, set, clear, update - Is Power of 2 - Number of ones - Generate subsets 16. Questions (Fifth week) - Unique number in an array of duplicates - 2 unique numbers in an array of duplicates - Unique number in an array of triplets
17. Prime Sieve (Fifth week)
- Prime sieve
18. Number Theory basics (Fifth week)
- Euclid’s algo for GCD - Inclusion exclusion principle
19. Introduction to Recursion (Fifth week)
- Call stack - Fibonacci numbers - Factorial - Fast power - First occurrence and last occurrence - Increasing, Decreasing order - Time complexity for recursive functions (Master’s theorem)
20. Recursion - ll (Fifth week)
- Tower of hanoi - Reverse string - Replace pi - Remove duplicates - Move all x - Subsequence generation - Generate permutations
21. Recursion - lll (Fifth week)
- Permutation - Board game - 0-1 Knapsack - Tiling problem - Friends pairing problem - Count paths in Maze
- Classes and objects - Data members and functions - Getters, setters - Constructor & its types - Shallow and deep copy - Copy assignment - Destructor - Overloading
26. STL (Sixth week)
- Pair class - Other STL functions, Iterators, comparators 3 - Templates
27. Vectors (Sixth week)
- Intro - Methods - Sorting - Template
28. Linked List (Sixth week)
- Introduction and implementation - Insertion in linked list - Searching in linked list - Deletion in linked list - Reverse a linked list - Iterative and recursive solution - K reverse problem - Floyd's cycle detection and removal - Doubly linked list - Circular linked list
- Histogram area - Circular tour - Balanced parentheses
35. Binary Trees (Eighth week)
- Introduction - Preorder, inorder, postorder - Level order - Sum at level K - Height and Diameter of Binary Tree - BFS traversal - DFS traversal - Count and sum nodes - Height balanced tree - Build balanced tree from array - Different views of binary tree - Nodes at distance K - Lowest common ancestor
36. Questions (Eighth week)
- Build from inorder and preorder - Sum at level K - Sum replacement problem - Maximum sum path - Shortest distance between nodes
37. Binary Search Tree (Ninth week 03/12/2020 - 09/12/2020)
- Introduction - Implementation and insertion - Searching - Deletion - Check for BST - Find min and max element - Flatten a tree - Construct from preorder - Catalan no concept - Set STL
38. Questions (Ninth week)
- Structurally identical BST - ZigZag order - Largest BST in BT
39. Heaps (ninth week)
- Introduction to priority queue - Heaps, insertion - Remove min and max element - Build heap from array - Heapsort - Priority queue STL, Running median
40. Challenges (ninth week)
- Top k most frequent numbers in stream - Merge k sorted arrays - Length of Smallest Subsequence such that sum of elements is greater than equal to K
- Introduction to hash functions - Collision handling and separate chaining - Rehashing, load factor - Unordered Map STL - Max frequency character - Vertical order print
42. Hashing Problems (Tenth week)
- Number of subarrays with sum 0 - Longest subarray with sum k - Longest consecutive subsequence (https://www.geeksforgeeks.org/longest-consecutive-subsequence/) - Minimum window substring
43. Greedy Algorithm (Tenth week)
- Introduction - Activity selection problem - Job selection problem - 0/n knapsack problem - Optimal merge pattern problem - Huffman coding problem
- Introduction - Fibonacci problem - Minimum steps to 1 - Minimum coin change - Maximum subarray sum - Snakes and Ladders - 0/1 knapsack - LIS and LCS problem - Matrix chain multiplication - Friends pairing problem - Catalan number concept - Optimal game strategy - Optimal binary search tree - All pair shortest path problem
46. Challenges (Eleventh week)
- No. of Binary String - LCS w 3 strings - Wildcard pattern matching - Brackets all over - Max length bitonic subsequence - Max sum submatrix (https://www.geeksforgeeks.org/maximum-sum-rectangle-in-a-2d-matrix-dp-27/)
47. Graphs - l (Twelfth week 24/12/2020 - 30/12/2020)
- Introduction - Representation - Adjacency list implementation - BFS - DFS - Topological sort - Cycle detection in directed and undirected graph - Connected components - Pairing problem - Bipartite graph check
48. Graphs - ll (Twelfth week)
- Disjoint set introduction - Union and find - Path compression - Union by rank optimisation - Implementation
- Snakes and ladders problem - MST problem - Beautiful vertices 51. Questions (Thirteenth week 31/12/2020 - 6/01/2021) - Sum of all submatrices in a matrix - Searching in sorted matrix - Rain water harvesting (https://www.geeksforgeeks.org/trapping-rain-water/)
52. Number theory Advanced (Thirteenth week)
- Extended Euclid - Multiplicative modulo inverse - Euler totient function - Segmented sieve - Binary/Modular exponentiation - both recursive and iterative - Matrix Exponentiation - It’s cases - Fermat little theorem, wilson theorem 53. Tries (Thirteenth week) - Data structure introduction - Insertion - Searching - Phonebook problem - Xor subarray problem
54. Questions (Thirteenth week)
- Intersection of 2 arrays - String window - Subarrays with distinct element - Digital dictionary
55. String algorithms (Thirteenth week)
- Brute force - KMP - Finite automata - Robin karp
56. Segment tree (Fourteenth week 7/01/2021 - 13/01/2021)
- Intro, build, updation, query - Min, max, sum in the subarray - Lazy propagation
57. Binary indexed tree (Fourteenth week)
- Structure of BIT - Update or build, query. - Problems