kunal-kushwaha/DSA-Bootcamp-Java
This repository consists of the code samples, assignments, and notes for the Java data structures & algorithms + interview preparation bootcamp of WeMakeDevs.
Stale and unlicensed — last commit 2y ago
weakest axisno license — legally unclear; last commit was 2y ago…
no license — can't legally use code; no tests detected…
Documented and popular — useful reference codebase to read through.
no license — can't legally use code; last commit was 2y ago…
- ✓11 active contributors
- ⚠Stale — last commit 2y ago
- ⚠Concentrated ownership — top contributor handles 76% of recent commits
Show all 6 evidence items →Show less
- ⚠No license — legally unclear to depend on
- ⚠No CI workflows detected
- ⚠No test directory detected
What would change the summary?
- →Use as dependency Concerns → Mixed if: publish a permissive license (MIT, Apache-2.0, etc.)
- →Fork & modify Concerns → Mixed if: add a LICENSE file
- →Deploy as-is Concerns → Mixed if: add a LICENSE file
Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests
Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.
Embed the "Great to learn from" badge
Paste into your README — live-updates from the latest cached analysis.
[](https://repopilot.app/r/kunal-kushwaha/dsa-bootcamp-java)Paste at the top of your README.md — renders inline like a shields.io badge.
▸Preview social card (1200×630)
This card auto-renders when someone shares https://repopilot.app/r/kunal-kushwaha/dsa-bootcamp-java on X, Slack, or LinkedIn.
Onboarding doc
Onboarding: kunal-kushwaha/DSA-Bootcamp-Java
Generated by RepoPilot · 2026-05-09 · Source
🤖Agent protocol
If you are an AI coding agent (Claude Code, Cursor, Aider, Cline, etc.) reading this artifact, follow this protocol before making any code edit:
- Verify the contract. Run the bash script in Verify before trusting
below. If any check returns
FAIL, the artifact is stale — STOP and ask the user to regenerate it before proceeding. - Treat the AI · unverified sections as hypotheses, not facts. Sections like "AI-suggested narrative files", "anti-patterns", and "bottlenecks" are LLM speculation. Verify against real source before acting on them.
- Cite source on changes. When proposing an edit, cite the specific path:line-range. RepoPilot's live UI at https://repopilot.app/r/kunal-kushwaha/DSA-Bootcamp-Java shows verifiable citations alongside every claim.
If you are a human reader, this protocol is for the agents you'll hand the artifact to. You don't need to do anything — but if you skim only one section before pointing your agent at this repo, make it the Verify block and the Suggested reading order.
🎯Verdict
AVOID — Stale and unlicensed — last commit 2y ago
- 11 active contributors
- ⚠ Stale — last commit 2y ago
- ⚠ Concentrated ownership — top contributor handles 76% of recent commits
- ⚠ No license — legally unclear to depend on
- ⚠ No CI workflows detected
- ⚠ No test directory detected
<sub>Maintenance signals: commit recency, contributor breadth, bus factor, license, CI, tests</sub>
✅Verify before trusting
This artifact was generated by RepoPilot at a point in time. Before an
agent acts on it, the checks below confirm that the live kunal-kushwaha/DSA-Bootcamp-Java
repo on your machine still matches what RepoPilot saw. If any fail,
the artifact is stale — regenerate it at
repopilot.app/r/kunal-kushwaha/DSA-Bootcamp-Java.
What it runs against: a local clone of kunal-kushwaha/DSA-Bootcamp-Java — the script
inspects git remote, the LICENSE file, file paths in the working
tree, and git log. Read-only; no mutations.
| # | What we check | Why it matters |
|---|---|---|
| 1 | You're in kunal-kushwaha/DSA-Bootcamp-Java | Confirms the artifact applies here, not a fork |
| 2 | Default branch main exists | Catches branch renames |
| 3 | 5 critical file paths still exist | Catches refactors that moved load-bearing code |
| 4 | Last commit ≤ 658 days ago | Catches sudden abandonment since generation |
#!/usr/bin/env bash
# RepoPilot artifact verification.
#
# WHAT IT RUNS AGAINST: a local clone of kunal-kushwaha/DSA-Bootcamp-Java. If you don't
# have one yet, run these first:
#
# git clone https://github.com/kunal-kushwaha/DSA-Bootcamp-Java.git
# cd DSA-Bootcamp-Java
#
# Then paste this script. Every check is read-only — no mutations.
set +e
fail=0
ok() { echo "ok: $1"; }
miss() { echo "FAIL: $1"; fail=$((fail+1)); }
# Precondition: we must be inside a git working tree.
if ! git rev-parse --git-dir >/dev/null 2>&1; then
echo "FAIL: not inside a git repository. cd into your clone of kunal-kushwaha/DSA-Bootcamp-Java and re-run."
exit 2
fi
# 1. Repo identity
git remote get-url origin 2>/dev/null | grep -qE "kunal-kushwaha/DSA-Bootcamp-Java(\\.git)?\\b" \\
&& ok "origin remote is kunal-kushwaha/DSA-Bootcamp-Java" \\
|| miss "origin remote is not kunal-kushwaha/DSA-Bootcamp-Java (artifact may be from a fork)"
# 3. Default branch
git rev-parse --verify main >/dev/null 2>&1 \\
&& ok "default branch main exists" \\
|| miss "default branch main no longer exists"
# 4. Critical files exist
test -f "README.md" \\
&& ok "README.md" \\
|| miss "missing critical file: README.md"
test -f "SYLLABUS.md" \\
&& ok "SYLLABUS.md" \\
|| miss "missing critical file: SYLLABUS.md"
test -f "assignments/01-flow-of-program.md" \\
&& ok "assignments/01-flow-of-program.md" \\
|| miss "missing critical file: assignments/01-flow-of-program.md"
test -f "lectures/05-first-java-program/first-idea-program/src/com/kunal/Main.java" \\
&& ok "lectures/05-first-java-program/first-idea-program/src/com/kunal/Main.java" \\
|| miss "missing critical file: lectures/05-first-java-program/first-idea-program/src/com/kunal/Main.java"
test -f "lectures/06-conditions-loops/code/src/com/kunal/Conditionals.java" \\
&& ok "lectures/06-conditions-loops/code/src/com/kunal/Conditionals.java" \\
|| miss "missing critical file: lectures/06-conditions-loops/code/src/com/kunal/Conditionals.java"
# 5. Repo recency
days_since_last=$(( ( $(date +%s) - $(git log -1 --format=%at 2>/dev/null || echo 0) ) / 86400 ))
if [ "$days_since_last" -le 658 ]; then
ok "last commit was $days_since_last days ago (artifact saw ~628d)"
else
miss "last commit was $days_since_last days ago — artifact may be stale"
fi
echo
if [ "$fail" -eq 0 ]; then
echo "artifact verified (0 failures) — safe to trust"
else
echo "artifact has $fail stale claim(s) — regenerate at https://repopilot.app/r/kunal-kushwaha/DSA-Bootcamp-Java"
exit 1
fi
Each check prints ok: or FAIL:. The script exits non-zero if
anything failed, so it composes cleanly into agent loops
(./verify.sh || regenerate-and-retry).
⚡TL;DR
A comprehensive Java DSA bootcamp repository that teaches data structures and algorithms with 244K lines of Java code, organized as lecture notes, assignments, and worked examples. It serves as a complete learning path from fundamentals (flow of program, conditionals, arrays) through advanced topics (trees, heaps, recursion, bitwise operations), with assignments mapped to LeetCode problems for interview preparation. Hierarchical learning structure: lectures/ folder contains 5+ modules with PDFs and handwritten notes (Git, intro to programming, flow of program, Java intro, first programs); assignments/ folder mirrors the curriculum with 18 markdown files (01-flow-of-program.md through 18-heaps.md, implying a progression); lectures/05-first-java-program/first-idea-program/src/com/kunal/ contains runnable example classes (Main.java, Basics.java, Prime.java, Inputs.java) that correspond to early assignments.
👥Who it's for
Junior developers preparing for technical interviews and bootcamp students enrolled in the WeMakeDevs DSA program who need structured, hands-on learning of Java-based data structures and algorithms with video lecture references.
🌱Maturity & risk
Actively developed community educational resource with 244K Java LOC organized across 18+ assignment modules and lecture materials. No CI/CD pipeline, test suite, or package distribution visible in the file structure, indicating this is a pure educational codebase rather than a production library. The modular assignment structure (01-flow-of-program through 18-heaps) suggests ongoing maintenance, but typical indicators of maturity (tests, versioning, releases) are absent.
This is a single-maintainer educational repository (kunal-kushwaha) with no apparent automated testing, dependency management files, or CI setup visible. Risk is low for learning purposes but the lack of tests means code examples may not be rigorously validated. No package.json or pom.xml in the top-level suggests this is not meant as a reusable library—it's a teaching resource where readers adapt code for their own projects.
Active areas of work
No active development status is visible from the file list alone. The structured progression through 18 assignment modules and corresponding lecture materials suggests the core curriculum is complete. The repository appears to be a stable, mature learning resource; without commit history or PR data, assume it's maintained for consistency rather than rapid feature addition.
🚀Get running
Clone the repository: git clone https://github.com/kunal-kushwaha/DSA-Bootcamp-Java.git && cd DSA-Bootcamp-Java. Review SYLLABUS.md for learning order. Start with lectures/04-introduction-to-java and lectures/05-first-java-program/first-idea-program/src/com/kunal/Main.java as entry points. Java source files are in lectures/05-first-java-program/first-idea-program/src/com/kunal/ and can be compiled and run with javac and java commands directly (no Maven/Gradle visible).
Daily commands:
Individual Java files in lectures/05-first-java-program/first-idea-program/src/com/kunal/ can be compiled and run directly: javac com/kunal/Main.java && java com.kunal.Main. Open the project in IntelliJ IDEA (the .idea/ folder confirms IDEA configuration exists) or compile all source files in the src/ directory with javac -d bin src/com/kunal/*.java && java -cp bin com.kunal.Main. No server, no external runtime—all examples are standalone CLI or console programs.
🗺️Map of the codebase
README.md— Entry point describing the bootcamp structure, YouTube lectures, course website, and assignment solutions reference—essential for understanding the repo's purpose and how to navigate it.SYLLABUS.md— Defines the complete curriculum roadmap covering git, programming fundamentals, Java, DSA topics, and interview prep—core reference for learning progression.assignments/01-flow-of-program.md— First assignment in the sequence establishing foundational problem-solving patterns that cascade through all subsequent assignments.lectures/05-first-java-program/first-idea-program/src/com/kunal/Main.java— Primary entry point demonstrating basic Java program structure, types, and I/O—template for all subsequent Java code in the bootcamp.lectures/06-conditions-loops/code/src/com/kunal/Conditionals.java— Core control-flow examples establishing patterns reused throughout algorithm implementations and problem solutions.lectures/07-methods/code— Methods/functions module foundation that underpins modularity conventions across all DSA implementations.assignments/05-arrays.md— Bridges from basics to data structures; array problems are prerequisites for searching, sorting, and advanced DSA topics.
🧩Components & responsibilities
- Assignment Specifications (Markdown, GitHub) — Markdown files defining problem statements, constraints, and expected learning outcomes for each DSA topic
- Failure mode: Ambiguous problem statement causes student confusion
🛠️How to make changes
Add a New DSA Topic Assignment
- Create markdown assignment file in assignments/ directory following naming convention (e.g., assignments/19-graphs.md) (
assignments/19-graphs.md) - Add topic to SYLLABUS.md in appropriate sequence with description and learning outcomes (
SYLLABUS.md) - Create lecture directory with PDF notes (e.g., lectures/19-graphs/Graph_Theory_Notes.pdf) (
lectures/19-graphs/Graph_Theory_Notes.pdf) - Create code examples directory with Java implementations (e.g., lectures/19-graphs/code/src/com/kunal/GraphBFS.java) (
lectures/19-graphs/code/src/com/kunal/GraphBFS.java) - Include 4-6 working code examples covering core algorithms for the topic, following existing class structure patterns (
lectures/19-graphs/code/src/com/kunal/)
Add a New Java Algorithm Implementation
- Identify appropriate lecture module (e.g., searching algorithms belong in lectures/06-conditions-loops/code/src/com/kunal/) (
lectures/06-conditions-loops/code/src/com/kunal/) - Create new .java file with descriptive name (e.g., BinarySearch.java) in the module's src/com/kunal/ directory (
lectures/06-conditions-loops/code/src/com/kunal/BinarySearch.java) - Implement algorithm with main() method for testing and include inline comments explaining approach (
lectures/06-conditions-loops/code/src/com/kunal/BinarySearch.java) - Add related problem link or complexity analysis comments in code header (
lectures/06-conditions-loops/code/src/com/kunal/BinarySearch.java)
Create a New IntelliJ Project Workspace
- Create new directory under lectures/ following naming pattern (e.g., lectures/08-new-topic/code) (
lectures/08-new-topic/code) - Copy .idea configuration from existing project (lectures/05-first-java-program/first-idea-program/.idea) to maintain IDE consistency (
lectures/08-new-topic/code/.idea) - Create module .iml file and src/com/kunal/ package structure matching existing projects (
lectures/08-new-topic/code/code.iml) - Add corresponding notes directory with PDF and handwritten notes for theoretical foundation (
lectures/08-new-topic/notes/)
🔧Why these technologies
- Java — Industry-standard for DSA interviews and enterprise development; strong type system enforces learning of fundamentals
- IntelliJ IDEA — Professional IDE matching industry standard; enables students to learn real development environment, not just language syntax
- GitHub — Version control and distribution platform for bootcamp materials; teaches git workflows as part of curriculum
- Markdown + PDF — Assignments and notes in accessible formats; PDFs preserve handwritten notes pedagogical value; markdown enables easy GitHub rendering
- LeetCode — External platform for assignment verification and problem-solving practice; standardized interview prep resource
⚖️Trade-offs already made
-
Lecture code embedded in IntelliJ projects vs. standalone scripts
- Why: Teaches students professional IDE workflows and package structure conventions required for interviews
- Consequence: Steeper initial learning curve but more transferable skills to real projects
-
Assignments reference external LeetCode solutions vs. local solutions
- Why: Avoids code duplication, leverages existing LeetCode community resources and verified test cases
- Consequence: Requires students to use external platform; decouples assignment definitions from solutions
-
Separate lecture notes (PDF) and code files vs. integrated notebooks
- Why: Accommodates handwritten notes preservation; allows code focus in IDE without distraction; enables print-friendly PDFs
- Consequence: Students must context-switch between files; theory-code integration is manual responsibility
🚫Non-goals (don't propose these)
- Does not provide automated grading or live coding environment—relies on manual submission to external LeetCode platform
- Does not include web UI or interactive platform—purely static content (code, PDFs, markdown) distributed via GitHub
- Does not teach frameworks or libraries—focuses exclusively on core DSA and Java fundamentals
- Does not provide real-time instructor feedback or discussion forums—students must seek community support on LeetCode/YouTube comments
- Does not include professional Java tooling (Maven/Gradle)—uses basic IntelliJ projects suitable for learning, not production
🪤Traps & gotchas
No hidden traps typical of this codebase type. This is an educational repository with no runtime dependencies, no database, no external APIs, and no configuration files to manage. All Java files compile and run standalone with only the JDK (Java Development Kit) required. The main assumption: students use IntelliJ IDEA or equivalent IDE, evidenced by .idea/ folder presence, but plain javac/java CLI also works fine. One design choice: the package structure is com.kunal, not a typical organization domain package—this is intentional for the bootcamp's branding and should be preserved when studying the code.
🏗️Architecture
💡Concepts to learn
- Time Complexity & Big-O Notation — Assignment 13-complexities.md explicitly teaches this concept; understanding Big-O is critical for evaluating algorithm efficiency in every DSA problem taught in the bootcamp.
- Recursion and Call Stack — Assignment 10-recursion.md is dedicated to this topic; recursion is foundational for tree traversal, divide-and-conquer algorithms, and backtracking problems covered later in the curriculum.
- Binary Search — Assignment 06-searching.md teaches this logarithmic-time algorithm; it's a prerequisite for understanding binary search trees and advanced data structures.
- Sorting Algorithms (Bubble, Merge, Quick) — Assignment 07-sorting.md covers multiple sorting approaches; understanding their time/space trade-offs is essential for optimizing data processing in real interviews.
- Bitwise Operations — Assignment 11-bitwise.md isolates this topic; bitwise manipulation is crucial for optimizing space-constrained problems and is a common interview trick.
- Tree Traversal (Inorder, Preorder, Postorder, Level-order) — Assignment 17-trees.md requires mastery of multiple traversal patterns; each has unique applications in interviews (expression parsing, serialization, path-finding).
- Heap & Heap Sort (Min-heap, Max-heap, Priority Queue) — Assignment 18-heaps.md covers this critical data structure; heaps enable efficient k-largest/smallest problems and are the basis for Dijkstra's algorithm.
🔗Related repos
TheAlgorithms/Java— Comprehensive algorithm implementations in Java covering similar DSA topics, useful as a reference library complementary to this bootcamp's teaching approach.williamfiset/Algorithms— High-quality algorithm and data structure explanations with Java implementations, overlaps with DSA-Bootcamp-Java's scope but with more advanced visualizations and proofs.mission-peace/interview— Interview preparation resource with coding problems and solutions in Java, directly aligned with this bootcamp's goal of preparing students for technical interviews.donnemartin/system-design-primer— Natural progression after DSA fundamentals for bootcamp graduates preparing for senior-level interviews requiring system design knowledge.kunal-kushwaha/DevOps-Bootcamp— Companion bootcamp from the same author (kunal-kushwaha) covering DevOps fundamentals, relevant for graduates moving into infrastructure and deployment topics.
🪄PR ideas
To work on one of these in Claude Code or Cursor, paste:
Implement the "<title>" PR idea from CLAUDE.md, working through the checklist as the task list.
Create organized code solutions directory with test cases for assignments 01-18
The README mentions 'solutions can be found on LeetCode' but there are no solutions or test files in the assignments/ directory itself. New contributors could create a solutions/ folder mirroring assignments/ structure (01-flow-of-program/, 02-first-java/, etc.) with working Java code and JUnit test files. This gives learners reference implementations and allows automated testing via CI. Currently only PDFs and assignment descriptions exist in lectures/, but no verified code solutions are tracked in the repo.
- [ ] Create solutions/ directory structure mirroring assignments/ folder names
- [ ] Add Java solution files for assignments/01-flow-of-program.md through assignments/18-heaps.md
- [ ] Create JUnit 4/5 test files (e.g., solutions/01-flow-of-program/FlowOfProgramTest.java) with test cases for each assignment
- [ ] Add a solutions/README.md documenting how to run tests and compile code
- [ ] Update root README.md to reference the new solutions/ directory
Consolidate and organize lecture code files from scattered project folders into src/ structure
Lecture code is fragmented across multiple .idea/ project folders (lectures/05-first-java-program/first-idea-program, lectures/06-conditions-loops/code) with duplicate IDE configuration files (.idea/, .iml files). This wastes space and confuses learners about the canonical source. A contributor could consolidate all .java files from these scattered lecture projects into a clean src/lectures/ directory with Maven/Gradle structure, then remove the redundant IDE folders and .idea files via .gitignore improvements.
- [ ] Create src/lectures/ directory with subdirectories: 01-git, 02-intro, 03-flow, 04-java, 05-first-program, 06-conditions-loops, etc.
- [ ] Extract and move all .java files from lectures/05-first-java-program/first-idea-program/src/com/kunal/*.java to src/lectures/05-first-program/
- [ ] Extract and move code from lectures/06-conditions-loops/code/ to src/lectures/06-conditions-loops/
- [ ] Update .gitignore to exclude .idea/, *.iml, and IDE config files from all lecture directories
- [ ] Remove empty .idea/ folders and IDE project files that were moved
- [ ] Update SYLLABUS.md or create lectures/README.md with paths to canonical code locations
Add GitHub Actions CI workflow to compile and verify all Java code samples
There is no CI/build verification in the repo. With 18 assignments and code scattered across lectures/, any breaking changes (Java version incompatibilities, syntax errors in examples) go undetected. A contributor could add a GitHub Actions workflow (.github/workflows/java-ci.yml) that compiles all .java files in src/lectures/ and solutions/, and optionally runs JUnit tests. This ensures code examples remain working and builds confidence for learners.
- [ ] Create .github/workflows/java-ci.yml with jobs to: set up Java 11+, compile all src/lectures/ .java files, compile all solutions/ code
- [ ] Add JUnit test execution step (if solutions have tests from PR #1)
- [ ] Configure workflow to trigger on push/PR to main and when .java files change
- [ ] Add a badge to README.md showing CI status
- [ ] Document build instructions in a CONTRIBUTING.md file referencing the CI workflow
🌿Good first issues
- Add unit tests for com.kunal.Prime.java using JUnit to validate isPrime() logic and edge cases (negative numbers, zero, one, large primes)—no test suite exists in the repo despite 18 modules of code examples.
- Document the LeetCode problem mappings in assignments/NN-*.md files with direct links to corresponding problems (README mentions solutions are on LeetCode but individual assignment files don't link to specific problems, making navigation harder for students).
- Create a Makefile or build.sh script to compile and run all example programs in lectures/05-first-java-program/src/com/kunal/ in sequence, reducing friction for learners who want to test all examples without manual compilation commands.
⭐Top contributors
Click to expand
Top contributors
- @kunal-kushwaha — 76 commits
- @SurajPratap10 — 10 commits
- @alokVerma749 — 5 commits
- @siddhant-khisty — 2 commits
- [@Kunal Kushwaha](https://github.com/Kunal Kushwaha) — 1 commits
📝Recent commits
Click to expand
Recent commits
6bc4d8b— Update README.md (kunal-kushwaha)325361d— tree questions notes 3 (kunal-kushwaha)ffbe275— tree questions (kunal-kushwaha)c63b4b0— advance tree questions notes (kunal-kushwaha)da82520— advance tree questions (kunal-kushwaha)c2d7709— notes (kunal-kushwaha)7d353ea— advance tree questions (kunal-kushwaha)d623a5e— sqrt decomposition (kunal-kushwaha)3bb7a49— Update SYLLABUS.md (kunal-kushwaha)d150c48— Huffman Coding (kunal-kushwaha)
🔒Security observations
This is an educational DSA bootcamp repository with minimal security concerns. No critical vulnerabilities were identified. The codebase is primarily composed of educational Java code samples without external dependencies, database connections, or web framework components that typically introduce security risks. Minor issues include IDE configuration files being tracked in version control. The lack of input validation in example code is acceptable for educational purposes but should be supplemented with security guidance. The project maintains good security hygiene overall for its intended purpose as a learning resource.
- Low · IDE Configuration Files Included in Repository —
lectures/05-first-java-program/first-idea-program/.idea/*, lectures/06-conditions-loops/code/.idea/*. The repository contains IntelliJ IDEA configuration files (.idea directory) which may contain sensitive information such as local paths, JDK versions, and project-specific settings that could be used for reconnaissance. Fix: Add .idea/ directory to .gitignore to prevent IDE configuration files from being committed to version control. - Low · Missing Input Validation in Educational Code —
lectures/05-first-java-program/first-idea-program/src/com/kunal/Inputs.java, lectures/06-conditions-loops/code/src/com/kunal/Calculator.java. The codebase contains educational examples (e.g., Inputs.java, Calculator.java) that may not implement proper input validation, which while acceptable for learning purposes, could demonstrate insecure patterns to students. Fix: Add comments or supplementary documentation explaining the importance of input validation in production code, even in educational examples. - Low · No Dependency Management File —
Root directory. The repository lacks a build configuration file (pom.xml, build.gradle, or similar) making it impossible to verify if any external dependencies contain known vulnerabilities. Fix: If this project uses external dependencies in production, implement a proper build tool configuration (Maven/Gradle) and use dependency checking tools like OWASP Dependency-Check.
LLM-derived; treat as a starting point, not a security audit.
👉Where to read next
- Open issues — current backlog
- Recent PRs — what's actively shipping
- Source on GitHub
Generated by RepoPilot. Verdict based on maintenance signals — see the live page for receipts. Re-run on a new commit to refresh.