DSA-Bootcamp-Java icon indicating copy to clipboard operation
DSA-Bootcamp-Java copied to clipboard

Ravi's Progress Tracker

Open RaviAshray15 opened this issue 1 year ago • 2 comments

Data Structures and Algorithms (DSA) Course Outline

Git & GitHub

  • [x] Complete Git & GitHub Course

Introduction to Programming

  • [x] Types of languages
  • [x] Memory management
  • [x] Flow of the program
  • [x] Flowcharts
  • [x] Pseudocode

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 to Strings

  • [ ] 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
  • [ ] Comparison 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

Backtracking

  • [ ] Sudoku Solver
  • [ ] N-Queens
  • [ ] N-Knights
  • [ ] Maze problems
  • [ ] Recursion String Problems
  • [ ] Recursion Array Problems
  • [ ] Recursion Pattern Problems
  • [ ] Subset Questions
  • [ ] Recursion - Permutations, Dice Throws etc Questions

Object Oriented Programming (OOP)

  • [ ] 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

Linked List

  • [ ] Introduction
  • [ ] Singly and Doubly Linked List
  • [ ] Circular Linked List
  • [ ] Fast and slow pointer
  • [ ] Cycle Detection
  • [ ] Reversing of LinkedList
  • [ ] Linked List Interview questions

Stacks & Queues

  • [ ] Introduction
  • [ ] Interview problems
  • [ ] Push efficient
  • [ ] Pop efficient
  • [ ] Queue using Stack and Vice versa
  • [ ] Circular Queue

Dynamic Programming (DP)

  • [ ] 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

  • [ ] Introduction

Graphs

  • [ ] Introduction
  • [ ] BFS
  • [ ] DFS
  • [ ] Working with graph components
  • [ ] Minimum Spanning Trees
  • [ ] Kruskal Algorithm
  • [ ] Prim’s Algorithm
  • [ ] Dijkstra’s shortest path algorithm
  • [ ] Topological Sort
  • [ ] Bellman Ford
  • [ ] A* pathfinding Algorithm

Greedy Algorithms

  • [ ] Introduction

Advanced Concepts

  • [ ] 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

RaviAshray15 avatar Sep 19 '24 07:09 RaviAshray15