Algorithmic Fluency Workbench

Interactive pattern practice for kinesthetic understanding

Status Active
Stack ClojureScript · Scittle · Reagent
Related Fold/Unfold — permanence gradient for workbench states

Core Thesis

Algorithmic fluency is not knowledge about algorithms—it's the capacity to think with and through computational structures. Like language fluency, it's embodied, intuitive, and developed through practice.

Most programming education focuses on syntax and semantics. The Workbench focuses on kinesthetic understanding—the feel of recursion, the shape of a fold, the rhythm of map-filter-reduce.

The "hyperstitious" framing: ideas that make themselves real through belief and enactment. By practicing algorithmic thinking in a responsive environment, the patterns become part of how you perceive problems.


The Fluency Model

Algorithmic fluency develops through four interlocking capacities:

Pattern Recognition

Seeing the structure beneath the surface. Recognizing that "sum a list" and "concatenate strings" and "find maximum" are all folds.

Practice: Given a problem, identify which core pattern applies before writing any code.

Decomposition

Breaking complex problems into composable pieces. Finding the seams where a system naturally separates.

Practice: Given a monolithic function, identify the smallest meaningful units.

Abstraction

Recognizing what varies and what stays the same. Parameterizing the variable parts. Building general from specific.

Practice: Given three similar functions, extract the common pattern as a higher-order function.

Composition

Combining small pieces into larger wholes. Understanding how data flows through pipelines. Threading transformations.

Practice: Given a set of small functions, compose them to solve a complex problem without writing new logic.


Workbench Modes

Four modes of engagement, each supporting different aspects of fluency development:

Explore Ephemeral → Volatile

Free-form REPL interaction with guided prompts. No goals, no grades—just responsive feedback.

Live evaluation Auto-visualization Gentle suggestions

Persistence: Ephemeral by default. Flick up to preserve interesting expressions to Volatile.

Practice Session → Local

Structured exercises with verification. Progressive difficulty. Spaced repetition for pattern internalization.

Katas Property tests Time challenges

Persistence: Session tracks current streak. Local stores long-term progress and mastery levels.

Build Local → Distributed

Project scaffolding and incremental construction. Real artifacts that do real things.

Templates Milestones Deployment

Persistence: Local during development. Promote to Distributed when sharing or deploying.

Reflect Archival

Review session history. Pattern recognition across your own work. Insight crystallization.

Session replay Pattern mining Insight capture

Persistence: Insights worth keeping are witnessed at Archival stratum.


Core Patterns Library

The Workbench is organized around a curated set of fundamental patterns. Mastery means these become automatic—you reach for them without conscious thought.

Map
(a → b) → [a] → [b]
Transform each element. Shape preserved, contents changed.
Filter
(a → Bool) → [a] → [a]
Keep elements that pass. Shape shrinks, contents unchanged.
Fold/Reduce
(b → a → b) → b → [a] → b
Accumulate into a single value. Shape collapses.
Unfold
(b → Maybe (a, b)) → b → [a]
Generate from seed. Shape expands from nothing.
Zip
[a] → [b] → [(a, b)]
Pair elements by position. Two shapes merge.
Partition
(a → Bool) → [a] → ([a], [a])
Split by predicate. One shape becomes two.
Group By
(a → k) → [a] → Map k [a]
Collect by key. Flat becomes nested.
Flatten
[[a]] → [a]
Remove nesting. Nested becomes flat.

Live Workbench

Practice algorithmic patterns. Select a challenge, write your solution, verify with tests.

Press Cmd/Ctrl+Enter to run. See all challenges →


The Hyperstition Loop

This workbench enacts its own principles. The scaffold documents the patterns; the workbench teaches them; the projects apply them; the documentation reflects the practice.

1 Document patterns in scaffold
2 Practice patterns in workbench
3 Apply patterns in projects (Umbra, Suttas, Constellation)
4 Reflect on usage, update scaffold