# Complete Java + DSA Bootcamp Syllabus ## NOTE: - All topics will contain problems from LeetCode Easy to Hard, explained in an easy to understand manner. - Complete Custom Implementation of all Data Structures and Algorithms. ## Lectures - Introduction to Git - Introduction to Programming - Types of languages - Flowcharts & Pseudocode - Flow of the program - Introduction to Java - Introduction - How it works - Setup Installation - Input and Output in Java - Data-types - Coding best practices - Arrays - Introduction - Memory management - Input and Output - ArrayList Introduction - Sorting - Insertion Sort - Selection Sort - Bubble Sort - Count Sort - Radix Sort - Searching - Linear Search - Binary Search - Modified Binary Search - (more later) - Sliding window - Two Pointer - Subarray 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 - Advanced Concepts for CP (later in course) - Bitwise + DP - Extended Euclidean algorithm - Modulo Properties - Modulo Multiplicative Inverse - Linear Diophantine Equations - Fremat's Theorem - Wilson's Theorem - Lucas Theorem - Chinese Remainder Theorem - Functions - Introduction - Solving the above math problems in code - Scoping in Java - Shadowing - Variable Length Arguments - (more content in OOP such as overloading etc) - 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 - Cyclic Sort - Backtracking - Sudoku Solver - N-Queens - N-Knights - Maze problems - Recursion String Problems - Recursion Array Problems - Recursion Pattern Problems - Subset Questions - Object Oriented Programming - Introduction - Classes & its instances - this keyword in Java - Properties - Inheritance - Abstraction - Polymorphism - Encapsulation - Overloading & Overriding - Static & Non-Static - Access Control - Interfaces - Abstract Classes - Singleton Class - final, finalize, finally - Exception Handling - Stacks & Queues - Introduction - Interview problems - Push efficient - Pop efficient - Queue using Stack and Vice versa - Circular Queue - Linked List - Introduction - Fast and slow pointer - Cycle Detection - Single and Doubly LinkedList - Reversalof LinekdList - 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 - Square Root Decomposition - 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
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up