Open M-kingshuk opened 1 year ago
Syllabus Tracker :
- [ ] Complete Git & GitHub Course
[ ] Introduction to Programming
- [ ] Types of languages
- [ ] Memory management
- [ ] Flowcharts
- [ ] Pseudocode
[ ] Introduction
[ ] How it works
[ ] if-else
[ ] loops
[ ] Data-types
[ ] Functions
- [ ] Introduction
- [ ] Scoping in Java
- [ ] Shadowing
- [ ] Variable Length Arguments
- [ ] Overloading
[ ] Arrays
[ ] Introduction
[ ] Input and Output
Searching
[ ] Linear Search
[ ] Binary Search
Sorting
[ ] Insertion Sort
[ ] Selection Sort
[ ] Bubble Sort
[ ] Cyclic Sort
- [ ] [Sliding window]
- [ ] [Two pointers]
- [ ] [Subarray questions]
- [ ] Pattern questions
[ ] Strings
- [ ] Introduction
- [ ] How Strings work
- [ ] Comparison of methods
- [ ] Operations in Strings
- [ ] StringBuilder in java
[ ] Maths for DSA
- [ ] Introduction
- [ ] Complete Bitwise Operators
- [ ] Range of numbers
- [ ] Prime numbers
- [ ] Sieve of Eratosthenes
- [ ] Newton's Square Root Method
- [ ] Factors
- [ ] Modulo properties
- [ ] Number Theory
- [ ] HCF / LCM
- [ ] Euclidean algorithm
[ ] Recursion
[ ] Introduction
[ ] Why recursion?
[ ] Tail recursion
[ ] Sorting
[ ] Merge Sort
[ ] Quick Sort
[ ] Backtracking
[ ] N-Queens
[ ] N-Knights
[ ] Sudoku Solver
[ ] Maze problems
[ ] Subset Questions
[ ] Space and Time Complexity Analysis
- [ ] Introduction
- [ ] Comparisons of various cases
- [ ] Solving Linear Recurrence Relations
- [ ] Solving Divide and Conquer Recurrence Relations
- [ ] Big-O, Big-Omega, Big-Theta Notations
- [ ] Little Notations
- [ ] Get equation of any relation easily - best and easiest approach
- [ ] Complexity discussion of all the problems we do
- [ ] Space Complexity
- [ ] NP-Completeness Introduction
[ ] Object Oriented Programming
[ ] Introduction
[ ] Properties
[ ] Inheritance
[ ] Abstraction
[ ] Polymorphism
[ ] Encapsulation
[ ] Packages
[ ] Access Control
[ ] Interfaces
[ ] Abstract Classes
[ ] Annotations
[ ] Singleton Class
[ ] Object Cloning
[ ] Object Class
[ ] Generics
[ ] Vector Class
[ ] Enums
[ ] Linked List
[ ] Stacks & Queues
- [ ] Introduction
- [ ] Interview problems
- [ ] Push efficient
- [ ] Pop efficient
- [ ] Queue using Stack and Vice versa
- [ ] Circular Queue
[ ] Trees
- [ ] Introduction
- [ ] Binary Trees
- [ ] Binary Search Trees
- [ ] DFS
- [ ] BFS
- [ ] AVL Trees
- [ ] Segment Tree
[ ] Heaps
- [ ] Introduction
- [ ] Theory
- [ ] Priority Queue
- [ ] Heapsort
- [ ] Two Heaps Method
- [ ] k-way merge
- [ ] Top k elements
- [ ] Interval problems
[ ] HashMap
- [ ] Introduction
- [ ] Theory - how it works
- [ ] Comparisons of various forms
- [ ] Limitations and how to solve
- [ ] Map using LinkedList
- [ ] Map using Hash
- [ ] Count Sort
- [ ] Radix Sort
- [ ] Chaining
- [ ] Probing
- [ ] Huffman-Encoder
- [ ] Subarray Questions: Sliding window, Two Pointer, Kadane's Algorithm
[ ] Graphs
- [ ] Introduction
- [ ] BFS
- [ ] DFS
- [ ] Working with graph components
- [ ] Minimum Spanning Trees
- [ ] Kruskal Algorithm
- [ ] Prims Algorithm
- [ ] Dijkstra’s shortest path algorithm
- [ ] Topological Sort
- [ ] Bellman ford
- [ ] A* pathfinding Algorithm
[ ] Dynamic Programming
- [ ] Introduction
- [ ] Recursion + Recursion DP + Iteration + Iteration Space Optimized
- [ ] Complexity Analysis
- [ ] 0/1 Knapsack
- [ ] Subset Questions
- [ ] Unbounded Knapsack
- [ ] Subsequence questions
- [ ] String DP
- [ ] Greedy Algorithms
- [ ] Tries
Advanced concepts apart from interviews
- [ ] Fast IO
- [ ] File handling
- [ ] Bitwise + DP
- [ ] Extended Euclidean algorithm
- [ ] Modulo Multiplicative Inverse
- [ ] Linear Diophantine Equations
- [ ] Matrix Exponentiation
- [ ] Mathematical Expectation
- [ ] Catalan Numbers
- [ ] Fermat’s Theorem
- [ ] Wilson's Theorem
- [ ] Euler's Theorem
- [ ] Lucas Theorem
- [ ] Chinese Remainder Theorem
- [ ] Euler Totient
- [ ] NP-Completeness
- [ ] Multithreading
- [ ] Fenwick Tree / Binary Indexed Tree
- [ ] Square Root Decomposition
# Complete Java + DSA Bootcamp Syllabus
NOTE
Lectures
Advanced concepts apart from interviews