The coding playground
The playground is a set of timed, story-wrapped coding challenges, separate from the main curriculum, for sharpening what you have learned. Each room hands you a scenario, a starter, and hidden checks; solve it against the clock and earn your score.
740 rooms across five difficulty tiers, in every one of the 37 disciplines, all free with an account and graded automatically in your browser.
Aerospace Numerical Computing with Fortran
20 rooms across 5 tiers, all free with an account.
- Residual Norm Without NORM2: Numerical engineer checking a residual vector.
- Sutherland Air Viscosity Model: Engineer applying an empirical air-viscosity fit.
- Altitude Unit Conversion: Engineer checking units at an input boundary.
- Endpoint-Inclusive Span Stations: Mesh engineer constructing a uniform station array.
Audio & DSP
20 rooms across 5 tiers, all free with an account.
- Kill the DC: A cheap mic added a DC offset that wastes headroom. Subtract the mean so the waveform swings symmetrically around zero.
- Level It Out: The take is too hot in places. Peak-normalize the signal so its loudest sample sits at full scale before it hits the converter.
- Read the Meter: The loudness meter needs a number. Compute the RMS level of the buffer, the effective loudness the ear responds to.
- Tune the Oscillator: First sound of the day: generate a clean sine at the requested frequency so the rest of the patch has something to work with.
Backend Java
20 rooms across 5 tiers, all free with an account.
- Decode the Query: A search box sends `hello+world` and `%20` for spaces. Decode an encoded value so the search actually finds what the user typed.
- Name the Status: Browsers show reason phrases, not bare numbers. Map a status code to its category so the monitoring page can color 4xx red and 5xx black.
- Read the Verb: The new gateway logs every request's method. Pull the verb off the front of a raw request line so the dashboard can count GETs and POSTs.
- Split the Media Type: A Content-Type can carry parameters like `text/html; charset=utf-8`. Strip them off to get the bare media type the router branches on.
Bioinformatics with Python
20 rooms across 5 tiers, all free with an account.
- Complement Strand: Sequence analyst practicing strand orientation on synthetic DNA.
- Count the Codons: Sequence analyst counting complete frame-zero triplets in a teaching fragment.
- FASTA Line Reader: Pipeline engineer loading multi-record FASTA before analysis.
- GC Patrol: QC analyst summarizing composition before investigating unusual data.
Climate Modeling
20 rooms across 5 tiers, all free with an account.
- Balance the Books: The outreach exhibit needs the planet's energy ledger on one screen. Compute the absorbed sunlight per square meter from the solar constant…
- Count the Doublings: Express a supplied positive concentration as doublings relative to its stated baseline using log2(C/C0).
- The CO2 Forcing: A policy briefing needs the radiative forcing from a CO2 level. Apply the standard logarithmic formula relating concentration to the energy…
- The Famous 255: Compute an effective radiating temperature from supplied sunlight and planetary albedo. This is not a calculation of removing the atmospher…
Compilers & Interpreters
20 rooms across 5 tiers, all free with an account.
- Classify the Character: Every scanner begins by asking what it is looking at. Decide whether a single character is a digit, the first question the lexer asks of ev…
- Name the Operator: The parser branches on token TYPES, not raw characters. Map a punctuation character to its operator name, the lexer's little dictionary.
- Scan the Line: Put the scanner together: turn a line of source into a list of tokens, skipping the spaces that carry no meaning. The front door of every i…
- Spot the Keyword: Names and reserved words look identical until the word is complete. Decide whether a finished word is one of the language's keywords.
Computational Biology with R
20 rooms across 5 tiers, all free with an account.
- Count the Usable Bases: A field sequencer exported gaps and unknowns. Count only canonical DNA bases before the team compares samples.
- Find Every Motif: A curator needs every overlapping occurrence of a short motif, including repeats that share residues.
- Read the Coding Frame: A gene model needs the number of complete codons in a sequence. Return complete triplets and leave trailing bases unclaimed.
- Summarize Library Depth: A sequencing run has one count column per sample. Return the named library totals without losing sample identity.
Computational Chemistry with MATLAB
20 rooms across 5 tiers, all free with an account.
- Keep Feasible Candidates: A descriptor must fall between its lower and upper bound. Return the inclusive pass mask.
- Normalize State Populations: Raw state weights need to become probabilities that sum to one.
- Screen a Charge Pair: A dielectric medium weakens a point-charge interaction. Return q1*q2/(epsilon*r).
- Feel the Thermal Scale: A lab needs kBT at a new temperature before comparing molecular energies.
Computational Chemistry with Python
20 rooms across 5 tiers, all free with an account.
- Ideal Gas Check: Safety officer verifying expected moles in a pressurized nitrogen cylinder.
- Reagent Limiting Step: Reactor operator determining limiting reagent before the batch starts.
- Molar Mass Rescue: QC chemist confirming identity of an unlabeled precipitate before the morning shift.
- Percent Yield Audit: Batch chemist running a spot audit before the supervisor arrives.
Computational Neuroscience with Python
20 rooms across 5 tiers, all free with an account.
- The Driving Force: Electrophysiologist computing how hard an ion is pushed across the membrane.
- Hold the Line: Electrophysiologist predicting where a current clamp will hold the voltage.
- The Membrane Clock: New student timing how fast a cell responds to a current step.
- Stored Charge: Lab tech checking how much charge a patch of membrane holds.
Computational Physics with Python
20 rooms across 5 tiers, all free with an account.
- Expectation Value: Physicist computing observable before idle-timeout fires.
- Ising Energy 1D: Statistical physicist seeding a Monte Carlo sweep before cluster reservation ends.
- Logistic Map Orbit: Chaos-theory researcher populating a bifurcation plot.
- Qubit Normalization: Postdoc verifying qubit state before beam-time upload.
Concurrency in Java
20 rooms across 5 tiers, all free with an account.
- Lock It Down: Eight threads, one counter, one exact total. Guard the increment with synchronized and the number lands right every time.
- On a Thread: Your first task at the lab: run a computation on a second thread and bring the answer back. Start it, join it, read the box.
- Split and Sum: The dataset is large. Split it across threads, sum each slice, and combine, the shape of every parallel job.
- Watch the Race: Before you fix a race you must see one. Simulate the read-modify-write steps and watch an update vanish.
Data Engineering
20 rooms across 5 tiers, all free with an account.
- Drop the Dupes: A retry replayed the same records into the load. Remove exact duplicates, keeping the first of each.
- Log Line Split: The ingestion job choked on a raw log dump. Split it into clean, non-blank lines before anything else runs.
- Parse the Params: A tracking pixel encodes its payload as k=v&k=v. Parse the query string into a dict, where a repeated key takes its last value.
- Tally Events: The dashboard needs a count of each event type from today's batch. Group and count by the event column.
Data Science with Python
20 rooms across 5 tiers, all free with an account.
- Label Encoder: ML engineer unblocking a pipeline crash before the afternoon batch.
- Mean or Median?: Data analyst with 3 minutes before a stakeholder call.
- Null Sweep: Data engineer racing a 9 a.m. stand-up after a broken ETL run.
- Z-Score Flag: Data quality engineer running a pre-batch sanity check.
Data Structures & Algorithms
20 rooms across 5 tiers, all free with an account.
- Contains Duplicate: Before the fancy stuff: can you spot a repeat in one pass? Return whether any value appears more than once.
- Maximum Subarray: A trader wants the best contiguous run of daily gains and losses. Return the largest sum any contiguous slice produces (Kadane's algorithm).
- The Single Number: Every value appears twice except one. Find the loner in linear time and constant space, the famous XOR trick.
- Two Sum: The classic warm-up every interview opens with: find the two numbers that add up to the target and return their indices.
Data Structures & Algorithms in C++
20 rooms across 5 tiers, all free with an account.
- Even-Channel Filter: The diagnostics board only counts channels with even IDs. Tally them.
- Peak Reading: A sensor array reports the hottest cell. Find the maximum reading.
- Telemetry Total: Mission control needs the total packet count before the downlink window closes.
- Valley Floor: An altimeter logged the descent. Report the lowest reading in the buffer.
Deep Learning with Python
20 rooms across 5 tiers, all free with an account.
- ReLU Activation Audit: ML engineer inspecting which supplied activations are zero and which are positive.
- Loss Alert: On-call ML engineer: the training monitor reports 'loss = inf'.
- Softmax Meltdown: On-call ML engineer: the recommendation model is returning NaN probabilities.
- Weight Initialization Review: ML engineer replacing an all-zero initializer before training a classifier.
Electrical Engineering with MATLAB
20 rooms across 5 tiers, all free with an account.
- Measure nodal residual: Return absolute current injection minus conductance-current sum.
- Calculate resistor current: Return voltage divided by positive resistance.
- Calculate series quality factor: Return two pi resonant frequency L divided by R.
- Find the RC time constant: Return resistance times capacitance.
Embedded C: Firmware from Scratch
20 rooms across 5 tiers, all free with an account.
- Bit Flip on the Factory Floor: Firmware engineer racing an OTA lockout window.
- Field Extract: Firmware engineer unblocking a motor-driver diagnostic tool.
- Silent GPIO: Firmware engineer fixing a smart-lock LED before the shift change.
- Watchdog Countdown: Firmware engineer stopping a reboot loop in the field.
Game Development with C#
20 rooms across 5 tiers, all free with an account.
- Advance the Cel: A sprite sheet has to choose a stable animation frame from elapsed time.
- Bank the Combo: The score pop-up needs one authoritative number for hits, misses, and rising combos.
- Bounce the Ball: A contact normal has arrived from collision detection. Reflect the incoming velocity cleanly.
- Catch the Paddle: The paddle must obey velocity and frame time without ever leaving the playfield.
Geospatial & Geophysics
20 rooms across 5 tiers, all free with an account.
- Box the Survey: A dataset extent can serve as a quick candidate filter before a more detailed spatial query. The coordinate representation determines what…
- Clean the Fixes: A batch can contain records outside the expected signed-degree convention. Filtering selects those meeting that convention without assertin…
- To Radians: Python's trigonometric functions take radians. Geographic coordinates here use degrees, while projected map coordinates may use metres or o…
- Wrap the Meridian: Longitudes separated by a whole turn identify the same meridian. A common representation avoids two names for that meridian, including choo…
GPU Computing and Graphics with Python
20 rooms across 5 tiers, all free with an account.
- CPU Vectorized Scale: Scale pixel samples before a brightness comparison.
- Reduce Sum: Sum supplied per-invocation work durations.
- Thread Index Map: Calculate the index that a one-dimensional CUDA launch would assign.
- Vec3 Dot Product: A diffuse-lighting calculation needs a scalar dot product between two three-component vectors..
High-Performance Computing in Julia
20 rooms across 5 tiers, all free with an account.
- Down the Columns: A column can hold repeated observations of one variable. Summing each column produces one total per variable while naturally walking dense…
- Fold It Up: A simple reduce interface can reuse the earlier left fold. Later grouping changes require algebraic conditions that a sequential reference…
- The Stable Sum: A sum accumulator should have a useful type before the first observation, including when no observations exist. This extends the foundation…
- The Running Total: A scan retains every partial reduction rather than only the final total. Prefix sums can turn per-job costs into cumulative work.
Machine Design with Python
20 rooms across 5 tiers, all free with an account.
- Beam Midpoint Sag: Estimate the elastic midpoint deflection of a simply supported conveyor beam under a central point load.
- Bolt Under Pressure: Calculate nominal von Mises stress for the supplied axial and shear stress components.
- Gear Ratio Quick Check: Check the speed ratio implied by a proposed gear-pair tooth count.
- Spring Rate Tag: Estimate a replacement spring’s elastic rate from its supplied geometry and modulus.
Machine Learning in R
20 rooms across 5 tiers, all free with an account.
- Code the Categories: For non-missing character x, return integer positions in sort(unique(x)), preserving observation order. Empty x gives integer(0). This is l…
- Fill the Holes: For numeric x with at least one finite observation and optional NA/NaN gaps, replace only the gaps with the observed mean. Preserve length,…
- Hold Out the Test: For nonnegative integer n, return floor(n*0.2). The test fraction is fixed at twenty percent. Return a count only; this function does not s…
- Level the Features: For finite x with at least two observations and positive sample sd, return (x-mean(x))/sd(x) in input order. Fit on training data; no const…
Natural Language Processing
20 rooms across 5 tiers, all free with an account.
- Measure the Mix: Type-token ratio compares distinct spellings with all occurrences. It is useful as a descriptive statistic when samples use comparable leng…
- Name Every Word: A vocabulary defines which token types a vector model can represent. Build it on training text and save it with the model.
- Split the Stream: A consistent cleaner lets training and query text use the same token policy. Here that policy combines splitting, lowercasing and filtering…
- Two at a Time: Adjacent token pairs capture local order that a vocabulary alone cannot. A bigram model later uses one prior token to predict the next.
Object-Oriented Java
20 rooms across 5 tiers, all free with an account.
- Clean the Input: Parse s with Integer.parseInt. Return fallback if parsing throws NumberFormatException, including null, whitespace-surrounded text and valu…
- Score the Password: Return one point for UTF-16 length at least 8, one if any char satisfies Character.isDigit, and one if any char satisfies Character.isUpper…
- Shrink the Fraction: Return the greatest common divisor of nonnegative int inputs with Euclid's remainder algorithm. gcd(a, 0) is a; define gcd(0, 0) as 0. The…
- Steps to One: For a positive starting long, repeatedly halve an even value or replace an odd value with 3*n+1 until reaching 1. Return the number of step…
Operating Systems
20 rooms across 5 tiers, all free with an account.
- Count the CPUs: A CPU-availability mask stores many yes/no flags in one integer; population count measures how many are set.
- Count the Forks: Starting from one process, n complete duplication rounds produce 2 to the power n processes.
- Name the State: Map the five model states to distinct characters and use ? for an unknown value.
- The Turnaround Desk: Waiting = completion - arrival - CPU burst, for this no-I/O model.
Programming for Aerospace Engineers
20 rooms across 5 tiers, all free with an account.
- Burnout Velocity: Propulsion engineer sanity-checking a staging analysis before CDR slides go out.
- Density at Altitude: Avionics technician validating altimeter calibration before fueling begins.
- Orbital Sunrise Check: Flight dynamics engineer verifying a CubeSat orbit before the next status call.
- Signal RMS: Ground station operator quantifying telemetry noise before flagging anomalies.
Programming for Hackers
20 rooms across 5 tiers, all free with an account.
- Caesar Intercept: Decoding a C2 beacon string before it rotates.
- Checksum Gate: Fingerprinting firmware before the update daemon times out.
- Hex Dump Rescue: Recovering a clobbered config value before the next deploy.
- Signal Noise: Security engineer triaging a live phishing report.
Programming from Scratch
20 rooms across 5 tiers, all free with an account.
- The Bouncer: A doorway scanner has to decide who gets in.
- Name Tag: A badge printer needs initials from full names.
- Step Counter: A fitness band needs to tally the days a goal was hit.
- Vending Machine: The machine owes a customer change and the relay is stuck.
Quantitative Finance with Python
20 rooms across 5 tiers, all free with an account.
- Coupon Yield Snapshot: Price fixed annual bond payments at a coupon date.
- Opening Bell Returns: Compare simple and log returns for adjacent prices.
- Time-Value Quick Check: Discount one future payment with consistent rate and time units.
- Variance at the Desk: Calculate mean and population return variability.
Robotics with C++
20 rooms across 5 tiers, all free with an account.
- Battery Guard: Practice defining a battery threshold and an explicit stopped-command exception.
- Heading Normalizer: Convert a multi-turn heading measurement into a single-turn angle.
- Robot Identity Card: Represent one robot and format a readable identity string.
- Wheel Speed Decoder: Convert encoder counts sampled over a fixed interval into wheel speed.
Scientific Computing in Julia
20 rooms across 5 tiers, all free with an account.
- Peak Reading: A sensor array overheated for an instant. Report the single highest reading it captured.
- Signal Average: The detector logged a burst of readings. The control room needs their average before the next sweep.
- Signal RMS: An audio meter can report signal level using the root-mean-square of its samples. Compute the RMS; perceived loudness also depends on frequ…
- Total Flux: Sum signed, already integrated contributions in compatible units. Raw flux densities would need area or time weights before this total.
SQL for Data Analysts
20 rooms across 5 tiers, all free with an account.
- First Query on Deck: Data analyst answering the VP of Sales before a call.
- Product Catalog Snapshot: Data analyst pulling a pricing snapshot for a design slide.
- Region Filter: Data analyst extracting EMEA orders before a standup.
- Signup Surge Check: Data analyst counting daily signups before the all-hands.
Statistical Computing in R
20 rooms across 5 tiers, all free with an account.
- Clean the Readings: A missing reading is not zero; missingness mechanisms may still affect the resulting estimate.
- Count the Passes: A score exactly sixty passes; negative or lower scores do not.
- Keep the Gains: Break-even days are not gains and must be excluded.
- Tally the Ballots: Count before choosing a winner, and make tie handling explicit.
Systems Programming in Rust
20 rooms across 5 tiers, all free with an account.
- The Classic Chant: The interview warm-up that never dies. Return Fizz, Buzz, FizzBuzz, or the number, with match-free if/else.
- Your First Borrow: Borrow a slice, do not own it. Sum its elements and hand the answer back; the caller keeps the data.
- Leap of Faith: Calendars hide a tidy rule. Decide whether a year is a leap year: divisible by 4, not 100, unless also by 400.
- Warm the Core: Every Rust program is a set of typed functions. Double a number and return it, the smallest possible expression.