Full JAVA+DSA
Syallabus
Basic to Advanced
Level
1. Introduction to Java
➔ Introduction
➔ How it works
➔ Setup Installation
➔ Input and Output in Java
2. Conditionals & Loops in Java
➔ if-else
➔ loops
➔ Switch statements
➔ Data-types
➔ Coding best practices
3. Functions
➔ Introduction
➔ Scoping in Java
➔ Shadowing
➔ Variable Length Arguments
➔ Overloading
4. Arrays
➔ Introduction
➔ Memory management
➔ Input and Output
➔ ArrayList Introduction
5. Searching
➔ Linear Search
➔ Binary Search
➔ Modified Binary Search
➔ Binary Search on 2D Arrays
6. Sorting
➔ Insertion Sort
➔ Selection Sort
➔ Bubble Sort
➔ Cyclic Sort
➔ Count Sort
➔ Radix Sort
7. Pattern questions
8. Strings
➔ Introduction
➔ How Strings work
➔ Comparison of methods
➔ Operations in Strings
➔ StringBuilder in Java
➔ StringBuffer
9. 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
➔ BigInteger & BigDecimal
10. Recursion
➔ Introduction
➔ Flow of recursive programs - stacks
➔ Why recursion?
➔ Tree building of function calls
➔ Tail recursion
11. Sorting
➔ Merge Sort
➔ Quick Sort
12. Backtracking
➔ N-Queens
➔ N-Knights
➔ Sudoku Solver
➔ Maze problems
➔ Recursion String Problems
➔ Recursion Google, Amazon Questions
➔ Recursion Array Problems
➔ Recursion Pattern Problems
➔ Subset Questions
13. 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
14. Object Oriented Programming
➔ Introduction
➔ Classes & its instances
➔ this keyword in Java
Properties
➔ Inheritance
➔ Abstraction
➔ Polymorphism
➔ Encapsulation
➔ Overloading & Overriding
➔ Static & Non-Static
➔ Packages
➔ Access Control
➔ Interfaces
➔ Abstract Classes
➔ Annotations
➔ Singleton Class
➔ final, finalize, finally
➔ Object Cloning
➔ Object Class
➔ Generics
➔ Exception Handling
➔ Collections Framework
➔ Vector Class
➔ Lambda Expression
➔ Enums
15. Linked List
➔ Introduction
➔ Singly + Doubly + Circular LinkedList
➔ Fast and slow pointer
➔ Cycle Detection
➔ Reversal of LinkedList
➔ Linked List + Recursion
16. Stacks & Queues
➔ Introduction
➔ Push efficient
➔ Pop efficient
➔ Queue using Stack and vice versa
➔ Circular Queue
➔ Interview problems
17. File handling
18. Trees
Introduction
➔ Binary Trees
➔ Binary Search Trees
Interview questions
➔ DFS
➔ BFS
➔ AVL Trees
➔ Segment Tree
➔ Fenwick Tree / Binary Indexed Tree
19. Heaps
Introduction
➔ Theory
➔ Priority Queue
➔ Heapsort
➔ Two Heaps Method
➔ k-way merge
➔ Top k elements
➔ Interval problems
20. HashMap
Introduction
➔ Theory - how it works
➔ Comparisons of various forms
➔ Limitations and how to solve
➔ Map using LinkedList
➔ Map using Hash
➔ Chaining
➔ Probing
➔
➔ Huffman Coding
➔ Karp-Rabin Strng matching algorithm
21. Subarray Questions: Sliding window, Two Pointer,
Kadane's Algorithm
22. 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
23. 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
➔ Trees
Resources
1. Link
2. Link