DSA-Bootcamp-Java
                                
                                 DSA-Bootcamp-Java copied to clipboard
                                
                                    DSA-Bootcamp-Java copied to clipboard
                            
                            
                            
                        # Progress Tracker R2D2
          # Progress Tracker
DSA
- [x] Complete Git & GitHub Course
- [x] Introduction to Programming
- 
- [x] Types of languages
 
- 
- [x] Memory management
 
 
- 
- [x] Flow of the program
- 
- [x] Flowcharts
 
- 
- [x] Pseudocode
 
 
- 
- [x] Introduction to Java
- 
- [x] Introduction
 
- 
- [x] How it works
 
- 
- [x] Setup Installation
 
- 
- [x] Input and Output in Java
 
- 
- [ ] Conditionals & Loops in Java
- 
- [ ] if else
 
- 
- [ ] loops
 
- 
- [ ] Switch statements
 
 
- 
- [ ] Data types
 
- 
- [ ] Coding best practices
 
 
- 
- [ ] Functions
- 
- [ ] Introduction
 
- 
- [ ] Scoping in Java
 
- 
- [ ] Shadowing
 
- 
- [ ] Variable Length Arguments
 
- 
- [ ] Overloading
 
 
- 
- [ ] Arrays
- 
- [ ] Introduction
 
- 
- [ ] Memory management
 
- 
- [ ] Input and Output
 
- 
- [ ] ArrayList Introduction
 
- 
- [ ] Sorting
- 
- [ ] Insertion Sort
 
- 
- [ ] Selection Sort
 
- 
- [ ] Bubble Sort
 
- 
- [ ] Cyclic Sort (Merge sort etc after recursion)
 
 
- [ ] Searching
- 
- [ ] Linear Search
 
- 
- [ ] Binary Search
 
- 
- [ ] Modified Binary Search
 
- 
- [ ] Binary Search Interview questions
 
- 
- [ ] Binary Search on 2D Arrays
 
 
- 
 
- 
- [ ] Pattern questions
- [ ] Strings
- [ ] Introduction
- [ ] How Strings work
- [ ] Comparison of methods
- [ ] Operations in Strings
- [ ] StringBuilder in java
 
- [ ] Maths for DSA
- 
- [ ] Introduction
 
- 
- [ ] Complete Bitwise Operators
 
- 
- [ ] Prime numbers
 
- 
- [ ] HCF / LCM
 
- 
- [ ] Sieve of Eratosthenes
 
- 
- [ ] Newton's Square Root Method
 
- 
- [ ] Number Theory
 
- 
- [ ] Euclidean algorithm
 
 
- 
- [ ] Space and Time Complexity Analysis
- 
- [ ] Introduction
 
- 
- [ ] Comparion of various cases
 
- 
- [ ] Solving Linear Recurrence Relations
 
- 
- [ ] Solving Divide and Conquer Recurrence Relations
 
- 
- [ ] Big-O, Big-Omega, Big-Theta Notations
 
- 
- [ ] Get equation of any relation easily - best and easiest approach
 
- 
- [ ] Complexity discussion of all the problems we do
 
- 
- [ ] Space Complexity
 
- 
- [ ] Memory Allocation of various languages
 
- 
- [ ] NP Completeness and Hardness
 
 
- 
- [ ] Recursion
- 
- [ ] Introduction
 
- 
- [ ] Why recursion?
 
- 
- [ ] Flow of recursive programs - stacks
 
- 
- [ ] Convert recursion to iteration
 
- 
- [ ] Tree building of function calls
 
- 
- [ ] Tail recursion
 
- 
- [ ] Sorting:
- 
- [ ] Merge Sort
 
- 
- [ ] Quick Sort
 
 
- 
 
- [ ] Sorting:
- 
- [ ] Backtracking
- 
- [ ] Sudoku Solver
 
- 
- [ ] N-Queens
 
- 
- [ ] N-Knights
 
- 
- [ ] Maze problems
 
 
- 
 
- [ ] Backtracking
- 
- [ ] Recursion String Problems
 
- 
- [ ] Recursion Array Problems
 
- 
- [ ] Recursion Pattern Problems
 
- 
- [ ] Subset Questions
 
- 
- [ ] Recursion - Permutations, Dice Throws etc Questions
 
 
- 
- [ ] Object Oriented Programming
- 
- [ ] Introduction
 
- 
- [ ] Classes & its instances
 
- 
- [ ] this keyword in Java
 
- 
- [ ] Properties
- 
- [ ] Inheritance
 
- 
- [ ] Abstraction
 
- 
- [ ] Polymorphism
 
- 
- [ ] Encapsulation
 
 
- 
 
- [ ] Properties
- 
- [ ] Overloading & Overriding
 
- 
- [ ] Static & Non-Static
 
- 
- [ ] Access Control
 
- 
- [ ] Interfaces
 
- 
- [ ] Abstract Classes
 
- 
- [ ] Singleton Class
 
- 
- [ ] final, finalize, finally
 
- 
- [ ] Exception Handling
 
 
- 
- [ ] Linked List
- 
- [ ] Introduction
 
- 
- [ ] Singly and Doubly Linked List
 
- 
- [ ] Circular Linked List
 
- 
- [ ] Fast and slow pointer
 
- 
- [ ] Cycle Detection
 
- 
- [ ] Reversing of LinekdList
 
- 
- [ ] Linked List Interview questions
 
 
- 
- [ ] Stacks & Queues
- 
- [ ] Introduction
 
- 
- [ ] Interview problems
 
- 
- [ ] Push efficient
 
- 
- [ ] Pop efficient
 
- 
- [ ] Queue using Stack and Vice versa
 
- 
- [ ] Circular Queue
 
 
- 
- [ ] Dynamic Programming
- 
- [ ] Introduction
 
- 
- [ ] Recursion + Recursion DP + Iteration + Iteration Space Optimized
 
- 
- [ ] Complexity Analysis
 
- 
- [ ] 0/1 Knapsack
 
- 
- [ ] Subset Questions
 
- 
- [ ] Unbounded Knapsack
 
- 
- [ ] Subseq questions
 
- 
- [ ] String DP
 
 
- 
- [ ] Trees
- 
- [ ] Introduction
 
- 
- [ ] Binary Trees
 
- 
- [ ] Binary Search Trees
 
- 
- [ ] DFS
 
- 
- [ ] BFS
 
- 
- [ ] AVL Trees
 
- 
- [ ] Segment Tree
 
- 
- [ ] Fenwick Tree / Binary Indexed Tree
 
 
- 
- [ ] Heaps
- 
- [ ] Introduction
 
- 
- [ ] Theory
 
- 
- [ ] Priority Queue
 
- 
- [ ] Two Heaps Method
 
- 
- [ ] k-way merge
 
- 
- [ ] top k elements
 
- 
- [ ] interval problems
 
 
- 
- [ ] Hashmaps
- 
- [ ] Introduction
 
- 
- [ ] Theory - how it works
 
- 
- [ ] Comparisons of various forms
 
- 
- [ ] Limitations and how to solve
 
- 
- [ ] Map using LinkedList
 
- 
- [ ] Map using Hash
 
- 
- [ ] Chaining
 
- 
- [ ] Probing
 
- 
- [ ] Huffman-Encoder
 
 
- 
- [ ] Tries
- [ ] 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
 
 
- 
- [ ] Greedy Algorithms
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
Originally posted by @DivSriv in https://github.com/kunal-kushwaha/DSA-Bootcamp-Java/issues/679#issuecomment-1159684931