Skip to content

Commit 5acb05b

Browse files
added syllabus from Kunal's Bootcamp
1 parent 2c3d4bd commit 5acb05b

File tree

1 file changed

+196
-0
lines changed

1 file changed

+196
-0
lines changed

SYLLABUS.md

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
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

Comments
 (0)