0% 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.

Uploaded by

soham
Copyright
© © All Rights Reserved
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% 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.

Uploaded by

soham
Copyright
© © All Rights Reserved
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

3. Programming Fundamentals ll (First week)


- Break and continue
- Switch
- Operators - arithmetic, relational, logical, bitwise, assignment

4. Pattern Questions (Second week 15/10/2020 - 21/10/2020)


- Introductory examples
- Difficult examples

5. Basics of Number System (Second week)


- 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

22. Backtracking (Sixth week 12/11/2020 - 18/11/2020)


- Rat in maze problem
- N-queen problem

23. Divide and Conquer (Sixth week)


- Merge sort
- Quick sort

24. More sorting techniques (Sixth week)


- Counting sort
- DNF algorithm
- Wave sort

25. OOPS concepts (Sixth week)


- 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

29. Challenges (Seventh week 19/11/2020 - 25/11/2020)


- K append
- Even after odd
- Intersection point
- Merge 2 sorted linked lists

30. Stacks (Seventh week)


- Introduction
- Implement using array
- Implement using linked list
- Reverse a stack
- Balanced parenthesis

31. Infix, prefix, postfix (Seventh week)


- Infix, prefix, postfix expression evaluation
- Infix to prefix using stack
- Infix to postfix using stack

32. Queues (Seventh week)


- Introduction
- Implement using array
- Implement using linked list
- Implement stack using queue
- Implement queue using stacks

33. Deque (Seventh week)


- Introduction
- Maximum element
- Max length unique character substring

34. Questions (Eighth week 26/11/2020 - 02/12/2020)


- 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

41. Hashtable (Tenth week 10/12/2020 - 16/12/2020)


- 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

44. Challenges (Tenth week)


- Coin change
- Max Circles
- Dividing array

45. Dynamic Programming (Eleventh week 17/12/2020 - 23/12/2020)


- 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

49. Graphs - lll (Twelfth week)


- Kruskal’s algorithm
- Prim’s algorithm
- Dijkstra’s algorithm
- Bellman ford algorithm
- Floyd Warshall algorithm
- Strongly connected component using Kosaraju’s algo

50. Challenges (Twelfth week)


- 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

58. Mo’s (sqrt decomposition) (Fifthteenth week 14/01/2021 - 20/01/2021)


- Offline processing of queries with examples
- Introduction, code and examples

59. HLD (Fifthteenth week)


60. Fourier series (Fifthteenth week)

You might also like