| # | Module | Topic | Status | Files |
|---|---|---|---|---|
01 |
flow-of-program |
🌊 Flow of Program | ✅ Done | 5 |
02 |
first-java |
☕ First Java | ✅ Done | 9 |
03 |
conditionals-loops |
🔁 Conditionals & Loops | 🔄 In Progress | — |
04 |
functions |
⚙️ Functions | ⏭️ Next Up | — |
05 |
arrays |
📦 Arrays | ⬜ Not Started | — |
06 |
searching |
🔍 Searching | ⬜ Not Started | — |
07 |
sorting |
🔃 Sorting | ⬜ Not Started | — |
08 |
strings |
🔤 Strings | ⬜ Not Started | — |
09 |
patterns |
🔷 Patterns | ⬜ Not Started | — |
10 |
recursion |
🌀 Recursion | ⬜ Not Started | — |
11 |
bitwise |
💡 Bitwise Ops | ⬜ Not Started | — |
12 |
math |
➗ Math | ⬜ Not Started | — |
13 |
complexities |
📈 Complexities | ⬜ Not Started | — |
14 |
oop |
🏛️ OOP | ⬜ Not Started | — |
15 |
linkedlist |
🔗 Linked List | ⬜ Not Started | — |
16 |
stack-queue |
🗂️ Stack & Queue | ⬜ Not Started | — |
17 |
trees |
🌳 Trees | ⬜ Not Started | — |
18 |
heaps |
⛰️ Heaps | ⬜ Not Started | — |
Legend: ✅ Done | 🔄 In Progress | ⏭️ Next Up | ⬜ Not Started
📦 DSA/
│
├── 📄 README.md
│
├── 📂 first-java/ ← 📍 Module 02 — ACTIVE 🔄
│ ├── ☕ Armstrong.java # Armstrong numbers in a range 🔢
│ ├── ☕ Calculator.java # Arithmetic: + − × ÷ via if-else
│ ├── ☕ CurrencyConverter.java # INR → USD (÷ 88 exchange rate)
│ ├── ☕ EvenOdd.java # Even / Odd check (num % 2)
│ ├── ☕ Fibonacii.java # Fibonacci sequence generator 🌀
│ ├── ☕ Greeting.java # Personalised welcome greeting
│ ├── ☕ LargestNumber.java # Largest of 2 numbers (if-else)
│ ├── ☕ Palindrome.java # Palindrome checker (two-pointer) 🔁
│ └── ☕ SimpleInterest.java # SI = (P × R × T) / 100
│
├── 📂 flow-of-program/ ← ✅ Module 01 — COMPLETE
│ ├── ☕ HCFandLCM.java # GCD & LCM calculator
│ ├── ☕ LeapYear.java # Leap year validator
│ ├── ☕ Table.java # Multiplication table generator
│ ├── ☕ Sum.java # Accumulate until 'x' is typed
│ └── ☕ Scrapfile.java # Logic playground / scratch pad
│
└── 📂 upcoming/
├── conditionals-loops/ ← Module 03 ⏭️
├── functions/ ← Module 04
├── arrays/ ← Module 05
└── ... ← Modules 06–18
🧮 Calculator.java — Two numbers + operator → Result
Concept:
if / else-ifchain | Input:int, int, char
char op = sc.next().charAt(0);
if (op == '+') System.out.println("Sum: " + (a + b));
else if (op == '-') System.out.println("Difference: "+ (b - a));
else if (op == '*') System.out.println("Product: " + (a * b));
else if (op == '/') System.out.println("Quotient: " + (a / b));
else System.out.println("Invalid operator!");Enter the first number : 12
Enter the second number : 4
Enter the operation : *
The product of 12 and 4 is : 48
💱 CurrencyConverter.java — INR → USD
Concept: Integer arithmetic | Rate: 1 USD = 88 INR
int usd = (rupees / 88);
System.out.print("The conversion of " + rupees + " rupees in usd is : " + usd);Enter the amount in rupees : 50000
The conversion of 50000 rupees in usd is : 568
🔢 EvenOdd.java — Is it Even or Odd?
Concept: Modulus operator
%
if (num % 2 == 0) System.out.println(num + " is Even");
else System.out.println(num + " is Odd");Enter a number: 7
7 is Odd
🌀 Fibonacii.java — The classic sequence!
Concept: Loops, variable swapping | Output:
0, 1, 1, 2, 3, 5, 8, ...
int a = 0, b = 1;
while (a <= n) {
System.out.print(a + " ");
int temp = a + b;
a = b;
b = temp;
}Enter the limit : 50
0 1 1 2 3 5 8 13 21 34
👋 Greeting.java — Hello, World... personalised!
Concept:
Stringinput,Scanner
System.out.println("Hello " + name + " Welcome to my DSA journey");Enter your name: Krishna
Hello Krishna Welcome to my DSA journey
🏆 LargestNumber.java — Who wins: a or b?
Concept: Comparison with
if-else
if (a > b) System.out.println("Largest number is : " + a);
else System.out.println("Largest number is : " + b);Enter the first number : 42
Enter the second number : 17
Largest number is : 42
📐 SimpleInterest.java — Finance meets Java
Concept: Arithmetic formula |
SI = (P × R × T) / 100
float interest = (principle * rate * time) / 100;
System.out.println("The simple interest is : " + interest);Enter the principle amount : 10000
Enter the rate of interest : 5
Enter the time : 3
The simple interest is : 1500.0
🔢 Armstrong.java — Armstrong numbers in a range
Concept:
Math.pow(), digit extraction,String.valueOf().length()for digit count
for (int num = start; num <= end; num++) {
int digits = String.valueOf(num).length();
int temp = num, sum = 0;
while (temp > 0) {
int digit = temp % 10;
sum += Math.pow(digit, digits);
temp /= 10;
}
if (sum == num) System.out.println(num);
}Enter starting number: 1
Enter ending number: 500
Armstrong numbers between 1 and 500 are:
1
153
370
371
407
🔁 Palindrome.java — Is it a Palindrome?
Concept: Two-pointer technique on a
String
String n = sc.nextLine().toLowerCase();
int left = 0, right = n.length() - 1;
boolean ans = true;
while (left < right) {
if (n.charAt(left) != n.charAt(right)) { ans = false; break; }
left++; right--;
}
System.out.println(ans ? "The String is a palindrome" : "The String is not a palindrome");Enter the string : Racecar
The String is a palindrome
Enter the string : Hello
The String is not a palindrome
| Tool | Minimum | Recommended |
|---|---|---|
| ☕ JDK | 17+ | 25+ |
| 🖥️ IDE | Any | VS Code + Java Extension Pack |
| 🐙 Git | Any | Latest |
# 1️⃣ Clone
git clone https://github.com/krishnasahoo11156/DSA.git && cd DSA
# 2️⃣ Compile
javac first-java/Fibonacii.java
# 3️⃣ Run
java -cp first-java Fibonacii💡 VS Code users: Hit the ▶ Run button — the Extension Pack handles everything automatically!
╔═══════════════════════════════════════════════════════════════════╗
║ PHASE 1 ✅→🔄 Foundations │ Flow · Syntax · Types · I/O ║
║ PHASE 2 ⏭️ Logic │ Conditions · Loops · Methods ║
║ PHASE 3 ⬜ Core DSA │ Arrays · Search · Sort · Str ║
║ PHASE 4 ⬜ Advanced │ Recursion · Bitwise · Math ║
║ PHASE 5 ⬜ OOP │ Classes · Inheritance · DS ║
║ PHASE 6 ⬜ Trees&Heaps │ BST · AVL · Heaps · PQ ║
╚═══════════════════════════════════════════════════════════════════╝