algorithms-education
— for Claude Code algorithms-education, Algorithms, community, for Claude Code, ide skills, algorithm implementation, data structure optimization, graph theory application, dynamic programming techniques, linear algebra manipulation, Claude Code
The algorithms-education skill enhances coding efficiency by providing clear, well-tested implementations of algorithms and data structures, benefiting developers and learners alike.
기능
Implementing Dijkstra's algorithm using adjacency matrices
Optimizing code with dynamic programming techniques
Utilizing graph theory for efficient data structure management
Applying linear algebra for matrix multiplication and manipulation
Decision support comes first. Repository text comes second.
Reference-Only Page Review Score: 2/11
This page remains useful for operators, but Killer-Skills treats it as reference material instead of a primary organic landing page.
Review Score
2/11
Quality Score
46
Canonical Locale
en
Detected Body Locale
en
The algorithms-education skill enhances coding efficiency by providing clear, well-tested implementations of algorithms and data structures, benefiting developers and learners alike.
이 스킬을 사용하는 이유
The algorithms-education skill enhances coding efficiency by providing clear, well-tested implementations of algorithms and data structures, benefiting developers and learners alike.
최적의 용도
Suitable for operator workflows that need explicit guardrails before installation and execution.
↓ 실행 가능한 사용 사례 for algorithms-education
! 보안 및 제한 사항
Why this page is reference-only
- Current locale does not satisfy the locale-governance contract.
- The page lacks a strong recommendation layer.
- The page lacks concrete use-case guidance.
- The page lacks explicit limitations or caution signals.
- The underlying skill quality score is below the review floor.
Source Boundary
The section below is supporting source material from the upstream repository. Use the Killer-Skills review above as the primary decision layer.
Labs Demo
Browser Sandbox Environment
⚡️ Ready to unleash?
Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.
These questions and steps mirror the structured data on this page for better search understanding.
? Frequently Asked Questions
What is algorithms-education?
The algorithms-education skill enhances coding efficiency by providing clear, well-tested implementations of algorithms and data structures, benefiting developers and learners alike.
How do I install algorithms-education?
Run the command: npx killer-skills add williamfiset/Algorithms/algorithms-education. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.
Which IDEs are compatible with algorithms-education?
This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.
↓ How To Install
1. Open your terminal
Open the terminal or command line in your project directory.
2. Run the install command
Run: npx killer-skills add williamfiset/Algorithms/algorithms-education. The CLI will automatically detect your IDE or AI agent and configure the skill.
3. Start using the skill
The skill is now active. Your AI agent can use algorithms-education immediately in the current project.
!
Reference-Only Mode
This page remains useful for installation and reference, but Killer-Skills no longer treats it as a primary indexable landing page. Read the review above before relying on the upstream repository instructions.
Imported Repository Instructions
The section below is supporting source material from the upstream repository. Use the Killer-Skills review above as the primary decision layer.
Supporting Evidence
algorithms-education
Unlock efficient coding with algorithms-education AI agent skill, designed for developers to optimize code and master data structures, graph theory, and more.
SKILL.md
Readonly
Imported Repository Instructions
The section below is supporting source material from the upstream repository. Use the Killer-Skills review above as the primary decision layer.
Supporting Evidence
Algorithms Education Skills
This skill defines the conventions and standards for an educational algorithms
repository. The goal is to make every algorithm implementation clear, well-tested,
and accessible to learners who may not have deep CS backgrounds.
Skill 1: Code Documentation
Goal: Every file should teach, not just implement.
Method-Level Documentation
Every public method gets a doc comment that explains:
What the method does (in plain English, one sentence)
How it works (brief description of the approach/algorithm)
Parameters — what each input represents
Returns — what the output means
Time/Space complexity — always include Big-O
java
1/**
2 * Finds the shortest path from a source node to all other nodes
3 * using Bellman-Ford's algorithm. Unlike Dijkstra's, this handles
4 * negative edge weights and detects negative cycles.
5 *
6 * @param graph - adjacency list where graph[i] lists edges from node i
7 * @param start - the source node index
8 * @param n - total number of nodes in the graph
9 * @return dist array where dist[i] = shortest distance from start to i,
10 * or Double.NEGATIVE_INFINITY if node i is in a negative cycle
11 *
12 * Time: O(V * E) — relaxes all edges V-1 times
13 * Space: O(V) — stores distance array
14 */
Inline Comments on Key Lines
Comment the why, not the what. Focus on lines where the logic isn't obvious:
java
1// Relax all edges V-1 times. After V-1 passes, shortest paths
2// are guaranteed if no negative cycles exist.
3for (int i = 0; i < n - 1; i++) {
4 for (Edge e : edges) {
5 if (dist[e.from] + e.cost < dist[e.to]) {
6 dist[e.to] = dist[e.from] + e.cost;
7 }
8 }
9}
1011// If we can still relax an edge after V-1 passes, that node
12// is reachable from a negative cycle — mark it as -infinity.
13for (int i = 0; i < n - 1; i++) {
14 for (Edge e : edges) {
15 if (dist[e.from] + e.cost < dist[e.to]) {
16 dist[e.to] = Double.NEGATIVE_INFINITY;
17 }
18 }
19}
File-Level Header
Every file starts with a comment block explaining the algorithm in the file
Each test method gets a brief comment explaining what scenario it covers and
why that scenario matters:
java
1/**
2 * Graph with a negative cycle reachable from the source.
3 * Bellman-Ford should mark affected nodes as NEGATIVE_INFINITY.
4 *
5 * 0 --5--> 1 --(-10)--> 2 --3--> 1
6 * (creates cycle 1→2→1 with net cost -7)
7 */
8@Test
9public void testDetectsNegativeCycle() {
10 // ... test body
11}
When Modifying Code, Update Tests
Every code change must be accompanied by:
Running existing tests to check for regressions
Adding new tests if new behavior is introduced
Updating existing tests if method signatures or behavior changed
Removing tests only if the feature they cover was deliberately removed
Skill 3: Refactoring and Code Debt
Goal: Keep the codebase clean without losing educational value.
When to Remove Code
Remove code that is:
Exact duplicates of another implementation with no added educational value
Dead code (unreachable, unused helper methods)
Commented-out blocks with no explanation of why they exist
Temporary debug/print statements
When to Keep "Duplicate" Code
Keep alternative implementations when they teach different approaches:
java
1// ✓ KEEP — BFS and DFS solutions to the same problem teach different techniques
2public int[] bfsSolve(int[][] grid) { ... }
3public int[] dfsSolve(int[][] grid) { ... }
45// ✓ KEEP — iterative vs recursive shows tradeoffs
6public int fibRecursive(int n) { ... }
7public int fibIterative(int n) { ... }
89// ✗ REMOVE — identical logic, just different variable names
10public int search_v1(int[] arr, int target) { ... }
11public int search_v2(int[] arr, int target) { ... }
When keeping alternatives, clearly label them with a comment explaining the
educational purpose:
java
1/**
2 * Recursive implementation of binary search.
3 * Compare with binarySearchIterative() to see the iterative approach.
4 * The iterative version avoids stack overhead for large arrays.
5 */
Debt Checklist
When refactoring, scan for:
Unused imports
Unused variables or parameters
Methods that can be combined or simplified
Magic numbers that should be named constants
Inconsistent naming within the same file
Copy-pasted blocks that should be extracted into a helper
Skill 4: Code Formatting and Consistency
Goal: Uniform style across the entire repository.
Naming Conventions
Use short, clear variable names. Prefer readability through simplicity:
java
1// ✓ GOOD — short and clear
2int n = graph.length;
3int[] dist = new int[n];
4boolean[] vis = new boolean[n];
5List<int[]> adj = new ArrayList<>();
6Queue<Integer> q = new LinkedList<>();
7int src = 0;
8int dst = n - 1;
910// ✗ BAD — verbose names that clutter algorithm logic
11int numberOfNodesInGraph = graph.length;
12int[] shortestDistanceFromSource = new int[numberOfNodesInGraph];
13boolean[] hasNodeBeenVisited = new boolean[numberOfNodesInGraph];
14List<int[]> adjacencyListRepresentation = new ArrayList<>();
15Queue<Integer> breadthFirstSearchQueue = new LinkedList<>();
16int sourceNodeIndex = 0;
17int destinationNodeIndex = numberOfNodesInGraph - 1;
Common short names (use consistently across the repo):
Name
Meaning
n
number of elements/nodes
m
number of edges
i, j
loop indices
from, to
graph node endpoints
cost
edge weight
dist
distance array
vis
visited array
adj
adjacency list
q
queue
pq
priority queue
st
stack
dp
dynamic programming table
ans
result/answer
lo
low pointer/bound
hi
high pointer/bound
mid
midpoint
src
source node
dst
destination node
cnt
counter
sz
size
cur
current element
prev
previous element
next
next element (use nxt if shadowing keyword)
Formatting Rules
Braces: opening brace on the same line (if (...) {)
Indentation: 2 spaces (no tabs)
Blank lines: one blank line between methods, none inside short methods
Max line length: 100 characters (soft limit)
Imports: group by package, alphabetize within groups, no wildcard imports
Big-O Notation Convention
Always use explicit multiplication and parentheses in Big-O expressions for clarity:
java
1// ✓ GOOD — explicit and unambiguous
2// Time: O(n*log(n))
3// Time: O(n*log^2(n))
4// Time: O(n^2*log(n))
56// ✗ BAD — missing multiplication and parentheses
7// Time: O(n log n)
8// Time: O(n log^2 n)
9// Time: O(n^2 log n)
1011// Simple expressions without multiplication are fine as-is
12// Time: O(n)
13// Time: O(n^2)
14// Time: O(log(n))
15// Space: O(n)
For Loop Body on Its Own Line
Always place the body of a for loop on its own line, even for single statements.
This improves readability, especially in nested loops:
java
1// ✗ BAD — body on same line as for
2for (int j = 0; j < n; j++) augmented[i][j] = matrix[i][j];
34// ✓ GOOD — body on its own line
5for (int j = 0; j < n; j++)
6 augmented[i][j] = matrix[i][j];
78// ✓ GOOD — nested for loops, each level on its own line
9for (int i = 0; i < n; i++)
10 for (int j = 0; j < n; j++)
11 for (int k = 0; k < n; k++)
12 result[i][j] += m1[i][k] * m2[k][j];
Avoid Java Streams
Streams hurt readability for learners. Use plain loops instead:
java
1// ✗ AVOID — streams obscure the logic for beginners
2int sum = Arrays.stream(arr).filter(x -> x > 0).reduce(0, Integer::sum);
34// ✓ PREFER — a loop is immediately readable
5int sum = 0;
6for (int x : arr) {
7 if (x > 0) sum += x;
8}
Integer overflow — multiplication or addition that could exceed int range
Null/empty checks — missing guards for null arrays, empty collections
Uninitialized values — using variables before assignment (especially in dp arrays)
Wrong comparison — == vs <=, < vs <= in loop conditions
Infinite loops — conditions that never become false, missing increments
Array out of bounds — indexing with i+1, i-1 without range checks
Graph issues — missing visited check (infinite loop in cycles), wrong direction in directed graph
Incorrect base cases — dp[0], recursion base case, empty graph
Mutation bugs — modifying input that caller expects unchanged
Copy vs reference — shallow copy when deep copy needed
Return value misuse — ignoring return value, returning wrong variable
How to Report Bugs
When a bug is found, report it clearly:
🐛 BUG FOUND in BellmanFord.java line 42:
Loop runs `i < n` but should be `i < n - 1`.
The extra iteration incorrectly marks reachable nodes as
being in a negative cycle.
FIX: Change `i < n` to `i < n - 1`
Skill 7: Algorithm Explanation Comments
Goal: Help learners understand the why behind each algorithm.
Skill 8: Place main method at the bottom
Goal: The main java method should be near the bottom of the Java file for consistency throughout the project
관련 스킬
Looking for an alternative to algorithms-education or another community skill for your workflow? Explore these related open-source skills.