|
| 1 | +# Complete [Java + DSA Bootcamp Syllabus](https://github.com/kunal-kushwaha/DSA-Bootcamp-Java) |
| 2 | + |
| 3 | +## NOTE: |
| 4 | +- All topics will contain problems from LeetCode Easy to Hard, explained in an easy-to-understand manner. |
| 5 | +- Complete custom implementation of all Data Structures and Algorithms. |
| 6 | + |
| 7 | +## Lectures |
| 8 | +- [Complete Git & GitHub Course](https://youtu.be/apGV9Kg7ics) |
| 9 | +- [Introduction to Programming](https://youtu.be/wn49bJOYAZM) |
| 10 | + - [Types of languages](https://youtu.be/wn49bJOYAZM?t=171) |
| 11 | + - [Memory management](https://youtu.be/wn49bJOYAZM?t=1488) |
| 12 | +- [Flow of the program](https://youtu.be/lhELGQAV4gg) |
| 13 | + - [Flowcharts](https://youtu.be/lhELGQAV4gg) |
| 14 | + - [Pseudocode](https://youtu.be/lhELGQAV4gg?t=715) |
| 15 | +- [Introduction to Java](https://youtu.be/4EP8YzcN0hQ) |
| 16 | + - [Introduction](https://youtu.be/4EP8YzcN0hQ) |
| 17 | + - [How it works](https://youtu.be/4EP8YzcN0hQ?t=93) |
| 18 | + - [Setup Installation](https://youtu.be/4EP8YzcN0hQ?t=1486) |
| 19 | + - [Input and Output in Java](https://youtu.be/TAtrPoaJ7gc) |
| 20 | + - [Conditionals & Loops in Java](https://youtu.be/ldYLYRNaucM?t=88) |
| 21 | + - [if-else](https://youtu.be/ldYLYRNaucM?t=88) |
| 22 | + - [loops](https://youtu.be/ldYLYRNaucM?t=440) |
| 23 | + - [Switch statements](https://youtu.be/mA23x39DjbI) |
| 24 | + - [Data-types](https://youtu.be/TAtrPoaJ7gc?t=2800) |
| 25 | + - [Coding best practices](https://youtu.be/waGfV-IoOt8) |
| 26 | +- [Functions](https://youtu.be/vvanI8NRlSI) |
| 27 | + - [Introduction](https://youtu.be/vvanI8NRlSI) |
| 28 | + - [Scoping in Java](https://youtu.be/vvanI8NRlSI?t=2801) |
| 29 | + - [Shadowing](https://youtu.be/vvanI8NRlSI?t=3584) |
| 30 | + - [Variable Length Arguments](https://youtu.be/vvanI8NRlSI?t=4013) |
| 31 | + - [Overloading](https://youtu.be/vvanI8NRlSI?t=4327) |
| 32 | +- [Arrays](https://youtu.be/n60Dn0UsbEk) |
| 33 | + - [Introduction](https://youtu.be/n60Dn0UsbEk) |
| 34 | + - [Memory management](https://youtu.be/n60Dn0UsbEk?t=632) |
| 35 | + - [Input and Output](https://youtu.be/n60Dn0UsbEk?t=1675) |
| 36 | + - [ArrayList Introduction](https://youtu.be/n60Dn0UsbEk?t=4868) |
| 37 | + - Searching |
| 38 | + - [Linear Search](https://youtu.be/_HRA37X8N_Q) |
| 39 | + - [Binary Search](https://youtu.be/f6UU7V3szVw) |
| 40 | + - [Modified Binary Search](https://youtu.be/f6UU7V3szVw?t=2508) |
| 41 | + - Binary Search on 2D Arrays |
| 42 | + - Sorting |
| 43 | + - [Insertion Sort](https://youtu.be/By_5-RRqVeE) |
| 44 | + - [Selection Sort](https://youtu.be/Nd4SCCIHFWk) |
| 45 | + - [Bubble Sort](https://youtu.be/F5MZyqRp_IM) |
| 46 | + - Count Sort |
| 47 | + - Radix Sort |
| 48 | + - [Cyclic Sort](https://youtu.be/JfinxytTYFQ) |
| 49 | + - Sliding window |
| 50 | + - Two Pointer |
| 51 | + - Subarray Questions |
| 52 | +- Pattern questions |
| 53 | +- Strings |
| 54 | + - Introduction |
| 55 | + - How Strings work |
| 56 | + - Comparison of methods |
| 57 | + - Operations in Strings |
| 58 | + - StringBuilder in java |
| 59 | +- Maths for DSA |
| 60 | + - Introduction |
| 61 | + - Complete Bitwise Operators |
| 62 | + - Prime numbers |
| 63 | + - HCF / LCM |
| 64 | + - Sieve of Eratosthenes |
| 65 | + - Newton's Square Root Method |
| 66 | + - Number Theory |
| 67 | + - Euclidean algorithm |
| 68 | + - Advanced Concepts for CP (later in the course) |
| 69 | + - Bitwise + DP |
| 70 | + - Extended Euclidean algorithm |
| 71 | + - Modulo Properties |
| 72 | + - Modulo Multiplicative Inverse |
| 73 | + - Linear Diophantine Equations |
| 74 | + - Fermat’s Theorem |
| 75 | + - Wilson's Theorem |
| 76 | + - Lucas Theorem |
| 77 | + - Chinese Remainder Theorem |
| 78 | +- Recursion |
| 79 | + - Introduction |
| 80 | + - Why recursion? |
| 81 | + - Flow of recursive programs - stacks |
| 82 | + - Convert recursion to iteration |
| 83 | + - Tree building of function calls |
| 84 | + - Tail recursion |
| 85 | + - Sorting: |
| 86 | + - Merge Sort |
| 87 | + - Quick Sort |
| 88 | + - Backtracking |
| 89 | + - Sudoku Solver |
| 90 | + - N-Queens |
| 91 | + - N-Knights |
| 92 | + - Maze problems |
| 93 | + - Recursion String Problems |
| 94 | + - Recursion Array Problems |
| 95 | + - Recursion Pattern Problems |
| 96 | + - Subset Questions |
| 97 | +- Space and Time Complexity Analysis |
| 98 | + - Introduction |
| 99 | + - Comparisons of various cases |
| 100 | + - Solving Linear Recurrence Relations |
| 101 | + - Solving Divide and Conquer Recurrence Relations |
| 102 | + - Big-O, Big-Omega, Big-Theta Notations |
| 103 | + - Get equation of any relation easily - best and easiest approach |
| 104 | + - Complexity discussion of all the problems we do |
| 105 | + - Space Complexity |
| 106 | + - Memory Allocation of various languages |
| 107 | + - NP-Completeness and Hardness |
| 108 | +- Object Oriented Programming |
| 109 | + - Introduction |
| 110 | + - Classes & its instances |
| 111 | + - this keyword in Java |
| 112 | + - Properties |
| 113 | + - Inheritance |
| 114 | + - Abstraction |
| 115 | + - Polymorphism |
| 116 | + - Encapsulation |
| 117 | + - Overloading & Overriding |
| 118 | + - Static & Non-Static |
| 119 | + - Access Control |
| 120 | + - Interfaces |
| 121 | + - Abstract Classes |
| 122 | + - Singleton Class |
| 123 | + - final, finalize, finally |
| 124 | + - Object Class |
| 125 | + - Generics |
| 126 | + - Exception Handling |
| 127 | + - Collections Framework |
| 128 | + - Lambda Expression |
| 129 | + - Enums |
| 130 | + - Fast IO |
| 131 | + - File handling |
| 132 | +- Greedy Algorithms |
| 133 | +- Stacks & Queues |
| 134 | + - Introduction |
| 135 | + - Interview problems |
| 136 | + - Push efficient |
| 137 | + - Pop efficient |
| 138 | + - Queue using Stack and Vice versa |
| 139 | + - Circular Queue |
| 140 | +- Linked List |
| 141 | + - Introduction |
| 142 | + - Fast and slow pointer |
| 143 | + - Cycle Detection |
| 144 | + - Single and Doubly LinkedList |
| 145 | + - Reversal of LinkedList |
| 146 | +- Dynamic Programming |
| 147 | + - Introduction |
| 148 | + - Recursion + Recursion DP + Iteration + Iteration Space Optimized |
| 149 | + - Complexity Analysis |
| 150 | + - 0/1 Knapsack |
| 151 | + - Subset Questions |
| 152 | + - Unbounded Knapsack |
| 153 | + - Subsequence questions |
| 154 | + - String DP |
| 155 | +- Trees |
| 156 | + - Introduction |
| 157 | + - Binary Trees |
| 158 | + - Binary Search Trees |
| 159 | + - DFS |
| 160 | + - BFS |
| 161 | + - AVL Trees |
| 162 | + - Segment Tree |
| 163 | + - Fenwick Tree / Binary Indexed Tree |
| 164 | +- Square Root Decomposition |
| 165 | +- Heaps |
| 166 | + - Introduction |
| 167 | + - Theory |
| 168 | + - Priority Queue |
| 169 | + - Heapsort |
| 170 | + - Two Heaps Method |
| 171 | + - k-way merge |
| 172 | + - Top k elements |
| 173 | + - Interval problems |
| 174 | +- HashMap |
| 175 | + - Introduction |
| 176 | + - Theory - how it works |
| 177 | + - Comparisons of various forms |
| 178 | + - Limitations and how to solve |
| 179 | + - Map using LinkedList |
| 180 | + - Map using Hash |
| 181 | + - Chaining |
| 182 | + - Probing |
| 183 | + - Huffman-Encoder |
| 184 | +- Tries |
| 185 | +- Graphs |
| 186 | + - Introduction |
| 187 | + - BFS |
| 188 | + - DFS |
| 189 | + - Working with graph components |
| 190 | + - Minimum Spanning Trees |
| 191 | + - Kruskal Algorithm |
| 192 | + - Prims Algorithm |
| 193 | + - Dijkstra’s shortest path algorithm |
| 194 | + - Topological Sort |
| 195 | + - Bellman ford |
| 196 | + - A* pathfinding Algorithm |
0 commit comments