0% found this document useful (0 votes)
10 views5 pages

Dsa With Java Syllabus

The document outlines a comprehensive curriculum for a programming course covering Git & GitHub, Java programming, data structures, algorithms, and advanced concepts. Key topics include recursion, object-oriented programming, dynamic programming, and various algorithms for sorting, searching, and graph processing. Additionally, it addresses mathematical concepts relevant to data structures and algorithms, as well as advanced topics like multithreading and NP-completeness.

Uploaded by

projectssanjib
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views5 pages

Dsa With Java Syllabus

The document outlines a comprehensive curriculum for a programming course covering Git & GitHub, Java programming, data structures, algorithms, and advanced concepts. Key topics include recursion, object-oriented programming, dynamic programming, and various algorithms for sorting, searching, and graph processing. Additionally, it addresses mathematical concepts relevant to data structures and algorithms, as well as advanced topics like multithreading and NP-completeness.

Uploaded by

projectssanjib
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

• Complete Git & GitHub Course

• Introduction to Programming
– Types of languages
– Memory management
• Flow of the program
– Flowcharts
– Pseudocode
• Introduction to Java
– Introduction
– How it works
– Setup Installation
– 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
– Searching
∗ Linear Search
∗ Binary Search
∗ Modified Binary Search
∗ Binary Search on 2D Arrays
– Sorting
∗ Insertion Sort
∗ Selection Sort
∗ Bubble Sort
∗ Cyclic Sort
∗ Count Sort
∗ Radix Sort
• Pattern questions
• Strings
– Introduction
– How Strings work
– Comparison of methods

1
– Operations in Strings
– StringBuilder in Java
– StringBuffer
• 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
• Recursion
– Introduction
– Flow of recursive programs - stacks
– Why recursion?
– Tree building of function calls
– Tail recursion
– Sorting
∗ Merge Sort
∗ Quick Sort
– Backtracking
∗ N-Queens
∗ N-Knights
∗ Sudoku Solver
∗ Maze problems
– Recursion String Problems
– Recursion Google, Amazon Questions
– Recursion Array Problems
– Recursion Pattern Problems
– Subset Questions
• 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

2
• 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
• Linked List
– Introduction
– Singly + Doubly + Circular LinkedList
– Fast and slow pointer
– Cycle Detection
– Reversal of LinkedList
– Linked List + Recursion
• Stacks & Queues
– Introduction
– Push efficient
– Pop efficient
– Queue using Stack and vice versa
– Circular Queue
– Interview problems
• File handling
• Trees
– Introduction
∗ Binary Trees
∗ Binary Search Trees
– Interview questions

3
∗ DFS
∗ BFS
– AVL Trees
– Segment Tree
– Fenwick Tree / Binary Indexed Tree
• Heaps
– Introduction
∗ Theory
∗ Priority Queue
∗ Heapsort
– Two Heaps Method
– k-way merge
– Top k elements
– Interval problems
• 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
• Subarray Questions: Sliding window, Two Pointer, Kadane’s Algorithm
• 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
• Dynamic Programming
– Introduction
– Recursion + Recursion DP + Iteration + Iteration Space Optimized
– Complexity Analysis
– 0/1 Knapsack
– Subset Questions
– Unbounded Knapsack
– Subsequence questions

4
– String DP
• Greedy Algorithms
• Tries

Advanced concepts apart from interviews


• 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
• Square Root Decomposition

You might also like