{"clusters":[{"description":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","domain":"math","id":"math.number","sourceIds":["ccss"],"stage":"g6-8","title":"Numbers, ratios and units"},{"description":"One- and two-step symbolic relationships and coordinate representations.","domain":"math","id":"math.algebra-entry","sourceIds":["ccss"],"stage":"g6-8","title":"Expressions, equations and graphs"},{"description":"Plane and solid measurement and transformations that support robot geometry.","domain":"math","id":"math.geometry-school","sourceIds":["ccss"],"stage":"g6-8","title":"Geometry and measurement"},{"description":"Descriptions of small datasets and finite chance experiments.","domain":"math","id":"math.data-school","sourceIds":["ccss"],"stage":"g6-8","title":"Data and chance"},{"description":"Function models, systems, powers and quadratic reasoning.","domain":"math","id":"math.algebra-secondary","sourceIds":["ccss"],"stage":"g9-10","title":"Functions and algebraic structure"},{"description":"Analytic geometry, trigonometric functions, complex numbers and exponential relationships.","domain":"math","id":"math.precalculus","sourceIds":["ccss","calculus"],"stage":"g11-12","title":"Trigonometry and exponential models"},{"description":"Rates, accumulation, local approximation and elementary differential equations.","domain":"math","id":"math.calculus","sourceIds":["calculus"],"stage":"ug-foundation","title":"Calculus of one variable"},{"description":"Finite-dimensional linear models used by geometry, dynamics and estimation.","domain":"math","id":"math.linear-algebra","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Vectors and linear algebra"},{"description":"Local vector models, error-aware calculation and numerical solution methods.","domain":"math","id":"math.multivariable","sourceIds":["multivariable","calculus","linear"],"stage":"ug-advanced","title":"Multivariable calculus and numerical methods"},{"description":"Derive and solve continuous state models, distinct from introductory supplied-formula use.","domain":"math","id":"math.differential-equations","sourceIds":["ode"],"stage":"ug-advanced","title":"Differential equations and state evolution"},{"description":"Probability distributions, uncertainty summaries, estimation and controlled comparisons.","domain":"math","id":"math.probability-university","sourceIds":["probability"],"stage":"ug-foundation","title":"Probability and statistical inference"},{"description":"Analytic and numerical tools for constrained estimation, control and learning.","domain":"math","id":"math.optimization","sourceIds":["convex","linear","probability","modern-robotics"],"stage":"graduate","title":"Optimization and geometric uncertainty"},{"description":"Observe, quantify and compare small physical systems without inferring hidden causes from a single reading.","domain":"physics","id":"physics.measurement","sourceIds":["mechanics","ohm"],"stage":"g6-8","title":"Measurement and physical models"},{"description":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","domain":"physics","id":"elec.dc-entry","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Closed paths, voltage and current"},{"description":"Steady ideal circuits and explicitly supplied RC and sensor formulas.","domain":"physics","id":"elec.circuit-models","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Series, parallel and sensor circuits"},{"description":"Supplied logic thresholds and ideal switching models; actual devices require their own electrical specifications.","domain":"physics","id":"elec.digital-entry","sourceIds":["circuits"],"stage":"g6-8","title":"Logic, thresholds and switching"},{"description":"Algebraic physical models with declared directions and idealizations.","domain":"physics","id":"physics.mechanics-school","sourceIds":["mechanics","waves","thermal"],"stage":"g9-10","title":"Forces, energy and waves"},{"description":"Vector mechanics, rotation, material response, fields and elementary optics.","domain":"physics","id":"physics.preuniversity","sourceIds":["mechanics","fields","waves","thermal"],"stage":"g11-12","title":"Physical modeling before calculus"},{"description":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","domain":"physics","id":"elec.networks","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Circuit analysis and electronic interfaces"},{"description":"Time and frequency representations of signals used by robot sensors and control.","domain":"physics","id":"physics.signals","sourceIds":["signals","waves"],"stage":"ug-advanced","title":"Signals and sampled systems"},{"description":"Differential models of rotation, motion constraints, energy and actuator dynamics.","domain":"physics","id":"physics.dynamics","sourceIds":["mechanics","modern-robotics","waves"],"stage":"ug-advanced","title":"Rigid-body and coupled dynamics"},{"description":"Selected physical modeling tools for manipulation and locomotion research, not exhaustive applied physics coverage.","domain":"physics","id":"physics.contact-research","sourceIds":["modern-robotics","underactuated"],"stage":"graduate","title":"Contact and physical model uncertainty"},{"description":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","domain":"computing","id":"computing.python-entry","sourceIds":["python"],"stage":"g6-8","title":"First Python programs"},{"description":"Small reusable programs with explicit state, data structures and validation.","domain":"computing","id":"computing.python-structure","sourceIds":["python"],"stage":"g9-10","title":"Program structure and reliable inputs"},{"description":"Data representation, structured programs and elementary algorithm reasoning.","domain":"computing","id":"computing.abstraction","sourceIds":["python","architecture","algorithms"],"stage":"g11-12","title":"Abstraction and discrete representations"},{"description":"Correctness and resource reasoning for finite computations used in robot software.","domain":"computing","id":"computing.algorithms","sourceIds":["algorithms"],"stage":"ug-foundation","title":"Data structures and algorithms"},{"description":"Execution, memory, communication and reliability models for robot applications.","domain":"computing","id":"computing.systems","sourceIds":["architecture","systems","python"],"stage":"ug-foundation","title":"Computer and network systems"},{"description":"Array computation, timing constraints and verification of software interacting with sensors.","domain":"computing","id":"computing.engineering","sourceIds":["systems","architecture","deep-learning"],"stage":"ug-advanced","title":"Numerical and embedded software"},{"description":"Supervised-learning objectives, optimization, validation and neural computation for robot data.","domain":"computing","id":"computing.machine-learning","sourceIds":["deep-learning","vision"],"stage":"ug-advanced","title":"Learning and visual recognition foundations"},{"description":"Selected research competencies for robot perception and policy learning; methods require task-specific empirical validation.","domain":"computing","id":"computing.learning-research","sourceIds":["deep-learning","ai","underactuated"],"stage":"graduate","title":"Learning under uncertainty and sequential decisions"},{"description":"Identify mechanisms and trace a slow rounded half-error teaching model. No node here authorizes real controller tuning, blocking a servo or physical repair.","domain":"robotics","id":"robot.mechanism-entry","sourceIds":["servo","reachy-hardware","reachy-config"],"stage":"g6-8","title":"Servo mechanisms and evidence"},{"description":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","domain":"robotics","id":"robot.sensing-entry","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Sensing, media and bounded decisions"},{"description":"Quantitative conceptual models and simulation tasks; hardware limits remain those of the verified device.","domain":"robotics","id":"robot.motion-foundation","sourceIds":["modern-robotics","servo"],"stage":"g9-10","title":"Motion and feedback foundations"},{"description":"Separate arithmetic contributions of a supplied sampled controller and limits of the model.","domain":"robotics","id":"robot.control-entry","sourceIds":["modern-robotics","underactuated"],"stage":"g11-12","title":"Discrete control calculations"},{"description":"Coordinate models for serial and closed-chain mechanisms with explicit frame conventions.","domain":"robotics","id":"robot.kinematics","sourceIds":["modern-robotics"],"stage":"ug-foundation","title":"Robot configuration and kinematics"},{"description":"Model-based design and analysis in simulation before any separately authorized hardware validation.","domain":"robotics","id":"robot.control-university","sourceIds":["modern-robotics","underactuated"],"stage":"ug-advanced","title":"Dynamic robot control"},{"description":"Camera and point-cloud geometry with explicit measurement models and evaluation.","domain":"robotics","id":"robot.perception","sourceIds":["manipulation","robotics-perception","vision"],"stage":"ug-advanced","title":"Geometric perception"},{"description":"Probabilistic state estimates with checked model, timing and observability assumptions.","domain":"robotics","id":"robot.estimation","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"State estimation and sensor fusion"},{"description":"Selected SLAM and smoothing competencies with attention to gauge, association and computational cost.","domain":"robotics","id":"robot.slam","sourceIds":["gtsam","robotics-perception","manipulation"],"stage":"graduate","title":"Localization, mapping and graph estimation"},{"description":"Feasible and optimized robot motion in configuration and state spaces.","domain":"robotics","id":"robot.planning","sourceIds":["planning","underactuated","modern-robotics"],"stage":"graduate","title":"Motion planning and trajectory optimization"},{"description":"Selected model-based control research tools; analytical conclusions are limited by stated assumptions.","domain":"robotics","id":"robot.control-research","sourceIds":["underactuated","modern-robotics"],"stage":"graduate","title":"Advanced control and safety arguments"},{"description":"Force, geometry and uncertainty reasoning for grippers and arms.","domain":"robotics","id":"robot.manipulation","sourceIds":["manipulation","modern-robotics"],"stage":"graduate","title":"Contact-rich manipulation"},{"description":"Nonholonomic and hybrid motion models relevant to wheeled platforms and legged robots such as MicroDuck.","domain":"robotics","id":"robot.locomotion","sourceIds":["modern-robotics","underactuated"],"stage":"graduate","title":"Mobile and legged robot motion"},{"description":"Original experimental design and critical research reading with consent, traceable data and bounded deployment claims.","domain":"robotics","id":"robot.research","sourceIds":["hri","manipulation","underactuated","deep-learning"],"stage":"graduate","title":"Robot learning, interaction and research"}],"metadata":{"date":"2026-09-10","learnerTracking":"not-connected","limitations":["This is an original editorial curriculum map, not an accredited degree or an exhaustive catalog of every scientific specialty. Stages are planning bands, not age gates.","Primary references inform the skill scope. Prerequisite links are editorial judgments and may have other valid learning sequences. Independent subject-expert review and learner validation remain necessary before using them as assessment gates.","Coverage was compared with the nine Reachy missions, ten Spark missions, and the existing explorer activities. Introductory demonstrations do not cover the graduate algorithms used inside a simulator.","No student profile, diagnostic test, mastery score, or spaced-review engine is connected. Existing lesson checkmarks remain separate. Skill counts do not represent equal learning time."],"relationshipRules":"Every requires skill plus one option from each alternatives group. Recommended skills are not required. Part-of and applied-in edges describe organization and potential use.","schemaVersion":1,"scope":"An original editorial inventory of assessable competencies from grade 6 entry bridges through graduate robotics. It covers broad school mathematics and physical science foundations, university mathematics, mechanics, electronics, signals and computing, and selected graduate robotics research methods. Stages describe customary learning depth, not age eligibility or accreditation. It is a dependency atlas, not a complete lesson sequence, assessment bank, claim of course coverage, or learner record. Graduate topics identify concrete entry and research actions, not exhaustive coverage of every specialization. Source references support topic and terminology review; prerequisites and stage assignments remain editorial judgments awaiting independent expert and learner validation. No proprietary curriculum graph or private learner activity is included. Applications identify reusable contexts, not authorization to operate hardware. Introductory formula substitution and conceptual feedback models do not require their later mathematical derivations.","title":"Robotics Knowledge Atlas","version":"1.0.0"},"missionAudit":[{"auditedAt":"2026-09-10","course":"reachy","introduced":0,"mission":"motor-detective","notes":"Read-only diagnostic reasoning; not repair training or proof of motor health.","practiced":2,"sourcePath":"course/missions/00-motor-detective.mjs","title":"Motor Detective","url":"index.html#mission-0-motor-detective"},{"auditedAt":"2026-09-10","course":"reachy","introduced":1,"mission":"hello-reachy","notes":"Saving, changing, and running a tiny greeting; SDK context-manager internals are not taught.","practiced":4,"sourcePath":"course/missions/01-hello-reachy.mjs","title":"Hello, Reachy!","url":"index.html#mission-1-hello-reachy"},{"auditedAt":"2026-09-10","course":"reachy","introduced":1,"mission":"reachy-moves","notes":"Conceptual servo feedback and bounded pose/timing changes, not PID tuning or inverse-kinematics derivation.","practiced":5,"sourcePath":"course/missions/02-reachy-moves.mjs","title":"Reachy Moves Carefully","url":"index.html#mission-2-reachy-moves"},{"auditedAt":"2026-09-10","course":"reachy","introduced":1,"mission":"reachy-sees","notes":"Image dimensions and sensing limitations, not object-recognition training or camera calibration.","practiced":2,"sourcePath":"course/missions/03-reachy-sees.mjs","title":"Reachy Sees Pixels","url":"index.html#mission-3-reachy-sees"},{"auditedAt":"2026-09-10","course":"reachy","introduced":0,"mission":"reachy-speaks","notes":"Audio samples and playback evidence, not speech-synthesis model construction.","practiced":4,"sourcePath":"course/missions/04-reachy-speaks.mjs","title":"Reachy Speaks","url":"index.html#mission-4-reachy-speaks"},{"auditedAt":"2026-09-10","course":"reachy","introduced":0,"mission":"reachy-listens","notes":"Bounded recording, rate calculations and transcript checking, not signal-reconstruction theory.","practiced":3,"sourcePath":"course/missions/05-reachy-listens.mjs","title":"Reachy Listens Carefully","url":"index.html#mission-5-reachy-listens"},{"auditedAt":"2026-09-10","course":"reachy","introduced":0,"mission":"reachy-decides","notes":"Trace deterministic branches and fallback cases, not probabilistic decision theory.","practiced":3,"sourcePath":"course/missions/06-reachy-decides.mjs","title":"Reachy Decides with Rules","url":"index.html#mission-6-reachy-decides"},{"auditedAt":"2026-09-10","course":"reachy","introduced":1,"mission":"cloud-ai","notes":"Identify transmitted data and bound responses; does not teach model training or security engineering in full.","practiced":2,"sourcePath":"course/missions/07-cloud-ai.mjs","title":"Reachy Meets Cloud AI with Care","url":"index.html#mission-7-cloud-ai"},{"auditedAt":"2026-09-10","course":"reachy","introduced":0,"mission":"robot-friend","notes":"One supervised bounded integration turn, not autonomous continuous operation or formal verification.","practiced":4,"sourcePath":"course/missions/08-robot-friend.mjs","title":"Build a Robot Friend","url":"index.html#mission-8-robot-friend"},{"auditedAt":"2026-09-10","course":"spark","introduced":0,"mission":"loop","notes":"Closed paths, breadboard nodes, and the distinction between charge and energy.","practiced":6,"sourcePath":"course/spark-course.mjs","title":"The Case of the Dark Lamp","url":"spark.html#loop"},{"auditedAt":"2026-09-10","course":"spark","introduced":0,"mission":"led","notes":"Polarity and a simplified LED-plus-resistor calculation; not semiconductor junction theory.","practiced":3,"sourcePath":"course/spark-course.mjs","title":"A Glow with a Bodyguard","url":"spark.html#led"},{"auditedAt":"2026-09-10","course":"spark","introduced":1,"mission":"ohm","notes":"Current/resistance calculations and A/mA conversion; supplied formulas do not establish general symbolic algebra.","practiced":8,"sourcePath":"course/spark-course.mjs","title":"The Brightness Bargain","url":"spark.html#ohm"},{"auditedAt":"2026-09-10","course":"spark","introduced":0,"mission":"series","notes":"Series/parallel current and voltage, plus elementary power and energy calculations.","practiced":6,"sourcePath":"course/spark-course.mjs","title":"One Road, Two Roads","url":"spark.html#series"},{"auditedAt":"2026-09-10","course":"spark","introduced":1,"mission":"capacitor","notes":"Time constants and a supplied exponential model; no differential-equation derivation or fitting noisy data.","practiced":5,"sourcePath":"course/spark-course.mjs","title":"The Patient Voltage","url":"spark.html#capacitor"},{"auditedAt":"2026-09-10","course":"spark","introduced":0,"mission":"sensor","notes":"An unloaded divider and an LDR teaching model, not physical sensor calibration.","practiced":2,"sourcePath":"course/spark-course.mjs","title":"Read the Room","url":"spark.html#sensor"},{"auditedAt":"2026-09-10","course":"spark","introduced":0,"mission":"digital","notes":"Supplied voltage thresholds and pull-down behavior, not universal device ratings.","practiced":4,"sourcePath":"course/spark-course.mjs","title":"The Uncertain Button","url":"spark.html#digital"},{"auditedAt":"2026-09-10","course":"spark","introduced":0,"mission":"logic","notes":"AND/OR/NOT truth tables and their Python representations, not Boolean minimization.","practiced":4,"sourcePath":"course/spark-course.mjs","title":"Reachy’s Rule Machine","url":"spark.html#logic"},{"auditedAt":"2026-09-10","course":"spark","introduced":0,"mission":"driver","notes":"Ideal switching and PWM interpretation; not transistor bias calculations or a Reachy servo protocol.","practiced":3,"sourcePath":"course/spark-course.mjs","title":"A Small Signal, a Powered Light","url":"spark.html#driver"},{"auditedAt":"2026-09-10","course":"spark","introduced":0,"mission":"invention","notes":"Integrate a simulated sensor/rule/indicator and test selected branches and boundaries.","practiced":2,"sourcePath":"course/spark-course.mjs","title":"The Night-Light Design Challenge","url":"spark.html#invention"},{"auditedAt":"2026-09-10","course":"explorer","introduced":0,"mission":"servo-feedback","notes":"Fixed, rounded half-error rule; not Reachy’s actual controller, tuning, or permitted hardware range.","practiced":2,"sourcePath":"web/labs.js","title":"Be the servo’s controller","url":"index.html#mission-2-reachy-moves"},{"auditedAt":"2026-09-10","course":"explorer","introduced":0,"mission":"anatomy","notes":"Mechanical CAD plus schematic electronics; addresses use the pinned SDK mapping, not a live scan.","practiced":2,"sourcePath":"web/anatomy.html","title":"Reachy 3D anatomy explorer","url":"anatomy.html"},{"auditedAt":"2026-09-10","course":"explorer","introduced":1,"mission":"code-lab","notes":"Open Code \u0026 play in the explorer. Real Python uses a limited simulation adapter; planned poses and pretend sensors are not hardware measurements.","practiced":2,"sourcePath":"web/code-lab.js","title":"Simulated Python robot lab · choose Code \u0026 play","url":"anatomy.html#explorer-controls"}],"nodes":[{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Order a mixed set and explain which is farther below zero.","id":"math.number.signed-order","misconception":"A larger absolute value is not always a larger signed number.","objective":"Place positive and negative measurements on a number line.","recommended":[],"requires":[],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Order signed quantities"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Match a shaded model, division expression and rational value.","id":"math.number.fraction-meaning","misconception":"The denominator counts equal-sized parts, not shaded parts alone.","objective":"Represent a fraction as equal parts and as a quotient.","recommended":[],"requires":[],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Interpret a fraction"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain the difference between 0.04 and 0.4 using place value.","id":"math.number.decimal-place","misconception":"A longer decimal is not necessarily larger.","objective":"Identify the value contributed by each digit in a decimal measurement.","recommended":[],"requires":[],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Read decimal place value"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Show two signed contributions and their final number-line position.","id":"math.number.signed-add","misconception":"Adding a negative contribution can reduce the result.","objective":"Combine signed quantities into one sum.","recommended":[],"requires":[{"id":"math.number.signed-order","reason":"The sign locates each contribution and its direction."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Add signed values"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain why subtracting a negative value increases the result.","id":"math.number.signed-subtract","misconception":"The order of a difference determines its sign.","objective":"Calculate the signed difference between a final and an initial value.","recommended":[],"requires":[{"id":"math.number.signed-add","reason":"Subtraction can be rewritten as addition of the opposite value."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Subtract signed values"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain the signs of a negative-positive and a negative-negative product.","id":"math.number.signed-multiply","misconception":"Two negative factors give a positive product.","objective":"Determine the sign and magnitude of a product of signed numbers.","recommended":[],"requires":[{"id":"math.number.signed-order","reason":"The factor signs must be distinguished before applying the product sign rule."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Multiply signed values"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain a positive quotient from two negative values and reject division by zero.","id":"math.number.signed-divide","misconception":"A negative divisor does not always produce a negative quotient.","objective":"Determine the sign and magnitude of a quotient with a nonzero signed divisor.","recommended":[],"requires":[{"id":"math.number.signed-multiply","reason":"Division reverses a signed multiplication relation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Divide signed values"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Show equivalent fractions and simplify the resulting sum.","id":"math.number.fraction-add","misconception":"Adding denominators does not preserve equal part size.","objective":"Combine fractions by expressing them with a common denominator.","recommended":[],"requires":[{"id":"math.number.fraction-meaning","reason":"Equivalent parts give the common unit needed for addition."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Add unlike fractions"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Predict and calculate a half-size amount without changing its unit.","id":"math.number.fraction-multiply","misconception":"Multiplication does not always make a value bigger.","objective":"Calculate a fraction of a quantity and interpret a product smaller than its input.","recommended":[],"requires":[{"id":"math.number.fraction-meaning","reason":"A fraction is the scale factor applied to the quantity."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Scale by a fraction"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Use a grouping model to justify multiplication by the reciprocal.","id":"math.number.fraction-divide","misconception":"The reciprocal applies to the divisor, not arbitrarily to either fraction.","objective":"Calculate how many fractional groups fit into a quantity.","recommended":[],"requires":[{"id":"math.number.fraction-multiply","reason":"The inverse scale factor undoes fractional multiplication."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Divide by a fraction"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Estimate first, then calculate a decimal product and check its scale.","id":"math.number.decimal-calculate","misconception":"Decimal point placement follows place value, not the number of digits in one factor alone.","objective":"Multiply finite decimals while retaining a plausible magnitude.","recommended":[],"requires":[{"id":"math.number.decimal-place","reason":"Place values determine the scale of the product."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Multiply decimal measurements"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Scale dividend and divisor together and check the quotient by multiplication.","id":"math.number.decimal-divide","misconception":"Scaling only the divisor changes the quotient.","objective":"Divide finite decimals by a nonzero divisor while retaining a plausible magnitude.","recommended":[],"requires":[{"id":"math.number.decimal-calculate","reason":"Multiplication checks whether divisor times quotient returns the dividend."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Divide decimal measurements"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Align tenths with tenths and verify the total against an estimate.","id":"math.number.decimal-add","misconception":"Right-aligning unequal-length decimal strings can pair different place values.","objective":"Add finite decimal quantities by combining equal place values.","recommended":[],"requires":[{"id":"math.number.decimal-place","reason":"Like place values must be combined."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Add decimal measurements"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check the difference by adding it back to the subtracted amount.","id":"math.number.decimal-subtract","misconception":"Borrowing changes the representation, not the measured quantity.","objective":"Find a decimal difference while retaining a consistent place-value scale.","recommended":[],"requires":[{"id":"math.number.decimal-add","reason":"Addition verifies the inverse relationship of the difference."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Subtract decimal measurements"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Record intermediate values for a formula with nested grouping.","id":"math.number.operation-order","misconception":"Multiplication has priority over addition even when addition is written first.","objective":"Evaluate an expression containing parentheses, multiplication and addition.","recommended":[],"requires":[{"id":"math.number.decimal-calculate","reason":"The grouped expression requires reliable arithmetic on its numerical values."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Evaluate a grouped expression"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Find samples per second from an amount and duration, with units.","id":"math.ratio.unit-rate","misconception":"The order of the numerator and denominator changes the meaning.","objective":"Convert a ratio into an amount per one unit.","recommended":[],"requires":[{"id":"math.number.decimal-divide","reason":"Division gives the amount corresponding to one denominator unit."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Calculate a unit rate"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain the constant scale factor and use it on a new input.","id":"math.ratio.proportion","misconception":"A constant difference does not establish proportionality.","objective":"Find a missing quantity in a constant-ratio situation.","recommended":[],"requires":[{"id":"math.ratio.unit-rate","reason":"A unit rate supplies the constant multiplier for the missing quantity."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Solve a proportional relationship"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Identify the whole before calculating the requested part.","id":"math.ratio.percent","misconception":"Percentages with different reference wholes cannot be compared as raw amounts.","objective":"Calculate a percentage of a stated reference quantity.","recommended":[],"requires":[{"id":"math.number.fraction-multiply","reason":"Percent is a fraction with denominator one hundred."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Convert percent to a fraction of a whole"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The explanation scales amperes by 1000; the Python experiment and measurement table express each resistor current in milliamperes.","mission":"ohm","nodeId":"math.units.amp-to-milliamp","section":"Small current, readable units","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Brightness Bargain","url":"spark.html#ohm"}],"status":"practiced"},"domain":"math","evidence":"Convert a small decimal current and verify both labels represent one quantity.","id":"math.units.amp-to-milliamp","misconception":"Smaller units require a larger numerical count.","objective":"Multiply an ampere value by 1000 and label the equivalent milliampere value.","recommended":[],"requires":[{"id":"math.number.decimal-calculate","reason":"The decimal current must be scaled by one thousand."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Convert amperes to milliamperes"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The target-current design converts 10 mA to 0.010 A before substituting into the resistance formula.","mission":"ohm","nodeId":"math.units.milliamp-to-amp","section":"Small current, readable units","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Brightness Bargain","url":"spark.html#ohm"}],"status":"practiced"},"domain":"math","evidence":"Convert a target current and substitute the ampere value with units.","id":"math.units.milliamp-to-amp","misconception":"Using the milliampere number directly produces a thousandfold error.","objective":"Divide a milliampere value by 1000 before using an ampere-based formula.","recommended":[],"requires":[{"id":"math.number.decimal-divide","reason":"Division by one thousand produces the ampere magnitude."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Convert milliamperes to amperes"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Convert microfarads to farads and justify the power-of-ten scale.","id":"math.units.metric-prefix","misconception":"Micro and milli differ by a factor of one thousand.","objective":"Use a supplied prefix table to express a measurement in its base unit.","recommended":[],"requires":[{"id":"math.number.decimal-place","reason":"Moving between prefixed and base units depends on decimal place values."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Convert a metric prefix"},{"alternatives":[],"applications":["general"],"clusterIds":["math.number"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Mark the deciding digit and state the rounded value.","id":"math.number.round","misconception":"Rounding intermediate calculations can change a final threshold decision.","objective":"Round a number to a specified decimal place while preserving its unit.","recommended":[],"requires":[{"id":"math.number.decimal-place","reason":"The requested place determines which digit controls rounding."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Arithmetic with signed rational quantities and explicit units; elementary whole-number arithmetic is an entry assumption.","sourceIds":["ccss"],"stage":"g6-8","title":"Round a reported measurement"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Label inputs and evaluate one grouped formula without changing its meaning.","id":"math.algebra.substitute","misconception":"A symbol is not a unit label or a multiplication sign.","objective":"Replace each symbol in a supplied formula with the matching numerical value.","recommended":[],"requires":[{"id":"math.number.operation-order","reason":"The substituted expression must retain the formula grouping."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"One- and two-step symbolic relationships and coordinate representations.","sourceIds":["ccss"],"stage":"g6-8","title":"Substitute into a formula"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Expand and check a signed expression by substitution.","id":"math.algebra.distribute","misconception":"A multiplier outside parentheses applies to all enclosed terms.","objective":"Apply the distributive property to every term inside parentheses.","recommended":[],"requires":[{"id":"math.number.signed-multiply","reason":"Signs of every distributed product must be calculated."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"One- and two-step symbolic relationships and coordinate representations.","sourceIds":["ccss"],"stage":"g6-8","title":"Expand a grouped linear expression"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain why a constant cannot be added to a variable coefficient.","id":"math.algebra.combine-terms","misconception":"Terms with different variable powers are not interchangeable.","objective":"Simplify a linear expression by combining coefficients of matching variables.","recommended":[],"requires":[{"id":"math.algebra.distribute","reason":"Expanding products exposes terms that can be combined."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"One- and two-step symbolic relationships and coordinate representations.","sourceIds":["ccss"],"stage":"g6-8","title":"Combine like terms"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Solve a two-step equation and verify it by substitution.","id":"math.algebra.solve-linear","misconception":"Changing only one side breaks the equality.","objective":"Isolate one unknown using inverse operations on both sides.","recommended":[],"requires":[{"id":"math.algebra.substitute","reason":"Substitution verifies that the proposed solution satisfies the original equation."},{"id":"math.number.signed-subtract","reason":"Undoing a constant term requires signed subtraction."},{"id":"math.number.signed-divide","reason":"Dividing by a nonzero coefficient isolates the unknown."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"One- and two-step symbolic relationships and coordinate representations.","sourceIds":["ccss"],"stage":"g6-8","title":"Solve a linear equation"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Derive a rearranged formula and state any forbidden zero denominator.","id":"math.algebra.rearrange","misconception":"Moving a symbol is shorthand for applying an operation to both sides.","objective":"Make a selected variable the subject of a product or quotient relation.","recommended":[],"requires":[{"id":"math.algebra.solve-linear","reason":"The same equality-preserving inverse operations isolate the selected variable."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"One- and two-step symbolic relationships and coordinate representations.","sourceIds":["ccss"],"stage":"g6-8","title":"Rearrange a product formula"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain why division by a negative reverses the relation.","id":"math.algebra.inequality","misconception":"Applying a negative scaling without reversing the relation gives the wrong solution set.","objective":"Isolate an unknown in a one-variable linear inequality.","recommended":[],"requires":[{"id":"math.algebra.solve-linear","reason":"Inverse operations isolate the boundary quantity."},{"id":"math.number.signed-order","reason":"The solution is an ordered set of values, not just one number."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"One- and two-step symbolic relationships and coordinate representations.","sourceIds":["ccss"],"stage":"g6-8","title":"Solve a linear inequality"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain the open or closed endpoint and shaded direction.","id":"math.algebra.plot-inequality","misconception":"An open endpoint excludes exactly the boundary value.","objective":"Represent an already-solved inequality on a number line with correct endpoint inclusion.","recommended":[],"requires":[{"id":"math.number.signed-order","reason":"The number line orders the values satisfying the relation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"One- and two-step symbolic relationships and coordinate representations.","sourceIds":["ccss"],"stage":"g6-8","title":"Plot an inequality solution set"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Plot a pair and distinguish it from the reversed pair.","id":"math.geometry.coordinates","misconception":"The first coordinate is not always the vertical position.","objective":"Locate a point using horizontal and vertical signed coordinates.","recommended":[],"requires":[{"id":"math.number.signed-order","reason":"Each axis has a positive and negative direction."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"One- and two-step symbolic relationships and coordinate representations.","sourceIds":["ccss"],"stage":"g6-8","title":"Read an ordered coordinate pair"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Find a slope and explain what its sign predicts.","id":"math.graph.slope","misconception":"Slope is a ratio of changes, not the ratio of the point coordinates.","objective":"Compute vertical change divided by horizontal change with meaningful units.","recommended":[],"requires":[{"id":"math.geometry.coordinates","reason":"Both coordinate differences must come from the same pair of points."},{"id":"math.ratio.unit-rate","reason":"Slope is a change per unit input change."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"One- and two-step symbolic relationships and coordinate representations.","sourceIds":["ccss"],"stage":"g6-8","title":"Calculate slope from two points"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Read the intercept from a graph and connect it to an initial offset.","id":"math.graph.intercept","misconception":"The intercept need not be zero in a linear relationship.","objective":"Identify the output at zero input in a linear relation.","recommended":[],"requires":[{"id":"math.geometry.coordinates","reason":"The intercept is the coordinate where the input axis value is zero."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"One- and two-step symbolic relationships and coordinate representations.","sourceIds":["ccss"],"stage":"g6-8","title":"Interpret a linear intercept"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Predict a new output and state the interval where the model is intended.","id":"math.graph.linear-model","misconception":"Extrapolating a line does not prove the process stays linear.","objective":"Construct y = mx + b from a rate and an initial value.","recommended":[],"requires":[{"id":"math.graph.slope","reason":"The rate provides the coefficient m."},{"id":"math.graph.intercept","reason":"The initial value provides the offset b."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"One- and two-step symbolic relationships and coordinate representations.","sourceIds":["ccss"],"stage":"g6-8","title":"Write a linear model"},{"alternatives":[],"applications":["general"],"clusterIds":["math.geometry-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Label a clockwise and counterclockwise turn under the stated convention.","id":"math.geometry.angle","misconception":"A positive angle requires an agreed viewing direction.","objective":"Describe a rotation in degrees relative to a chosen zero and positive direction.","recommended":[],"requires":[],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Plane and solid measurement and transformations that support robot geometry.","sourceIds":["ccss"],"stage":"g6-8","title":"Measure a signed turn"},{"alternatives":[],"applications":["general"],"clusterIds":["math.geometry-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Sketch the decomposition and label the squared units.","id":"math.geometry.area","misconception":"Perimeter and area measure different quantities.","objective":"Decompose a plane shape into rectangles and triangles and sum their areas.","recommended":[],"requires":[{"id":"math.number.fraction-multiply","reason":"Triangle areas use one half of a base-height product."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Plane and solid measurement and transformations that support robot geometry.","sourceIds":["ccss"],"stage":"g6-8","title":"Calculate a composite area"},{"alternatives":[],"applications":["general"],"clusterIds":["math.geometry-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain the cubic units and identify the correct height.","id":"math.geometry.volume","misconception":"A slanted edge is not necessarily the perpendicular height.","objective":"Multiply a prism base area by its perpendicular height.","recommended":[],"requires":[{"id":"math.geometry.area","reason":"The base cross-section supplies the area being extended."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Plane and solid measurement and transformations that support robot geometry.","sourceIds":["ccss"],"stage":"g6-8","title":"Calculate a prism volume"},{"alternatives":[],"applications":["general"],"clusterIds":["math.geometry-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Convert a dimension and check the direction of scaling.","id":"math.geometry.scale","misconception":"Area scales by the square of the length factor.","objective":"Translate a measured drawing length into the corresponding actual length.","recommended":[],"requires":[{"id":"math.ratio.proportion","reason":"A fixed scale links every drawing length to its physical length."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Plane and solid measurement and transformations that support robot geometry.","sourceIds":["ccss"],"stage":"g6-8","title":"Apply a drawing scale"},{"alternatives":[],"applications":["general"],"clusterIds":["math.geometry-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Give the transformed coordinates and identify preserved distances.","id":"math.geometry.transform","misconception":"Reflection changes orientation even when lengths stay equal.","objective":"Map vertices through a specified translation, reflection or quarter-turn.","recommended":[],"requires":[{"id":"math.geometry.coordinates","reason":"A transformation maps each ordered coordinate pair."},{"id":"math.geometry.angle","reason":"A rotation needs a center and a signed turn."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Plane and solid measurement and transformations that support robot geometry.","sourceIds":["ccss"],"stage":"g6-8","title":"Apply a plane transformation"},{"alternatives":[],"applications":["general"],"clusterIds":["math.geometry-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Identify the hypotenuse and reject a non-right-triangle use.","id":"math.geometry.pythagoras","misconception":"The hypotenuse is opposite the right angle, not whichever side is unknown.","objective":"Use the Pythagorean relation to determine an unknown side of a right triangle.","recommended":[],"requires":[{"id":"math.algebra.substitute","reason":"Side lengths must be substituted into the correct squared terms."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Plane and solid measurement and transformations that support robot geometry.","sourceIds":["ccss"],"stage":"g6-8","title":"Find a right-triangle distance"},{"alternatives":[],"applications":["general"],"clusterIds":["math.geometry-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Label corresponding angles and justify a common length ratio.","id":"math.geometry.similarity","misconception":"Similar triangles share shape, not necessarily size.","objective":"Determine an unknown length from corresponding sides of similar triangles.","recommended":[],"requires":[{"id":"math.ratio.proportion","reason":"Corresponding lengths obey the same scale factor."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Plane and solid measurement and transformations that support robot geometry.","sourceIds":["ccss"],"stage":"g6-8","title":"Use similar triangles"},{"alternatives":[],"applications":["general"],"clusterIds":["math.geometry-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain whether the result needs linear or squared units.","id":"math.geometry.circle","misconception":"Diameter is twice radius and cannot be substituted for it unchanged.","objective":"Choose circumference or area to answer a circular geometry question.","recommended":[],"requires":[{"id":"math.geometry.area","reason":"Area questions require squared units rather than a boundary length."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Plane and solid measurement and transformations that support robot geometry.","sourceIds":["ccss"],"stage":"g6-8","title":"Calculate a circle measure"},{"alternatives":[],"applications":["general"],"clusterIds":["math.data-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain how one unusually large observation changes the mean.","id":"math.stats.mean","misconception":"The mean need not equal any observed value.","objective":"Compute a dataset total divided by its number of observations.","recommended":[],"requires":[{"id":"math.number.decimal-divide","reason":"A mean divides the total by the count."},{"id":"math.number.decimal-add","reason":"The observations must first be totaled."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Descriptions of small datasets and finite chance experiments.","sourceIds":["ccss"],"stage":"g6-8","title":"Calculate an arithmetic mean"},{"alternatives":[],"applications":["general"],"clusterIds":["math.data-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Show the ordered dataset and the selected positions.","id":"math.stats.median","misconception":"Quartile conventions can differ for small datasets.","objective":"Order observations and identify central and quartile positions using a stated convention.","recommended":[],"requires":[{"id":"math.number.signed-order","reason":"Position statistics require a consistently ordered dataset."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Descriptions of small datasets and finite chance experiments.","sourceIds":["ccss"],"stage":"g6-8","title":"Find a median and quartiles"},{"alternatives":[],"applications":["general"],"clusterIds":["math.data-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain which dataset has less typical variation and which has an outlier.","id":"math.stats.spread","misconception":"Equal means do not imply equal variability.","objective":"Compare ranges and interquartile ranges for datasets with similar centers.","recommended":[],"requires":[{"id":"math.stats.median","reason":"Quartiles locate the middle-half interval."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Descriptions of small datasets and finite chance experiments.","sourceIds":["ccss"],"stage":"g6-8","title":"Compare data spread"},{"alternatives":[],"applications":["general"],"clusterIds":["math.data-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Identify an outlier and a plausible confounder in a paired dataset.","id":"math.stats.scatter","misconception":"Correlation alone does not show which variable causes the other.","objective":"Describe the direction and strength of an association without claiming causation.","recommended":[],"requires":[{"id":"math.geometry.coordinates","reason":"Every plotted point represents a paired observation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Descriptions of small datasets and finite chance experiments.","sourceIds":["ccss"],"stage":"g6-8","title":"Interpret a scatter plot"},{"alternatives":[],"applications":["general"],"clusterIds":["math.data-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check that outcomes are mutually distinguishable and exhaustive.","id":"math.probability.sample-space","misconception":"Outcomes that can be listed are not automatically equally likely.","objective":"List distinct outcomes of a small chance experiment without omission.","recommended":[],"requires":[],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Descriptions of small datasets and finite chance experiments.","sourceIds":["ccss"],"stage":"g6-8","title":"Enumerate a finite sample space"},{"alternatives":[],"applications":["general"],"clusterIds":["math.data-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"State the equal-likelihood assumption with the numerical probability.","id":"math.probability.finite","misconception":"Counting outcomes fails when their probabilities differ.","objective":"Divide favorable outcomes by total equally likely outcomes.","recommended":[],"requires":[{"id":"math.probability.sample-space","reason":"The denominator must cover the complete experiment."},{"id":"math.number.fraction-meaning","reason":"The event proportion is a fraction of the whole space."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Descriptions of small datasets and finite chance experiments.","sourceIds":["ccss"],"stage":"g6-8","title":"Calculate an equally likely event probability"},{"alternatives":[],"applications":["general"],"clusterIds":["math.data-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Propose a sampling change that addresses a stated exclusion.","id":"math.stats.sample-bias","misconception":"A large sample does not remove systematic selection bias.","objective":"Identify how a sampling procedure can systematically exclude part of a population.","recommended":[],"requires":[{"id":"math.stats.mean","reason":"A sample summary must be related to the population it is intended to describe."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Descriptions of small datasets and finite chance experiments.","sourceIds":["ccss"],"stage":"g6-8","title":"Recognize a biased sample"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-secondary"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain zero and negative exponents using a nonzero base.","id":"math.algebra.exponents","misconception":"A negative exponent denotes a reciprocal, not a negative number.","objective":"Simplify products and quotients of integer powers while preserving domain restrictions.","recommended":[],"requires":[{"id":"math.number.fraction-divide","reason":"Negative exponents require reciprocal reasoning."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Function models, systems, powers and quadratic reasoning.","sourceIds":["ccss"],"stage":"g9-10","title":"Apply exponent laws"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-secondary"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Normalize the coefficient and estimate the order of magnitude.","id":"math.number.scientific","misconception":"Adding exponents is valid for multiplication, not addition.","objective":"Multiply or divide values written as coefficients times powers of ten.","recommended":[],"requires":[{"id":"math.algebra.exponents","reason":"Powers of ten combine through exponent rules."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Function models, systems, powers and quadratic reasoning.","sourceIds":["ccss"],"stage":"g9-10","title":"Calculate in scientific notation"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-secondary"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Show all pairwise products and check one numerical substitution.","id":"math.algebra.polynomial","misconception":"Squaring a sum produces a cross term.","objective":"Expand a product of polynomials and collect matching powers.","recommended":[],"requires":[{"id":"math.algebra.combine-terms","reason":"Expanded products must be collected by matching powers."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Function models, systems, powers and quadratic reasoning.","sourceIds":["ccss"],"stage":"g9-10","title":"Multiply polynomials"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-secondary"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Multiply the factors back to verify the original coefficients.","id":"math.algebra.factor","misconception":"Factoring changes representation without changing the expression.","objective":"Rewrite a quadratic as a product when suitable factors exist.","recommended":[],"requires":[{"id":"math.algebra.polynomial","reason":"Reverse multiplication verifies the factorization."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Function models, systems, powers and quadratic reasoning.","sourceIds":["ccss"],"stage":"g9-10","title":"Factor a quadratic expression"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-secondary"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check each root against both the equation and contextual constraints.","id":"math.algebra.quadratic","misconception":"A negative time root may solve the equation but not the stated experiment.","objective":"Find real roots using a suitable algebraic method and interpret their admissibility.","recommended":[],"requires":[{"id":"math.algebra.factor","reason":"A factored quadratic exposes zero-product solutions."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Function models, systems, powers and quadratic reasoning.","sourceIds":["ccss"],"stage":"g9-10","title":"Solve a quadratic equation"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-secondary"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check the pair in both equations and recognize inconsistent parallel lines.","id":"math.algebra.system","misconception":"Solving either equation separately does not solve the system.","objective":"Use elimination or substitution to find a common solution.","recommended":[],"requires":[{"id":"math.algebra.solve-linear","reason":"Each elimination or substitution step reduces to a linear equation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Function models, systems, powers and quadratic reasoning.","sourceIds":["ccss"],"stage":"g9-10","title":"Solve two linear equations"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-secondary"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Exclude zero denominators and contextual impossibilities.","id":"math.function.domain","misconception":"A formula does not automatically permit every real input.","objective":"Identify allowable inputs and their associated outputs for a stated rule.","recommended":[],"requires":[{"id":"math.algebra.substitute","reason":"Evaluating the rule reveals undefined input values."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Function models, systems, powers and quadratic reasoning.","sourceIds":["ccss"],"stage":"g9-10","title":"Specify a function domain"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-secondary"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Trace the intermediate value and compare with the reversed composition.","id":"math.function.compose","misconception":"Function composition generally depends on order.","objective":"Evaluate one function at the output of another in the stated order.","recommended":[],"requires":[{"id":"math.function.domain","reason":"The inner output must belong to the outer function domain."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Function models, systems, powers and quadratic reasoning.","sourceIds":["ccss"],"stage":"g9-10","title":"Compose two functions"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-secondary"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Verify the composition returns the original input on its allowed domain.","id":"math.function.inverse","misconception":"An inverse function is not a reciprocal function.","objective":"Undo a one-to-one function and state a domain restriction when needed.","recommended":[],"requires":[{"id":"math.function.compose","reason":"Composition is the test that an inverse undoes a mapping."},{"id":"math.algebra.rearrange","reason":"Swapping input and output requires solving for the original input."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Function models, systems, powers and quadratic reasoning.","sourceIds":["ccss"],"stage":"g9-10","title":"Find an inverse on a restricted domain"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-secondary"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Evaluate below, at and above a boundary.","id":"math.function.piecewise","misconception":"A boundary belongs to the branch whose inequality includes it.","objective":"Select the correct formula using inclusive and exclusive interval boundaries.","recommended":[],"requires":[{"id":"math.algebra.inequality","reason":"The branch condition defines its interval of applicability."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Function models, systems, powers and quadratic reasoning.","sourceIds":["ccss"],"stage":"g9-10","title":"Evaluate a piecewise rule"},{"alternatives":[],"applications":["general"],"clusterIds":["math.algebra-secondary"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain why the example satisfies the premise and violates the conclusion.","id":"math.proof.counterexample","misconception":"Many supporting examples do not prove a universal claim.","objective":"Construct one valid counterexample to an all-cases mathematical statement.","recommended":[],"requires":[{"id":"math.algebra.substitute","reason":"The proposed counterexample must be checked against the stated relation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Function models, systems, powers and quadratic reasoning.","sourceIds":["ccss"],"stage":"g9-10","title":"Disprove a universal claim"},{"alternatives":[],"applications":["general"],"clusterIds":["math.precalculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Label opposite, adjacent and hypotenuse relative to the selected angle.","id":"math.trig.right-triangle","misconception":"Opposite and adjacent depend on the chosen angle.","objective":"Use sine, cosine or tangent to find a missing right-triangle side.","recommended":[],"requires":[{"id":"math.geometry.similarity","reason":"Trigonometric side ratios are invariant across similar right triangles."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic geometry, trigonometric functions, complex numbers and exponential relationships.","sourceIds":["ccss","calculus"],"stage":"g11-12","title":"Solve a trigonometric triangle"},{"alternatives":[],"applications":["general"],"clusterIds":["math.precalculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Give equivalent signed angles with their units.","id":"math.trig.radians","misconception":"A radian value cannot be passed unchanged to a degrees interface.","objective":"Convert an angular displacement using pi radians per half-turn.","recommended":[],"requires":[{"id":"math.geometry.angle","reason":"Both units measure the same signed rotation."},{"id":"math.ratio.proportion","reason":"The fixed degree-radian ratio converts the magnitude."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic geometry, trigonometric functions, complex numbers and exponential relationships.","sourceIds":["ccss","calculus"],"stage":"g11-12","title":"Convert degrees and radians"},{"alternatives":[],"applications":["general"],"clusterIds":["math.precalculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Relate a point to its angle and explain quadrant signs.","id":"math.trig.unit-circle","misconception":"Cosine is the horizontal coordinate, not the radius.","objective":"Determine sine and cosine signs and values from unit-circle coordinates.","recommended":[],"requires":[{"id":"math.trig.radians","reason":"The angle parametrizes position on the circle."},{"id":"math.geometry.coordinates","reason":"The coordinates encode sine and cosine."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic geometry, trigonometric functions, complex numbers and exponential relationships.","sourceIds":["ccss","calculus"],"stage":"g11-12","title":"Read sine and cosine on a circle"},{"alternatives":[],"applications":["general"],"clusterIds":["math.precalculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Distinguish opposite vectors that have the same y/x ratio.","id":"math.trig.atan2","misconception":"Arctangent of a ratio alone can lose quadrant information.","objective":"Recover a planar direction from both components using quadrant-aware reasoning.","recommended":[],"requires":[{"id":"math.trig.unit-circle","reason":"Quadrants distinguish the possible directions with the same tangent."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic geometry, trigonometric functions, complex numbers and exponential relationships.","sourceIds":["ccss","calculus"],"stage":"g11-12","title":"Recover a vector direction"},{"alternatives":[],"applications":["general"],"clusterIds":["math.precalculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Compare successive differences and successive ratios.","id":"math.function.exponential","misconception":"Exponential decay removes a fraction of what remains, not a fixed amount.","objective":"Calculate repeated proportional growth or decay from a supplied model.","recommended":[],"requires":[{"id":"math.algebra.exponents","reason":"The number of repeated scaling steps is represented by an exponent."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic geometry, trigonometric functions, complex numbers and exponential relationships.","sourceIds":["ccss","calculus"],"stage":"g11-12","title":"Evaluate an exponential model"},{"alternatives":[],"applications":["general"],"clusterIds":["math.precalculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check the domain and substitute the recovered exponent.","id":"math.function.logarithm","misconception":"The logarithm of a sum is not the sum of logarithms.","objective":"Use a logarithm to recover an unknown exponent.","recommended":[],"requires":[{"id":"math.function.inverse","reason":"A logarithm is an inverse of an exponential on the appropriate domain."},{"id":"math.function.exponential","reason":"The unknown is a scaling exponent."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic geometry, trigonometric functions, complex numbers and exponential relationships.","sourceIds":["ccss","calculus"],"stage":"g11-12","title":"Solve an exponential equation with logarithms"},{"alternatives":[],"applications":["general"],"clusterIds":["math.precalculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Use a conjugate to obtain a real denominator.","id":"math.complex.calculate","misconception":"The imaginary unit is not an unknown real scalar.","objective":"Multiply and divide rectangular complex numbers using i squared equals minus one.","recommended":[],"requires":[{"id":"math.algebra.polynomial","reason":"Complex multiplication expands like a polynomial product."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic geometry, trigonometric functions, complex numbers and exponential relationships.","sourceIds":["ccss","calculus"],"stage":"g11-12","title":"Calculate with complex numbers"},{"alternatives":[],"applications":["general"],"clusterIds":["math.precalculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Reconstruct the rectangular components and preserve the quadrant.","id":"math.complex.polar","misconception":"A negative real part does not determine phase by itself.","objective":"Represent a complex number by magnitude and phase.","recommended":[],"requires":[{"id":"math.complex.calculate","reason":"Real and imaginary components define the complex quantity."},{"id":"math.trig.atan2","reason":"Phase requires a quadrant-aware angle."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic geometry, trigonometric functions, complex numbers and exponential relationships.","sourceIds":["ccss","calculus"],"stage":"g11-12","title":"Convert complex rectangular and polar forms"},{"alternatives":[],"applications":["general"],"clusterIds":["math.precalculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check the ratio-one case separately.","id":"math.sequence.geometric","misconception":"The infinite-series formula is not a finite sum.","objective":"Compute a finite total when successive terms share a constant ratio.","recommended":[],"requires":[{"id":"math.function.exponential","reason":"Each sequence term is generated by repeated proportional scaling."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic geometry, trigonometric functions, complex numbers and exponential relationships.","sourceIds":["ccss","calculus"],"stage":"g11-12","title":"Sum a finite geometric sequence"},{"alternatives":[],"applications":["general"],"clusterIds":["math.calculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Compare left and right limits for a removable discontinuity.","id":"math.calculus.limit","misconception":"A limit can exist even when the function value is missing.","objective":"Determine a local limiting value and distinguish it from a value at a point.","recommended":[],"requires":[{"id":"math.function.domain","reason":"Domain and point value must be separated from nearby behavior."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Rates, accumulation, local approximation and elementary differential equations.","sourceIds":["calculus"],"stage":"ug-foundation","title":"Evaluate a function limit"},{"alternatives":[],"applications":["general"],"clusterIds":["math.calculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Compare several step sizes and interpret the limiting slope.","id":"math.calculus.derivative-definition","misconception":"A derivative is local, whereas a secant averages over an interval.","objective":"Use shrinking finite differences to estimate a derivative with units.","recommended":[],"requires":[{"id":"math.graph.slope","reason":"Finite differences are slopes over shrinking intervals."},{"id":"math.calculus.limit","reason":"The derivative uses a limiting rate."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Rates, accumulation, local approximation and elementary differential equations.","sourceIds":["calculus"],"stage":"ug-foundation","title":"Estimate an instantaneous rate"},{"alternatives":[],"applications":["general"],"clusterIds":["math.calculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Produce a derivative and compare it with a numerical rate at one point.","id":"math.calculus.differentiate","misconception":"Differentiating a constant gives zero, not the constant itself.","objective":"Apply power, sum, exponential and trigonometric derivative rules.","recommended":[],"requires":[{"id":"math.calculus.derivative-definition","reason":"The symbolic derivative must represent the instantaneous rate."},{"id":"math.trig.radians","reason":"Standard trigonometric derivative rules assume radians."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Rates, accumulation, local approximation and elementary differential equations.","sourceIds":["calculus"],"stage":"ug-foundation","title":"Differentiate an elementary function"},{"alternatives":[],"applications":["general"],"clusterIds":["math.calculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Label inner and outer derivatives in a composite sensor model.","id":"math.calculus.chain-rule","misconception":"The inner derivative cannot be omitted.","objective":"Apply the chain rule including the derivative of the inner function.","recommended":[],"requires":[{"id":"math.calculus.differentiate","reason":"Both component functions require derivatives."},{"id":"math.function.compose","reason":"The nested function structure determines the chain."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Rates, accumulation, local approximation and elementary differential equations.","sourceIds":["calculus"],"stage":"ug-foundation","title":"Differentiate a composition"},{"alternatives":[],"applications":["general"],"clusterIds":["math.calculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check the resulting derivative against a finite difference.","id":"math.calculus.product-rule","misconception":"The derivative of a product is not the product of the derivatives.","objective":"Apply the appropriate derivative rule to two varying factors.","recommended":[],"requires":[{"id":"math.calculus.differentiate","reason":"Each changing factor contributes a derivative term."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Rates, accumulation, local approximation and elementary differential equations.","sourceIds":["calculus"],"stage":"ug-foundation","title":"Differentiate a product or quotient"},{"alternatives":[],"applications":["general"],"clusterIds":["math.calculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Estimate an output change and state why the approximation is local.","id":"math.calculus.local-linear","misconception":"A tangent model can fail far from its expansion point.","objective":"Approximate a nearby output using a value and derivative at a reference input.","recommended":[],"requires":[{"id":"math.calculus.derivative-definition","reason":"The derivative is the local change coefficient."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Rates, accumulation, local approximation and elementary differential equations.","sourceIds":["calculus"],"stage":"ug-foundation","title":"Construct a tangent approximation"},{"alternatives":[],"applications":["general"],"clusterIds":["math.calculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check signs or curvature and report the best feasible candidate.","id":"math.calculus.extrema","misconception":"A zero derivative does not by itself establish a minimum.","objective":"Find stationary points and compare them with endpoints for a bounded optimization.","recommended":[],"requires":[{"id":"math.calculus.differentiate","reason":"Stationary candidates are zeros of the derivative."},{"id":"math.algebra.inequality","reason":"The feasible interval determines which endpoints and candidates count."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Rates, accumulation, local approximation and elementary differential equations.","sourceIds":["calculus"],"stage":"ug-foundation","title":"Classify stationary candidates"},{"alternatives":[],"applications":["general"],"clusterIds":["math.calculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Show units and distinguish negative area from negative geometric size.","id":"math.calculus.riemann","misconception":"A signed integral is not always total distance.","objective":"Approximate a signed integral by summing rate times interval width.","recommended":[],"requires":[{"id":"math.ratio.unit-rate","reason":"Multiplying a rate by duration recovers an accumulated quantity."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Rates, accumulation, local approximation and elementary differential equations.","sourceIds":["calculus"],"stage":"ug-foundation","title":"Estimate accumulation with sums"},{"alternatives":[],"applications":["general"],"clusterIds":["math.calculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Differentiate the antiderivative as a check and include bounds.","id":"math.calculus.integrate","misconception":"An indefinite integration constant cancels in the endpoint difference.","objective":"Use an antiderivative and endpoint difference to calculate accumulation.","recommended":[],"requires":[{"id":"math.calculus.riemann","reason":"The integral represents the limit of accumulated contributions."},{"id":"math.calculus.differentiate","reason":"Antiderivatives reverse differentiation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Rates, accumulation, local approximation and elementary differential equations.","sourceIds":["calculus"],"stage":"ug-foundation","title":"Evaluate a definite integral"},{"alternatives":[],"applications":["general"],"clusterIds":["math.calculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Change bounds consistently or return to the original variable.","id":"math.calculus.substitution","misconception":"Changing the integrand without changing the differential is incomplete.","objective":"Transform an integral using a variable change and its differential.","recommended":[],"requires":[{"id":"math.calculus.integrate","reason":"The transformed expression must be integrated."},{"id":"math.calculus.chain-rule","reason":"Substitution reverses the chain rule."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Rates, accumulation, local approximation and elementary differential equations.","sourceIds":["calculus"],"stage":"ug-foundation","title":"Integrate by substitution"},{"alternatives":[],"applications":["general"],"clusterIds":["math.calculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Verify the result through differentiation.","id":"math.calculus.parts","misconception":"Choosing factors poorly can make the remaining integral harder.","objective":"Choose factors and apply integration by parts to simplify an integral.","recommended":[],"requires":[{"id":"math.calculus.product-rule","reason":"Integration by parts follows from the product derivative."},{"id":"math.calculus.integrate","reason":"One factor and the remaining expression need antiderivatives."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Rates, accumulation, local approximation and elementary differential equations.","sourceIds":["calculus"],"stage":"ug-foundation","title":"Integrate a product by parts"},{"alternatives":[],"applications":["general"],"clusterIds":["math.calculus"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Compare errors for two orders and two distances from the reference.","id":"math.calculus.taylor","misconception":"Higher order does not justify extrapolation outside useful convergence behavior.","objective":"Build a local polynomial from successive derivatives at an expansion point.","recommended":[],"requires":[{"id":"math.calculus.differentiate","reason":"Taylor coefficients use successive derivatives."},{"id":"math.calculus.local-linear","reason":"The tangent approximation is the first-order case."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Rates, accumulation, local approximation and elementary differential equations.","sourceIds":["calculus"],"stage":"ug-foundation","title":"Construct a finite Taylor approximation"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Reconstruct magnitude and direction from the components.","id":"math.vector.components","misconception":"A vector requires a frame as well as a magnitude.","objective":"Express a planar displacement as signed components in a stated frame.","recommended":[],"requires":[{"id":"math.trig.right-triangle","reason":"Trigonometric projection gives the component lengths."},{"id":"math.geometry.coordinates","reason":"Component signs follow the coordinate axes."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Resolve a vector into components"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Interpret a zero result as orthogonality for nonzero vectors.","id":"math.vector.dot","misconception":"A dot product produces a scalar, not a vector.","objective":"Compute a scalar projection-related product of two vectors.","recommended":[],"requires":[{"id":"math.vector.components","reason":"The product pairs corresponding vector components."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Calculate a dot product"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check sign reversal when the operands are exchanged.","id":"math.vector.cross","misconception":"The cross product is order-dependent.","objective":"Compute a perpendicular vector with direction fixed by the right-hand rule.","recommended":[],"requires":[{"id":"math.vector.components","reason":"All three components are needed for the perpendicular result."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Calculate a cross product"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Predict output shape before calculating entries.","id":"math.matrix.multiply","misconception":"Matrix multiplication is not elementwise multiplication and generally does not commute.","objective":"Compute matrix products while checking inner dimensions.","recommended":[],"requires":[{"id":"math.vector.dot","reason":"Each output entry is a row-column dot product."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Multiply compatible matrices"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Identify a free variable or an inconsistent row when one occurs.","id":"math.linear.elimination","misconception":"Row operations preserve solutions but arbitrary column changes do not.","objective":"Use row operations to solve a finite linear system.","recommended":[],"requires":[{"id":"math.algebra.system","reason":"Elimination generalizes the cancellation used for two equations."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Solve a system by elimination"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Relate free variables to nullspace dimension.","id":"math.linear.rank","misconception":"A square matrix can still have dependent columns.","objective":"Identify independent columns and solve for vectors mapped to zero.","recommended":[],"requires":[{"id":"math.linear.elimination","reason":"Pivots and free variables reveal rank and nullspace."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Determine rank and nullspace"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check spanning and independence before assigning unique coordinates.","id":"math.linear.basis","misconception":"Coordinates change with the basis even when the vector does not.","objective":"Represent a vector as a linear combination of basis vectors.","recommended":[],"requires":[{"id":"math.linear.rank","reason":"A basis must be independent and span the intended space."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Express coordinates in a basis"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check the identity product and explain why numerical solves avoid explicit inversion.","id":"math.matrix.inverse","misconception":"Not every square matrix has an inverse.","objective":"Determine invertibility and solve a small invertible system.","recommended":[],"requires":[{"id":"math.linear.rank","reason":"Full rank is required for a square inverse."},{"id":"math.matrix.multiply","reason":"The inverse is verified by a product yielding identity."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Use a matrix inverse appropriately"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Verify the residual is orthogonal to the fitted subspace.","id":"math.linear.projection","misconception":"The residual is orthogonal to the subspace, not generally to the original vector.","objective":"Compute an orthogonal projection and the residual vector.","recommended":[],"requires":[{"id":"math.vector.dot","reason":"Orthogonality is checked with dot products."},{"id":"math.linear.basis","reason":"The target subspace needs a spanning representation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Project onto a subspace"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Report fitted parameters and residuals for an overdetermined dataset.","id":"math.linear.least-squares","misconception":"A least-squares fit need not pass through every observation.","objective":"Construct a design matrix and minimize the squared residual norm.","recommended":[],"requires":[{"id":"math.linear.projection","reason":"The fit projects observations onto the column space."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Form a linear least-squares fit"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check reconstruction and solve the triangular system.","id":"math.linear.qr","misconception":"An orthogonal factor is inverted by transpose, not elementwise reciprocal.","objective":"Factor a full-column-rank matrix into orthogonal and triangular factors to solve a fit.","recommended":[],"requires":[{"id":"math.linear.least-squares","reason":"QR computes the minimizer of the residual norm."},{"id":"math.linear.elimination","reason":"The triangular factor requires back substitution."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Solve least squares using QR"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Verify an eigenpair by multiplying and compare with a general vector.","id":"math.linear.eigen","misconception":"Most vectors are not eigenvectors of a given matrix.","objective":"Compute a scalar and nonzero vector satisfying Av = lambda v.","recommended":[],"requires":[{"id":"math.matrix.multiply","reason":"The defining equation compares a matrix action with scalar scaling."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Find eigenpairs"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Use eigenvalues or a factorization and distinguish semidefinite from definite.","id":"math.linear.positive-definite","misconception":"Positive entries do not guarantee positive definiteness.","objective":"Determine whether a symmetric matrix defines a positive quadratic form.","recommended":[],"requires":[{"id":"math.linear.eigen","reason":"Eigenvalue signs characterize a real symmetric quadratic form."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Test a quadratic form for positivity"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Identify a nearly unobservable direction from a small singular value.","id":"math.linear.svd","misconception":"Singular values are not generally the matrix eigenvalues.","objective":"Use singular values and singular vectors to describe stretching and rank.","recommended":[],"requires":[{"id":"math.linear.eigen","reason":"Singular directions can be related to eigenvectors of the Gram matrices."},{"id":"math.matrix.multiply","reason":"The factorized transformations must be composed in order."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Interpret a singular value decomposition"},{"alternatives":[],"applications":["general"],"clusterIds":["math.linear-algebra"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Report the rank threshold and explain its effect on a small singular direction.","id":"math.linear.pseudoinverse","misconception":"A pseudoinverse does not recover information absent from a rank-deficient system.","objective":"Use a thresholded SVD to obtain a minimum-norm least-squares solution.","recommended":[],"requires":[{"id":"math.linear.svd","reason":"Reciprocal retained singular values define the pseudoinverse."},{"id":"math.linear.least-squares","reason":"Residual minimization determines what solution is being requested."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Finite-dimensional linear models used by geometry, dynamics and estimation.","sourceIds":["linear","multivariable"],"stage":"ug-foundation","title":"Solve with a pseudoinverse"},{"alternatives":[],"applications":["general"],"clusterIds":["math.multivariable"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"State which inputs remain fixed in a multivariable sensor relation.","id":"math.calculus.partial","misconception":"A partial derivative does not allow all inputs to vary simultaneously.","objective":"Differentiate with respect to one input while holding the others fixed.","recommended":[],"requires":[{"id":"math.calculus.differentiate","reason":"Each selected input uses ordinary derivative rules."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local vector models, error-aware calculation and numerical solution methods.","sourceIds":["multivariable","calculus","linear"],"stage":"ug-advanced","title":"Calculate a partial derivative"},{"alternatives":[],"applications":["general"],"clusterIds":["math.multivariable"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Compare directions using the gradient dot direction.","id":"math.calculus.gradient","misconception":"The gradient depends on the coordinate scale and metric.","objective":"Assemble partial derivatives into a vector and use it for a directional rate.","recommended":[],"requires":[{"id":"math.calculus.partial","reason":"Gradient entries are partial derivatives."},{"id":"math.vector.dot","reason":"Directional rate is a dot product with a direction vector."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local vector models, error-aware calculation and numerical solution methods.","sourceIds":["multivariable","calculus","linear"],"stage":"ug-advanced","title":"Construct a gradient"},{"alternatives":[],"applications":["general"],"clusterIds":["math.multivariable"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Predict the output perturbation for a small input change and check dimensions.","id":"math.calculus.jacobian","misconception":"Rows correspond to outputs and columns to inputs.","objective":"Build the matrix of output partial derivatives with respect to input coordinates.","recommended":[],"requires":[{"id":"math.calculus.partial","reason":"Each matrix entry is an output-input partial derivative."},{"id":"math.matrix.multiply","reason":"The matrix maps input perturbations to output perturbations."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local vector models, error-aware calculation and numerical solution methods.","sourceIds":["multivariable","calculus","linear"],"stage":"ug-advanced","title":"Construct a Jacobian"},{"alternatives":[],"applications":["general"],"clusterIds":["math.multivariable"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Identify an indefinite saddle using the symmetric Hessian.","id":"math.calculus.hessian","misconception":"Zero gradient with positive semidefinite Hessian is not always a strict minimum.","objective":"Compute second partial derivatives and classify local quadratic curvature.","recommended":[],"requires":[{"id":"math.calculus.gradient","reason":"The Hessian differentiates the gradient."},{"id":"math.linear.positive-definite","reason":"Curvature classification depends on the quadratic form signs."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local vector models, error-aware calculation and numerical solution methods.","sourceIds":["multivariable","calculus","linear"],"stage":"ug-advanced","title":"Use a Hessian to inspect curvature"},{"alternatives":[],"applications":["general"],"clusterIds":["math.multivariable"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Sketch the region and verify the integration order matches its bounds.","id":"math.calculus.multiple-integral","misconception":"Bounds may depend on the outer integration variable.","objective":"Set bounds and integrate a density over a planar region.","recommended":[],"requires":[{"id":"math.calculus.integrate","reason":"Iterated integration performs one definite integral at a time."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local vector models, error-aware calculation and numerical solution methods.","sourceIds":["multivariable","calculus","linear"],"stage":"ug-advanced","title":"Evaluate a double integral"},{"alternatives":[],"applications":["general"],"clusterIds":["math.multivariable"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain the sign change when path orientation reverses.","id":"math.calculus.line-integral","misconception":"The answer can depend on the path as well as endpoints.","objective":"Parametrize a curve and compute the accumulated tangential field contribution.","recommended":[],"requires":[{"id":"math.calculus.integrate","reason":"A parametrized path produces a scalar definite integral."},{"id":"math.vector.dot","reason":"The tangent component comes from a dot product."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local vector models, error-aware calculation and numerical solution methods.","sourceIds":["multivariable","calculus","linear"],"stage":"ug-advanced","title":"Integrate a vector field along a path"},{"alternatives":[],"applications":["general"],"clusterIds":["math.multivariable"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Compare a stable and unstable expression for the same mathematical value.","id":"math.numeric.floating-error","misconception":"More printed digits do not establish more accurate information.","objective":"Distinguish representation, rounding and cancellation error in a calculation.","recommended":[],"requires":[{"id":"math.number.scientific","reason":"Finite precision limits the representable significant digits."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local vector models, error-aware calculation and numerical solution methods.","sourceIds":["multivariable","calculus","linear"],"stage":"ug-advanced","title":"Diagnose floating-point error"},{"alternatives":[],"applications":["general"],"clusterIds":["math.multivariable"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Compare perturbed solutions for well- and ill-conditioned matrices.","id":"math.numeric.condition","misconception":"A small residual can coexist with a large solution error.","objective":"Use a condition estimate to explain input-error amplification.","recommended":[],"requires":[{"id":"math.linear.svd","reason":"Small singular directions amplify perturbations."},{"id":"math.numeric.floating-error","reason":"Rounding is one source of input and arithmetic perturbations."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local vector models, error-aware calculation and numerical solution methods.","sourceIds":["multivariable","calculus","linear"],"stage":"ug-advanced","title":"Assess sensitivity of a linear solve"},{"alternatives":[],"applications":["general"],"clusterIds":["math.multivariable"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"State the bracket invariant after several iterations.","id":"math.numeric.root-bisection","misconception":"Opposite signs require continuity to guarantee an intervening root.","objective":"Apply bisection to a continuous sign-changing interval and bound the remaining uncertainty.","recommended":[],"requires":[{"id":"math.calculus.limit","reason":"Continuity justifies a root inside a sign-changing bracket."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local vector models, error-aware calculation and numerical solution methods.","sourceIds":["multivariable","calculus","linear"],"stage":"ug-advanced","title":"Bracket a scalar root"},{"alternatives":[],"applications":["general"],"clusterIds":["math.multivariable"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Show the tangent intersection and check for a small derivative.","id":"math.numeric.newton","misconception":"Newton iteration need not converge from an arbitrary initial point.","objective":"Use a local derivative to update a root estimate and identify a failed step.","recommended":[],"requires":[{"id":"math.calculus.local-linear","reason":"The update solves the local tangent approximation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local vector models, error-aware calculation and numerical solution methods.","sourceIds":["multivariable","calculus","linear"],"stage":"ug-advanced","title":"Take a Newton root step"},{"alternatives":[],"applications":["general"],"clusterIds":["math.multivariable"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Compare two resolutions and explain why agreement alone is not a proof.","id":"math.numeric.quadrature","misconception":"Sampling too coarsely can miss a narrow feature.","objective":"Use a trapezoidal rule and refine the interval spacing to assess error.","recommended":[],"requires":[{"id":"math.calculus.riemann","reason":"Quadrature approximates accumulated area from sampled values."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local vector models, error-aware calculation and numerical solution methods.","sourceIds":["multivariable","calculus","linear"],"stage":"ug-advanced","title":"Estimate an integral numerically"},{"alternatives":[],"applications":["general"],"clusterIds":["math.differential-equations"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Substitute the solution into both the equation and initial value.","id":"math.ode.separable","misconception":"A differential equation usually describes a family until an initial value is specified.","objective":"Separate variables, integrate and enforce an initial condition.","recommended":[],"requires":[{"id":"math.calculus.integrate","reason":"Separated rates require integration."},{"id":"math.function.logarithm","reason":"Exponential growth and decay solutions use logarithmic antiderivatives."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Derive and solve continuous state models, distinct from introductory supplied-formula use.","sourceIds":["ode"],"stage":"ug-advanced","title":"Solve a separable first-order equation"},{"alternatives":[],"applications":["general"],"clusterIds":["math.differential-equations"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Separate the decaying initial contribution from the forced response.","id":"math.ode.linear-first","misconception":"A constant forcing does not eliminate the transient.","objective":"Use an integrating factor to solve a first-order linear initial-value problem.","recommended":[],"requires":[{"id":"math.ode.separable","reason":"The homogeneous part is a first-order exponential evolution."},{"id":"math.calculus.product-rule","reason":"The integrating factor creates a product derivative."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Derive and solve continuous state models, distinct from introductory supplied-formula use.","sourceIds":["ode"],"stage":"ug-advanced","title":"Solve a driven first-order linear equation"},{"alternatives":[],"applications":["general"],"clusterIds":["math.differential-equations"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Relate real or complex roots to decay and oscillation.","id":"math.ode.second-order","misconception":"Oscillation does not necessarily imply instability.","objective":"Solve a constant-coefficient homogeneous equation and classify its root pattern.","recommended":[],"requires":[{"id":"math.algebra.quadratic","reason":"The characteristic equation determines the roots."},{"id":"math.complex.calculate","reason":"Underdamped responses use complex-conjugate roots."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Derive and solve continuous state models, distinct from introductory supplied-formula use.","sourceIds":["ode"],"stage":"ug-advanced","title":"Classify a second-order response"},{"alternatives":[],"applications":["general"],"clusterIds":["math.differential-equations"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"State the state, input and output dimensions.","id":"math.ode.state-space","misconception":"An output need not contain every internal state.","objective":"Introduce state variables to express a higher-order ODE as a first-order system.","recommended":[],"requires":[{"id":"math.ode.second-order","reason":"Position and derivative variables replace a higher-order equation."},{"id":"math.matrix.multiply","reason":"Matrix state notation must respect dimensions."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Derive and solve continuous state models, distinct from introductory supplied-formula use.","sourceIds":["ode"],"stage":"ug-advanced","title":"Convert an ODE to state form"},{"alternatives":[],"applications":["general"],"clusterIds":["math.differential-equations"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Compare two step sizes and detect numerical instability.","id":"math.ode.euler","misconception":"A stable physical model can be unstable under a large numerical step.","objective":"Advance an initial state using a derivative and fixed time step.","recommended":[],"requires":[{"id":"math.ode.state-space","reason":"The state derivative supplies the numerical increment."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Derive and solve continuous state models, distinct from introductory supplied-formula use.","sourceIds":["ode"],"stage":"ug-advanced","title":"Integrate a state with Euler steps"},{"alternatives":[],"applications":["general"],"clusterIds":["math.differential-equations"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Report the chosen step and a convergence check.","id":"math.ode.runge-kutta","misconception":"A higher-order integrator still needs an appropriate step size.","objective":"Compute a Runge-Kutta update and compare it with an Euler update.","recommended":[],"requires":[{"id":"math.ode.euler","reason":"Intermediate-slope integration improves the basic state increment."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Derive and solve continuous state models, distinct from introductory supplied-formula use.","sourceIds":["ode"],"stage":"ug-advanced","title":"Use intermediate slopes for integration"},{"alternatives":[],"applications":["general"],"clusterIds":["math.differential-equations"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Verify the initial transition is identity and compare with a small numerical step.","id":"math.ode.matrix-exponential","misconception":"Exponentiating each matrix entry does not give a matrix exponential.","objective":"Use a matrix exponential to compute a constant linear system transition.","recommended":[],"requires":[{"id":"math.ode.state-space","reason":"The linear state matrix defines the transition."},{"id":"math.linear.eigen","reason":"Eigenmodes explain exponential state evolution."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Derive and solve continuous state models, distinct from introductory supplied-formula use.","sourceIds":["ode"],"stage":"ug-advanced","title":"Propagate a linear state exactly"},{"alternatives":[],"applications":["general"],"clusterIds":["math.probability-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"State the conditioning event and its nonzero probability.","id":"math.probability.conditional","misconception":"P(A given B) is not generally P(B given A).","objective":"Restrict a probability model to an observed event and renormalize.","recommended":[],"requires":[{"id":"math.probability.finite","reason":"Conditional probability renormalizes event proportions."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probability distributions, uncertainty summaries, estimation and controlled comparisons.","sourceIds":["probability"],"stage":"ug-foundation","title":"Compute a conditional probability"},{"alternatives":[],"applications":["general"],"clusterIds":["math.probability-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Show why a rare event can remain unlikely after a noisy positive test.","id":"math.probability.bayes","misconception":"Likelihood is not already a posterior probability.","objective":"Combine a prior and likelihood to calculate a normalized posterior.","recommended":[],"requires":[{"id":"math.probability.conditional","reason":"Bayes relates conditional probabilities in opposite directions."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probability distributions, uncertainty summaries, estimation and controlled comparisons.","sourceIds":["probability"],"stage":"ug-foundation","title":"Update a hypothesis with Bayes’ rule"},{"alternatives":[],"applications":["general"],"clusterIds":["math.probability-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Give an example where uncorrelated variables are still dependent.","id":"math.probability.independence","misconception":"Zero covariance does not generally prove independence.","objective":"Check whether a joint probability factorizes into marginal probabilities.","recommended":[],"requires":[{"id":"math.probability.conditional","reason":"Independence means conditioning does not change the relevant probability."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probability distributions, uncertainty summaries, estimation and controlled comparisons.","sourceIds":["probability"],"stage":"ug-foundation","title":"Test an independence claim"},{"alternatives":[],"applications":["general"],"clusterIds":["math.probability-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Distinguish a long-run mean from a guaranteed single outcome.","id":"math.probability.expectation","misconception":"An expectation need not be an attainable observation.","objective":"Compute the probability-weighted average of a discrete random variable.","recommended":[],"requires":[{"id":"math.stats.mean","reason":"Expected value generalizes averaging to unequal weights."},{"id":"math.probability.finite","reason":"The weights must form a valid probability model."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probability distributions, uncertainty summaries, estimation and controlled comparisons.","sourceIds":["probability"],"stage":"ug-foundation","title":"Calculate an expected value"},{"alternatives":[],"applications":["general"],"clusterIds":["math.probability-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"State squared units and obtain a standard deviation.","id":"math.probability.variance","misconception":"Variance is not mean absolute deviation.","objective":"Compute expected squared deviation from a mean.","recommended":[],"requires":[{"id":"math.probability.expectation","reason":"Variance is the expectation of a squared deviation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probability distributions, uncertainty summaries, estimation and controlled comparisons.","sourceIds":["probability"],"stage":"ug-foundation","title":"Calculate a variance"},{"alternatives":[],"applications":["general"],"clusterIds":["math.probability-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain why a density value may exceed one while interval probabilities may not.","id":"math.probability.density","misconception":"A density at a point is not a point probability.","objective":"Integrate a density over an interval to obtain its probability.","recommended":[],"requires":[{"id":"math.calculus.integrate","reason":"Continuous probability is accumulated density."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probability distributions, uncertainty summaries, estimation and controlled comparisons.","sourceIds":["probability"],"stage":"ug-foundation","title":"Use a continuous probability density"},{"alternatives":[],"applications":["general"],"clusterIds":["math.probability-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Identify the mean and standard deviation with units.","id":"math.probability.gaussian","misconception":"A Gaussian model is an assumption, not a property of every sensor.","objective":"Convert a Gaussian value to a standardized deviation and interpret an interval.","recommended":[],"requires":[{"id":"math.probability.variance","reason":"Standardization scales deviations by their standard deviation."},{"id":"math.probability.density","reason":"Interval coverage comes from integrating the Gaussian density."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probability distributions, uncertainty summaries, estimation and controlled comparisons.","sourceIds":["probability"],"stage":"ug-foundation","title":"Standardize a Gaussian measurement"},{"alternatives":[],"applications":["general"],"clusterIds":["math.probability-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Interpret off-diagonal signs and diagonal units.","id":"math.stats.covariance","misconception":"Covariance entries depend on the measurement units.","objective":"Summarize joint deviations of vector observations in a symmetric covariance matrix.","recommended":[],"requires":[{"id":"math.probability.variance","reason":"Diagonal covariance entries are variances."},{"id":"math.matrix.multiply","reason":"Outer-product accumulation forms the matrix."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probability distributions, uncertainty summaries, estimation and controlled comparisons.","sourceIds":["probability"],"stage":"ug-foundation","title":"Compute a covariance matrix"},{"alternatives":[],"applications":["general"],"clusterIds":["math.probability-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Write the log likelihood and identify its assumptions.","id":"math.stats.likelihood","misconception":"Maximum likelihood optimizes parameter plausibility under a chosen model.","objective":"Choose parameters maximizing the probability model of observed data.","recommended":[],"requires":[{"id":"math.probability.density","reason":"A likelihood evaluates the observation density under candidate parameters."},{"id":"math.function.logarithm","reason":"Logs turn independent likelihood products into sums."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probability distributions, uncertainty summaries, estimation and controlled comparisons.","sourceIds":["probability"],"stage":"ug-foundation","title":"Fit a model by maximum likelihood"},{"alternatives":[],"applications":["general"],"clusterIds":["math.probability-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Describe repeated-sampling coverage without assigning a probability to a fixed parameter.","id":"math.stats.confidence-interval","misconception":"A confidence level is a procedure property, not the fraction of samples inside the interval.","objective":"Construct and interpret an interval using a stated sampling model.","recommended":[],"requires":[{"id":"math.probability.gaussian","reason":"A basic interval uses a standardized sampling distribution."},{"id":"math.stats.sample-bias","reason":"A biased sampling scheme undermines the intended inference."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probability distributions, uncertainty summaries, estimation and controlled comparisons.","sourceIds":["probability"],"stage":"ug-foundation","title":"Interpret a confidence interval"},{"alternatives":[],"applications":["general"],"clusterIds":["math.probability-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Distinguish significance, effect size and practical relevance.","id":"math.stats.hypothesis-test","misconception":"A large p-value does not prove the null hypothesis true.","objective":"Compare a test statistic to its null distribution and report the decision with limitations.","recommended":[],"requires":[{"id":"math.stats.confidence-interval","reason":"Both procedures quantify uncertainty under a sampling model."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probability distributions, uncertainty summaries, estimation and controlled comparisons.","sourceIds":["probability"],"stage":"ug-foundation","title":"Evaluate a statistical test"},{"alternatives":[],"applications":["general"],"clusterIds":["math.optimization"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain which local optimum can be certified global and under what assumptions.","id":"math.optimization.convexity","misconception":"A visually bowl-shaped slice does not establish multivariable convexity.","objective":"Verify a convex set or function using its defining condition or curvature.","recommended":[],"requires":[{"id":"math.calculus.hessian","reason":"Second-order tests assess convex curvature on the domain."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic and numerical tools for constrained estimation, control and learning.","sourceIds":["convex","linear","probability","modern-robotics"],"stage":"graduate","title":"Check a convexity argument"},{"alternatives":[],"applications":["general"],"clusterIds":["math.optimization"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Compare objective values before and after and diagnose an excessive step.","id":"math.optimization.gradient-step","misconception":"The negative gradient direction does not guarantee decrease for any step length.","objective":"Update parameters along a negative gradient with an explicit step size.","recommended":[],"requires":[{"id":"math.calculus.gradient","reason":"The gradient determines the local descent direction."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic and numerical tools for constrained estimation, control and learning.","sourceIds":["convex","linear","probability","modern-robotics"],"stage":"graduate","title":"Take and assess a gradient descent step"},{"alternatives":[],"applications":["general"],"clusterIds":["math.optimization"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain a damping or line-search response to indefinite curvature.","id":"math.optimization.newton-step","misconception":"A Newton step is not always a descent step.","objective":"Solve the Hessian linear system and check whether the result is a descent direction.","recommended":[],"requires":[{"id":"math.calculus.hessian","reason":"The local quadratic model supplies curvature."},{"id":"math.linear.elimination","reason":"The step is obtained by solving a linear system."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic and numerical tools for constrained estimation, control and learning.","sourceIds":["convex","linear","probability","modern-robotics"],"stage":"graduate","title":"Compute a multivariable Newton step"},{"alternatives":[{"label":"Least-squares solver","options":[{"id":"math.linear.qr","reason":"QR solves a full-column-rank local least-squares system."},{"id":"math.linear.pseudoinverse","reason":"A thresholded SVD also handles rank-deficient local systems."}],"reason":"The local residual model needs a numerically suitable least-squares solve."}],"applications":["general"],"clusterIds":["math.optimization"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check residual reduction and explain the approximation to curvature.","id":"math.optimization.gauss-newton","misconception":"Linearizing residuals does not make the original objective globally quadratic.","objective":"Linearize a residual vector and solve its local least-squares subproblem.","recommended":[],"requires":[{"id":"math.calculus.jacobian","reason":"Residual sensitivities form the local linear model."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic and numerical tools for constrained estimation, control and learning.","sourceIds":["convex","linear","probability","modern-robotics"],"stage":"graduate","title":"Construct a Gauss-Newton update"},{"alternatives":[],"applications":["general"],"clusterIds":["math.optimization"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"State the regularity assumptions and distinguish candidates from verified optima.","id":"math.optimization.lagrange","misconception":"Multipliers do not remove the original feasibility requirements.","objective":"Construct a Lagrangian and derive stationarity with equality feasibility.","recommended":[],"requires":[{"id":"math.calculus.gradient","reason":"Stationarity differentiates the Lagrangian."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic and numerical tools for constrained estimation, control and learning.","sourceIds":["convex","linear","probability","modern-robotics"],"stage":"graduate","title":"Form equality-constrained stationarity conditions"},{"alternatives":[],"applications":["general"],"clusterIds":["math.optimization"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Identify active inequalities and state when the conditions are sufficient.","id":"math.optimization.kkt","misconception":"Complementary slackness alone does not establish optimality.","objective":"Check stationarity, primal and dual feasibility, and complementary slackness.","recommended":[],"requires":[{"id":"math.optimization.lagrange","reason":"KKT extends equality-constrained stationarity with inequality multipliers."},{"id":"math.optimization.convexity","reason":"Convexity helps determine sufficiency rather than mere necessity."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic and numerical tools for constrained estimation, control and learning.","sourceIds":["convex","linear","probability","modern-robotics"],"stage":"graduate","title":"Check KKT conditions"},{"alternatives":[],"applications":["general"],"clusterIds":["math.optimization"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check matrix symmetry, dimensions and feasibility.","id":"math.optimization.qp","misconception":"A quadratic objective is convex only with appropriate Hessian definiteness.","objective":"Express a quadratic objective and linear constraints in a solver-ready form.","recommended":[],"requires":[{"id":"math.linear.positive-definite","reason":"The Hessian sign determines objective convexity."},{"id":"math.optimization.kkt","reason":"Optimality conditions explain active constraints in the QP."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic and numerical tools for constrained estimation, control and learning.","sourceIds":["convex","linear","probability","modern-robotics"],"stage":"graduate","title":"Form a quadratic program"},{"alternatives":[],"applications":["general"],"clusterIds":["math.optimization"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Explain the residual scale and the resulting influence change.","id":"math.optimization.robust-loss","misconception":"Robust losses do not repair incorrect data association automatically.","objective":"Compare squared and robust penalties on inliers and outliers.","recommended":[],"requires":[{"id":"math.optimization.gauss-newton","reason":"Residual optimization provides the baseline being reweighted."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic and numerical tools for constrained estimation, control and learning.","sourceIds":["convex","linear","probability","modern-robotics"],"stage":"graduate","title":"Apply a robust residual loss"},{"alternatives":[],"applications":["general"],"clusterIds":["math.optimization"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Report sample count and diagnose dependence or rare-event undercoverage.","id":"math.probability.monte-carlo","misconception":"A stable-looking sample average need not cover rare but important outcomes.","objective":"Use independent samples to estimate an expected quantity and its sampling error.","recommended":[],"requires":[{"id":"math.probability.expectation","reason":"The estimate approximates a probability-weighted average."},{"id":"math.probability.variance","reason":"Sampling variability determines precision."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic and numerical tools for constrained estimation, control and learning.","sourceIds":["convex","linear","probability","modern-robotics"],"stage":"graduate","title":"Estimate an expectation by sampling"},{"alternatives":[],"applications":["general"],"clusterIds":["math.optimization"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check normalization and distinguish a distribution from a sampled trajectory.","id":"math.probability.markov","misconception":"The Markov property is an assumption about sufficient state.","objective":"Multiply a state probability vector by a consistently oriented transition matrix.","recommended":[],"requires":[{"id":"math.matrix.multiply","reason":"Transition probabilities combine through a matrix-vector operation."},{"id":"math.probability.conditional","reason":"Each transition is conditioned on the present state."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic and numerical tools for constrained estimation, control and learning.","sourceIds":["convex","linear","probability","modern-robotics"],"stage":"graduate","title":"Propagate a Markov distribution"},{"alternatives":[],"applications":["general"],"clusterIds":["math.optimization"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Compare concentrated and diffuse distributions over the same outcomes.","id":"math.probability.entropy","misconception":"Entropy measures model uncertainty, not physical risk by itself.","objective":"Compute entropy of a discrete distribution and interpret information gain.","recommended":[],"requires":[{"id":"math.probability.expectation","reason":"Entropy averages negative log probabilities."},{"id":"math.function.logarithm","reason":"The logarithm base determines the information unit."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic and numerical tools for constrained estimation, control and learning.","sourceIds":["convex","linear","probability","modern-robotics"],"stage":"graduate","title":"Calculate uncertainty in bits"},{"alternatives":[],"applications":["general"],"clusterIds":["math.optimization"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Compare left and right perturbation conventions for a stated frame.","id":"math.geometry.lie-algebra","misconception":"Adding matrix entries can violate rotation orthogonality.","objective":"Map a small rotation vector through a skew matrix and exponential to a rotation update.","recommended":[],"requires":[{"id":"math.vector.cross","reason":"The skew operator encodes cross products."},{"id":"math.ode.matrix-exponential","reason":"An exponential maps the local generator into a finite rotation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic and numerical tools for constrained estimation, control and learning.","sourceIds":["convex","linear","probability","modern-robotics"],"stage":"graduate","title":"Use a local rotation perturbation"},{"alternatives":[],"applications":["general"],"clusterIds":["math.optimization"],"coverage":{"entries":[],"status":"uncovered"},"domain":"math","evidence":"Check dimensions and compare the approximation with sampled perturbations.","id":"math.stats.uncertainty-propagation","misconception":"The linear covariance approximation can fail for large nonlinear uncertainty.","objective":"Use a Jacobian to approximate output covariance from input covariance.","recommended":[],"requires":[{"id":"math.calculus.jacobian","reason":"The Jacobian transports small input deviations."},{"id":"math.stats.covariance","reason":"Input and output spread are represented by covariance matrices."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Analytic and numerical tools for constrained estimation, control and learning.","sourceIds":["convex","linear","probability","modern-robotics"],"stage":"graduate","title":"Propagate uncertainty through a local map"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.measurement"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Distinguish a duration reading from a distance reading in a short record.","id":"physics.measure.quantity","misconception":"A bare number does not identify what was measured.","objective":"Record a numerical observation with its unit, instrument and measured object.","recommended":[],"requires":[],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Observe, quantify and compare small physical systems without inferring hidden causes from a single reading.","sourceIds":["mechanics","ohm"],"stage":"g6-8","title":"Label a measured quantity"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.measurement"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Identify the smallest division and avoid invented digits.","id":"physics.measure.resolution","misconception":"Display precision is not the same as accuracy.","objective":"Estimate a measurement at the precision supported by a displayed scale.","recommended":[],"requires":[{"id":"physics.measure.quantity","reason":"The reading must name its quantity and unit."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Observe, quantify and compare small physical systems without inferring hidden causes from a single reading.","sourceIds":["mechanics","ohm"],"stage":"g6-8","title":"Read an instrument scale"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.measurement"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner holds source voltage and LED orientation steady, records predicted and measured current for three resistor choices, then changes only the source voltage in a separate comparison. The exit claim identifies the controlled and changed quantities.","mission":"ohm","nodeId":"physics.experiment.control","section":"Control the experiment","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Brightness Bargain","url":"spark.html#ohm"}],"status":"practiced"},"domain":"physics","evidence":"Write a before/after table and name the deliberately changed input.","id":"physics.experiment.control","misconception":"Changing several inputs prevents a unique explanation of their separate effects.","objective":"Compare two outcomes while holding specified competing factors constant.","recommended":[],"requires":[{"id":"physics.measure.quantity","reason":"The comparison requires the same measured output in both trials."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Observe, quantify and compare small physical systems without inferring hidden causes from a single reading.","sourceIds":["mechanics","ohm"],"stage":"g6-8","title":"Change one experimental factor"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.measurement"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain how heating could change a fixed-resistance prediction.","id":"physics.model.assumption","misconception":"A model matching one experiment does not make it universally exact.","objective":"Identify one omitted real effect that could change a simplified prediction.","recommended":[],"requires":[{"id":"physics.experiment.control","reason":"A controlled comparison can expose an effect excluded by the model."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Observe, quantify and compare small physical systems without inferring hidden causes from a single reading.","sourceIds":["mechanics","ohm"],"stage":"g6-8","title":"State a model limitation"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.measurement"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Distinguish travel distance from signed displacement.","id":"physics.motion.speed","misconception":"Average speed need not describe any instantaneous speed.","objective":"Divide traveled distance by elapsed time with consistent units.","recommended":[],"requires":[{"id":"math.ratio.unit-rate","reason":"Speed is distance per unit time."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Observe, quantify and compare small physical systems without inferring hidden causes from a single reading.","sourceIds":["mechanics","ohm"],"stage":"g6-8","title":"Calculate average speed"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.measurement"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Draw opposing forces and calculate the net force.","id":"physics.force.balance","misconception":"Balanced forces do not require the object to be at rest.","objective":"Combine signed pushes and pulls acting on one object.","recommended":[],"requires":[{"id":"math.number.signed-add","reason":"Opposing forces combine as signed quantities."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Observe, quantify and compare small physical systems without inferring hidden causes from a single reading.","sourceIds":["mechanics","ohm"],"stage":"g6-8","title":"Determine a net collinear force"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.measurement"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The lesson traces energy from the source through the circuit to light and heat in the lamp. Its quiz and exit explanation ask the learner to distinguish this transfer from charge continuing around the path.","mission":"loop","nodeId":"physics.energy.transfer","section":"Charge keeps going; energy changes","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Case of the Dark Lamp","url":"spark.html#loop"}],"status":"practiced"},"domain":"physics","evidence":"Explain where a lamp’s input energy appears as light and heating.","id":"physics.energy.transfer","misconception":"Energy transfer does not mean charge is consumed.","objective":"Identify a source, receiver and energy-transfer pathway in a device.","recommended":[],"requires":[],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Observe, quantify and compare small physical systems without inferring hidden causes from a single reading.","sourceIds":["mechanics","ohm"],"stage":"g6-8","title":"Trace an energy transfer"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.measurement"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain the role of metal strips and the plastic between them.","id":"physics.material.conductor","misconception":"An insulator blocks ordinary conduction without implying that fields cannot cross it.","objective":"Predict whether a stated material provides an electrical path in an elementary circuit.","recommended":[],"requires":[],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Observe, quantify and compare small physical systems without inferring hidden causes from a single reading.","sourceIds":["mechanics","ohm"],"stage":"g6-8","title":"Distinguish conductors and insulators"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.dc-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner traces internally connected strips and rails, tests equal-node probe readings, and restores a return wire at an equivalent hole.","mission":"loop","nodeId":"elec.breadboard.connectivity","section":"The breadboard’s secret map","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Case of the Dark Lamp","url":"spark.html#loop"}],"status":"practiced"},"domain":"physics","evidence":"Trace two connected holes and a pair separated by the center gap.","id":"elec.breadboard.connectivity","misconception":"Adjacent holes are not necessarily electrically connected.","objective":"Identify holes joined by a supplied breadboard internal-connection map.","recommended":[],"requires":[{"id":"physics.material.conductor","reason":"Conductive strips create connections while insulation separates groups."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Trace breadboard connectivity"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.dc-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner closes, opens, and restores the lamp path, predicting and recording current in all three cases.","mission":"loop","nodeId":"elec.circuit.closed-loop","section":"A whole path","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Case of the Dark Lamp","url":"spark.html#loop"}],"status":"practiced"},"domain":"physics","evidence":"Locate the missing return connection in an open circuit.","id":"elec.circuit.closed-loop","misconception":"One wire from the source to the load does not complete the circuit.","objective":"Trace a complete conducting route through source and load.","recommended":[],"requires":[{"id":"physics.material.conductor","reason":"Every segment of the intended route must conduct."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Identify a closed load circuit"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.dc-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The lesson contrasts a direct rail-to-rail bypass with a useful load path and asks the learner to trace the on-screen fault warning.","mission":"loop","nodeId":"elec.circuit.short","section":"A whole path","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Case of the Dark Lamp","url":"spark.html#loop"}],"status":"practiced"},"domain":"physics","evidence":"Mark the bypass on a diagram and explain why the load is no longer controlling current.","id":"elec.circuit.short","misconception":"A short circuit means an unintended low-resistance path, not merely a short wire.","objective":"Identify a low-resistance route that bypasses the intended load.","recommended":[],"requires":[{"id":"elec.circuit.closed-loop","reason":"The bypass must be traced as a complete source route."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Recognize a short path"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.dc-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The virtual probes compare two holes on one node and across the supply; the learner records zero volts versus five volts, including an open-circuit case.","mission":"loop","nodeId":"elec.voltage.two-points","section":"Your first two measurements","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Case of the Dark Lamp","url":"spark.html#loop"}],"status":"practiced"},"domain":"physics","evidence":"Reverse the virtual probes and explain the sign change.","id":"elec.voltage.two-points","misconception":"A voltage is a difference between points, not a flow through one point.","objective":"Identify the two reference points and polarity of a voltage reading.","recommended":[],"requires":[{"id":"physics.measure.quantity","reason":"The reading needs a voltage unit and two stated endpoints."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Interpret voltage between two points"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.dc-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The lesson distinguishes two-point voltage probes from calculated current through a component and compares current when its return path is removed.","mission":"loop","nodeId":"elec.current.path","section":"Your first two measurements","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Case of the Dark Lamp","url":"spark.html#loop"}],"status":"practiced"},"domain":"physics","evidence":"Mark the measurement section and explain why steady series current is not used up.","id":"elec.current.path","misconception":"A load transfers energy without consuming charge.","objective":"Identify current as the rate of charge crossing a selected circuit section.","recommended":[],"requires":[{"id":"elec.circuit.closed-loop","reason":"A steady current needs a complete route."},{"id":"math.ratio.unit-rate","reason":"Current is charge per unit time."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Interpret current through a path"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.dc-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The mission explicitly teaches I = V/R, holds voltage steady, and asks for predictions and current measurements with three resistor values.","mission":"ohm","nodeId":"elec.ohm.solve-current","section":"Meet V, I, and R","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Brightness Bargain","url":"spark.html#ohm"}],"status":"practiced"},"domain":"physics","evidence":"Label the resistor voltage and convert the answer only after division.","id":"elec.ohm.solve-current","misconception":"Source voltage applies directly only when it is also the resistor’s voltage.","objective":"Use supplied I = V/R with volts and ohms to calculate amperes.","recommended":[],"requires":[{"id":"elec.voltage.two-points","reason":"The numerator is the voltage across the selected resistor."},{"id":"elec.current.path","reason":"The output describes current through that resistor."},{"id":"math.number.decimal-divide","reason":"The numerical prediction is a quotient."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Calculate resistor current"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.dc-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner uses the supplied R = V/I relation with a target current, then compares the calculated value with the stated 330-ohm starting resistor.","mission":"ohm","nodeId":"elec.ohm.solve-resistance","section":"Design from a target","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Brightness Bargain","url":"spark.html#ohm"}],"status":"practiced"},"domain":"physics","evidence":"Find a resistance from a milliampere target after unit conversion.","id":"elec.ohm.solve-resistance","misconception":"A milliampere number cannot be substituted as if it were amperes.","objective":"Use supplied R = V/I with current expressed in amperes.","recommended":[],"requires":[{"id":"elec.voltage.two-points","reason":"The voltage belongs to the same two-terminal element."},{"id":"math.units.milliamp-to-amp","reason":"The formula requires the target current in amperes."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Calculate resistance from voltage and current"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.dc-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Multiply amperes by ohms and state the voltage polarity convention.","id":"elec.ohm.solve-voltage","misconception":"Voltage drop is not an amount of current lost.","objective":"Use supplied V = IR for the stated resistor and through-current.","recommended":[],"requires":[{"id":"elec.current.path","reason":"The current must be the current through this resistor."},{"id":"math.number.decimal-calculate","reason":"The voltage follows from the current-resistance product."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Calculate a resistor voltage drop"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.dc-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner predicts and compares current when resistance changes at fixed supply voltage, including the twice-resistance/half-current relationship.","mission":"ohm","nodeId":"elec.ohm.inverse-change","section":"Meet V, I, and R","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Brightness Bargain","url":"spark.html#ohm"}],"status":"practiced"},"domain":"physics","evidence":"Explain why doubling resistance halves current under the ohmic model.","id":"elec.ohm.inverse-change","misconception":"The inverse comparison fails if the voltage also changes.","objective":"Predict the inverse current change when resistance changes at fixed voltage.","recommended":[],"requires":[{"id":"elec.ohm.solve-current","reason":"The inverse relation follows from resistance in the denominator."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Predict current after a resistance change"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.dc-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The mission distinguishes the resistor’s Ohm-law relation from the LED voltage-drop model and explains why paper and simulator currents differ.","mission":"ohm","nodeId":"elec.ohm.model-scope","section":"Control the experiment","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Brightness Bargain","url":"spark.html#ohm"}],"status":"practiced"},"domain":"physics","evidence":"Explain why one fixed R does not model every LED operating point.","id":"elec.ohm.model-scope","misconception":"V = IR with constant R is not a universal component law.","objective":"Distinguish an ohmic resistor approximation from diode or heating-dependent behavior.","recommended":[],"requires":[{"id":"elec.ohm.solve-current","reason":"The assumption concerns the constant resistance used in that prediction."},{"id":"physics.model.assumption","reason":"A model must state effects it excludes."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Identify when a fixed-resistor model applies"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.dc-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner reverses the virtual LED, observes blocked current, and restores its anode/cathode orientation in the stated model.","mission":"led","nodeId":"elec.led.polarity","section":"An LED has a direction","sourcePath":"course/spark-course.mjs","status":"practiced","title":"A Glow with a Bodyguard","url":"spark.html#led"}],"status":"practiced"},"domain":"physics","evidence":"Predict the idealized result of reversing the LED.","id":"elec.led.polarity","misconception":"The forward direction and ratings must come from the component information.","objective":"Orient an LED using a supplied anode/cathode diagram and forward-current convention.","recommended":[],"requires":[{"id":"elec.current.path","reason":"LED orientation is defined relative to intended current."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Identify LED polarity"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.dc-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner subtracts the supplied LED drop from the supply voltage and checks that resistor and LED drops add to the source voltage.","mission":"led","nodeId":"elec.led.resistor-drop","section":"Share the voltage","sourcePath":"course/spark-course.mjs","status":"practiced","title":"A Glow with a Bodyguard","url":"spark.html#led"}],"status":"practiced"},"domain":"physics","evidence":"Label the LED drop and resistor drop in the same series loop.","id":"elec.led.resistor-drop","misconception":"The resistor does not normally have the full supply voltage when an LED shares the loop.","objective":"Subtract a supplied LED forward drop from the supply voltage.","recommended":[],"requires":[{"id":"elec.voltage.two-points","reason":"Each drop spans the corresponding component endpoints."},{"id":"math.number.decimal-subtract","reason":"Subtracting the supplied forward drop leaves the resistor voltage."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Find the voltage left for an LED resistor"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.dc-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner predicts current in the fixed-drop LED-plus-series-resistor model, then compares the estimate with the simulator’s slightly different model.","mission":"led","nodeId":"elec.led.current-limit","section":"Share the voltage","sourcePath":"course/spark-course.mjs","status":"practiced","title":"A Glow with a Bodyguard","url":"spark.html#led"}],"status":"practiced"},"domain":"physics","evidence":"Find the resistor voltage first, then report amperes and milliamperes.","id":"elec.led.current-limit","misconception":"The resistor limits the same current that passes through the LED; it does not consume current.","objective":"Calculate LED series current from a supplied forward drop, supply voltage and resistor value.","recommended":[],"requires":[{"id":"elec.led.resistor-drop","reason":"The current calculation uses only the voltage remaining across the resistor."},{"id":"elec.ohm.solve-current","reason":"Dividing resistor voltage by resistance predicts the shared current."},{"id":"math.units.amp-to-milliamp","reason":"The small computed ampere value must be reported in milliamperes."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Calculate current through a resistor-protected LED"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.dc-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The worked example calculates a resistor from the voltage left after the LED drop and a target current. Learners choose a resistor using their comparison table; the stretch asks for the resistor needed at a new 5 mA target.","mission":"ohm","nodeId":"elec.led.choose-resistor","section":"Design from a target","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Brightness Bargain","url":"spark.html#ohm"}],"status":"practiced"},"domain":"physics","evidence":"Select a stated available resistor and verify its predicted current against the target.","id":"elec.led.choose-resistor","misconception":"A teaching model’s LED current limit is not a universal component rating.","objective":"Calculate a series resistance from a supplied forward drop and allowed target current.","recommended":[],"requires":[{"id":"elec.led.resistor-drop","reason":"The design uses voltage remaining across the resistor."},{"id":"elec.ohm.solve-resistance","reason":"Resistance follows from resistor voltage and target current."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Ideal low-voltage circuit diagrams and simulated breadboards; no mains or physical repair work.","sourceIds":["ohm","breadboard"],"stage":"g6-8","title":"Choose an LED current-limiting resistor"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.circuit-models"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner measures two components in one series path and explains that the same steady current passes through both.","mission":"series","nodeId":"elec.series.current","section":"Series: one path","sourcePath":"course/spark-course.mjs","status":"practiced","title":"One Road, Two Roads","url":"spark.html#series"}],"status":"practiced"},"domain":"physics","evidence":"Explain why a second series component carries the same steady current.","id":"elec.series.current","misconception":"The first component does not take its share of current and pass the remainder.","objective":"Determine whether two components share one unbranched current path.","recommended":[],"requires":[{"id":"elec.current.path","reason":"Current counts charge passing along the same unbranched path."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Steady ideal circuits and explicitly supplied RC and sensor formulas.","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Identify shared series current"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.circuit-models"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The series investigation adds the two fixed resistances and uses the resulting total to predict the shared current.","mission":"series","nodeId":"elec.series.resistance","section":"Series: one path","sourcePath":"course/spark-course.mjs","status":"practiced","title":"One Road, Two Roads","url":"spark.html#series"}],"status":"practiced"},"domain":"physics","evidence":"Calculate the equivalent resistance and resulting source current.","id":"elec.series.resistance","misconception":"Only sharing one unbranched path justifies adding series resistances.","objective":"Add resistances for components joined in one unbranched series route.","recommended":[],"requires":[{"id":"elec.series.current","reason":"The same current flows through each voltage drop."},{"id":"elec.ohm.solve-current","reason":"Equivalent resistance predicts the common current."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Steady ideal circuits and explicitly supplied RC and sensor formulas.","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Combine series resistances"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.circuit-models"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner traces two shared endpoints and compares component voltage in series and parallel, finding the full supply across each parallel branch.","mission":"series","nodeId":"elec.parallel.voltage","section":"Parallel: two paths","sourcePath":"course/spark-course.mjs","status":"practiced","title":"One Road, Two Roads","url":"spark.html#series"}],"status":"practiced"},"domain":"physics","evidence":"Label identical branch endpoints despite different drawing positions.","id":"elec.parallel.voltage","misconception":"Components drawn side by side are not necessarily parallel.","objective":"Recognize branches connected to the same pair of circuit nodes.","recommended":[],"requires":[{"id":"elec.voltage.two-points","reason":"The same endpoints define the same voltage difference."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Steady ideal circuits and explicitly supplied RC and sensor formulas.","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Identify equal parallel voltage"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.circuit-models"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The investigation calculates each branch current and sums them to obtain the total source current in the parallel model.","mission":"series","nodeId":"elec.parallel.current","section":"Parallel: two paths","sourcePath":"course/spark-course.mjs","status":"practiced","title":"One Road, Two Roads","url":"spark.html#series"}],"status":"practiced"},"domain":"physics","evidence":"Check that branch currents add at their junction.","id":"elec.parallel.current","misconception":"Parallel branches do not necessarily carry equal currents.","objective":"Calculate each resistive branch current and sum the source current.","recommended":[],"requires":[{"id":"elec.parallel.voltage","reason":"Each branch uses the same node-to-node voltage."},{"id":"elec.ohm.solve-current","reason":"Each branch resistance determines its own current."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Steady ideal circuits and explicitly supplied RC and sensor formulas.","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Sum parallel branch currents"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.circuit-models"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The worked investigation uses volts times amperes to calculate load power and distinguishes watts from units of current.","mission":"series","nodeId":"elec.power.calculate","section":"Where the energy goes","sourcePath":"course/spark-course.mjs","status":"practiced","title":"One Road, Two Roads","url":"spark.html#series"}],"status":"practiced"},"domain":"physics","evidence":"Convert milliamperes before multiplying and label watts.","id":"elec.power.calculate","misconception":"Watts measure an energy-transfer rate, not charge flow.","objective":"Use supplied P = VI with amperes to find a load’s power.","recommended":[],"requires":[{"id":"math.units.milliamp-to-amp","reason":"The product must use amperes to yield watts."},{"id":"physics.energy.transfer","reason":"Power describes the rate of the identified energy transfer."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Steady ideal circuits and explicitly supplied RC and sensor formulas.","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Calculate electrical power"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.circuit-models"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The Python exercise multiplies power by duration and changes the duration to show energy changes while current and power stay fixed.","mission":"series","nodeId":"elec.energy.calculate","section":"Where the energy goes","sourcePath":"course/spark-course.mjs","status":"practiced","title":"One Road, Two Roads","url":"spark.html#series"}],"status":"practiced"},"domain":"physics","evidence":"Distinguish power from the total energy of a longer run.","id":"elec.energy.calculate","misconception":"Equal power over different durations transfers different energy.","objective":"Use E = Pt for a constant-power interval and label joules.","recommended":[],"requires":[{"id":"elec.power.calculate","reason":"The power supplies the transfer rate for the interval."},{"id":"math.number.decimal-calculate","reason":"Rate times duration gives total energy."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Steady ideal circuits and explicitly supplied RC and sensor formulas.","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Calculate energy over a duration"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.circuit-models"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The lesson describes separated conductors and electric-field energy, including the insulating gap; it does not quantitatively assess stored charge or field energy.","mission":"capacitor","nodeId":"elec.capacitor.storage","section":"A capacitor stores energy","sourcePath":"course/spark-course.mjs","status":"introduced","title":"The Patient Voltage","url":"spark.html#capacitor"}],"status":"introduced"},"domain":"physics","evidence":"Explain why electrons do not cross the ideal insulating gap.","id":"elec.capacitor.storage","misconception":"A capacitor is not a reservoir of current flowing through its dielectric.","objective":"Describe separated plate charge and energy in the electric field.","recommended":[],"requires":[{"id":"physics.material.conductor","reason":"Conducting plates and insulating separation play different roles."},{"id":"physics.energy.transfer","reason":"Stored energy can later be transferred to another component."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Steady ideal circuits and explicitly supplied RC and sensor formulas.","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Explain capacitor energy storage"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.circuit-models"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner converts the supplied capacitance to farads, calculates RC in seconds, and changes a component to predict a new time scale.","mission":"capacitor","nodeId":"elec.rc.time-constant","section":"RC sets the pace","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Patient Voltage","url":"spark.html#capacitor"}],"status":"practiced"},"domain":"physics","evidence":"Convert a microfarad value before calculating RC.","id":"elec.rc.time-constant","misconception":"A microfarad numeral cannot be treated as a farad numeral.","objective":"Multiply resistance in ohms by capacitance in farads to obtain seconds.","recommended":[],"requires":[{"id":"math.units.metric-prefix","reason":"Capacitance must be expressed in farads."},{"id":"elec.capacitor.storage","reason":"Capacitance describes the storage element whose voltage changes."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Steady ideal circuits and explicitly supplied RC and sensor formulas.","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Calculate an RC time constant"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.circuit-models"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The code explains the supplied exponential charging expression and asks the learner to change capacitance and predict the resulting model behavior. Derivation is explicitly excluded.","mission":"capacitor","nodeId":"elec.rc.supplied-charge","section":"You do not need to derive this formula today","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Patient Voltage","url":"spark.html#capacitor"}],"status":"practiced"},"domain":"physics","evidence":"Substitute a stated elapsed time and use a supplied exponential evaluator to predict voltage.","id":"elec.rc.supplied-charge","misconception":"The exponential argument is the dimensionless ratio of time to RC.","objective":"Evaluate the supplied exponential V(t) = Vs(1 - exp(-t/(RC))) for charging from zero volts.","recommended":[{"id":"math.function.exponential","reason":"Repeated proportional decay explains the supplied expression’s curve shape."}],"requires":[{"id":"elec.rc.time-constant","reason":"Elapsed time must be divided by the RC time scale."},{"id":"math.algebra.substitute","reason":"The supplied expression accepts the stated time, resistance, capacitance and voltage."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Numerical use of the supplied ideal zero-initial-voltage exponential with a calculator or evaluator; deriving or solving its ODE is a separate competency.","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Evaluate a supplied RC exponential"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.circuit-models"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner predicts and records about 3.16 V after one RC at 5 V, then explains the remaining voltage gap. The quiz distinguishes a fraction of that gap from a fixed voltage increase.","mission":"capacitor","nodeId":"elec.rc.one-tau","section":"RC sets the pace","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Patient Voltage","url":"spark.html#capacitor"}],"status":"practiced"},"domain":"physics","evidence":"Explain how much of the final-voltage gap remains after one time constant.","id":"elec.rc.one-tau","misconception":"One time constant does not mean charging has finished.","objective":"Use the supplied 63.2% rule to predict charging voltage after one RC from zero volts.","recommended":[],"requires":[{"id":"elec.rc.time-constant","reason":"The RC product identifies the elapsed interval being considered."},{"id":"math.ratio.percent","reason":"The stated percentage is applied to the final-voltage gap."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Steady ideal circuits and explicitly supplied RC and sensor formulas.","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Interpret capacitor voltage after one time constant"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.circuit-models"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner doubles resistance while holding capacitance and supply fixed, checks the same voltage at twice the time, then repeats the reasoning with a doubled capacitance in the Python challenge.","mission":"capacitor","nodeId":"elec.rc.time-scale-change","section":"RC sets the pace","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Patient Voltage","url":"spark.html#capacitor"}],"status":"practiced"},"domain":"physics","evidence":"Compare the new and original RC products while holding supply voltage fixed.","id":"elec.rc.time-scale-change","misconception":"A longer RC changes the time scale, not the ideal final charging voltage.","objective":"Predict how doubling resistance or capacitance changes the time needed to reach the same charge fraction.","recommended":[],"requires":[{"id":"elec.rc.time-constant","reason":"The time scale is the resistance-capacitance product."},{"id":"math.ratio.proportion","reason":"Doubling one factor doubles the time constant."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Steady ideal circuits and explicitly supplied RC and sensor formulas.","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Predict an RC time-scale change"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.circuit-models"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner selects discharge mode, records the one-time-constant result, and explains why merely disconnecting a source does not create a discharge path.","mission":"capacitor","nodeId":"elec.rc.discharge-path","section":"Discharging still needs a path","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Patient Voltage","url":"spark.html#capacitor"}],"status":"practiced"},"domain":"physics","evidence":"Explain why removing a source alone does not specify the discharge behavior.","id":"elec.rc.discharge-path","misconception":"Disconnecting the supply does not necessarily discharge the capacitor.","objective":"Trace a resistor route between capacitor plates after a source is disconnected.","recommended":[],"requires":[{"id":"elec.circuit.closed-loop","reason":"The capacitor needs a complete external charge-transfer route."},{"id":"elec.capacitor.storage","reason":"The initial stored energy supplies the discharge."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Steady ideal circuits and explicitly supplied RC and sensor formulas.","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Identify a capacitor discharge route"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.circuit-models"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner evaluates the supplied unloaded-divider formula for three upper/lower resistance pairs and records the midpoint voltage relative to return.","mission":"sensor","nodeId":"elec.divider.calculate","section":"Read the middle of a divider","sourcePath":"course/spark-course.mjs","status":"practiced","title":"Read the Room","url":"spark.html#sensor"}],"status":"practiced"},"domain":"physics","evidence":"Identify upper and lower resistors and evaluate their midpoint voltage.","id":"elec.divider.calculate","misconception":"The numerator resistor is the one between output and the reference node.","objective":"Use supplied Vout = Vin Rlower/(Rupper + Rlower) relative to return.","recommended":[],"requires":[{"id":"elec.series.resistance","reason":"The series total appears in the denominator."},{"id":"elec.voltage.two-points","reason":"Output voltage is defined relative to return."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Steady ideal circuits and explicitly supplied RC and sensor formulas.","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Calculate an unloaded divider output"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.circuit-models"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner predicts and compares bright and dark resistance cases for an upper LDR and explains why darkness lowers this particular divider output.","mission":"sensor","nodeId":"elec.divider.direction","section":"Follow the direction, not a guess","sourcePath":"course/spark-course.mjs","status":"practiced","title":"Read the Room","url":"spark.html#sensor"}],"status":"practiced"},"domain":"physics","evidence":"Compare bright and dark cases for the stated upper/lower placement.","id":"elec.divider.direction","misconception":"Swapping sensor placement can reverse the voltage response.","objective":"Predict whether output rises or falls when a specified LDR resistance changes.","recommended":[],"requires":[{"id":"elec.divider.calculate","reason":"The formula shows whether the changing resistance is in the numerator."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Steady ideal circuits and explicitly supplied RC and sensor formulas.","sourceIds":["circuits","ohm"],"stage":"g6-8","title":"Predict a light-divider response"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.digital-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner classifies supplied test voltages, including both exact thresholds and the undefined middle range, using the panel’s stated guarantees.","mission":"digital","nodeId":"elec.digital.threshold","section":"Digital labels describe voltages","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Uncertain Button","url":"spark.html#digital"}],"status":"practiced"},"domain":"physics","evidence":"Classify values below, at and between the stated boundaries.","id":"elec.digital.threshold","misconception":"A voltage in the undefined range is not a guaranteed third digital state.","objective":"Assign low, high or undefined from supplied input thresholds.","recommended":[],"requires":[{"id":"elec.voltage.two-points","reason":"The input must be measured relative to the correct reference."},{"id":"math.number.signed-order","reason":"The classification compares the value with two boundaries."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supplied logic thresholds and ideal switching models; actual devices require their own electrical specifications.","sourceIds":["circuits"],"stage":"g6-8","title":"Classify a voltage using thresholds"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.digital-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The investigation separates an unknown floating input from a measured middle voltage and compares the floating case with a released, pulled-down button.","mission":"digital","nodeId":"elec.digital.floating","section":"Floating is a different uncertainty","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Uncertain Button","url":"spark.html#digital"}],"status":"practiced"},"domain":"physics","evidence":"Explain how floating connectivity differs from a measured midrange voltage.","id":"elec.digital.floating","misconception":"Floating describes a connection condition, not one fixed voltage.","objective":"Identify an input lacking a defined conductive bias path.","recommended":[],"requires":[{"id":"elec.circuit.closed-loop","reason":"The input bias must have a traceable electrical route."},{"id":"elec.digital.threshold","reason":"Undefined describes a threshold classification of a measured voltage."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supplied logic thresholds and ideal switching models; actual devices require their own electrical specifications.","sourceIds":["circuits"],"stage":"g6-8","title":"Distinguish floating from undefined"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.digital-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner measures open and pressed button cases and explains how the resistor establishes a reference when the source switch is open.","mission":"digital","nodeId":"elec.digital.pull-down","section":"A pull-down supplies a default","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Uncertain Button","url":"spark.html#digital"}],"status":"practiced"},"domain":"physics","evidence":"Predict the pressed and released states of a supplied button diagram.","id":"elec.digital.pull-down","misconception":"The pull-down is not a second power supply.","objective":"Trace how a pull-down sets a released button input near return.","recommended":[],"requires":[{"id":"elec.digital.floating","reason":"The resistor provides the missing bias route."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supplied logic thresholds and ideal switching models; actual devices require their own electrical specifications.","sourceIds":["circuits"],"stage":"g6-8","title":"Explain a pull-down resistor"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.digital-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner checks all four Boolean input pairs and verifies that only true/true makes AND true.","mission":"logic","nodeId":"elec.logic.and","section":"AND needs both","sourcePath":"course/spark-course.mjs","status":"practiced","title":"Reachy’s Rule Machine","url":"spark.html#logic"}],"status":"practiced"},"domain":"physics","evidence":"Fill all four rows and identify the only true case.","id":"elec.logic.and","misconception":"AND requires both inputs, not at least one.","objective":"Determine an AND output for every pair of Boolean inputs.","recommended":[],"requires":[{"id":"math.probability.sample-space","reason":"Enumerating distinct input pairs prevents missing a truth-table case."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supplied logic thresholds and ideal switching models; actual devices require their own electrical specifications.","sourceIds":["circuits"],"stage":"g6-8","title":"Evaluate an AND gate"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.digital-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner checks all four input pairs for inclusive OR, including true/true, rather than assuming exclusive OR.","mission":"logic","nodeId":"elec.logic.or","section":"OR accepts either; NOT flips one","sourcePath":"course/spark-course.mjs","status":"practiced","title":"Reachy’s Rule Machine","url":"spark.html#logic"}],"status":"practiced"},"domain":"physics","evidence":"Explain why the both-true case also produces true.","id":"elec.logic.or","misconception":"Inclusive OR differs from exactly-one exclusive OR.","objective":"Determine an OR output for every pair of Boolean inputs.","recommended":[],"requires":[{"id":"math.probability.sample-space","reason":"The complete input-pair space includes the both-true case."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supplied logic thresholds and ideal switching models; actual devices require their own electrical specifications.","sourceIds":["circuits"],"stage":"g6-8","title":"Evaluate an inclusive OR gate"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.digital-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner tests NOT A and changes B to verify that negation depends only on its single named input.","mission":"logic","nodeId":"elec.logic.not","section":"OR accepts either; NOT flips one","sourcePath":"course/spark-course.mjs","status":"practiced","title":"Reachy’s Rule Machine","url":"spark.html#logic"}],"status":"practiced"},"domain":"physics","evidence":"State both input-output pairs.","id":"elec.logic.not","misconception":"NOT reverses Boolean truth, not a numerical sign.","objective":"Invert each possible Boolean input.","recommended":[],"requires":[{"id":"elec.digital.threshold","reason":"The logic operation acts on a classified Boolean value."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supplied logic thresholds and ideal switching models; actual devices require their own electrical specifications.","sourceIds":["circuits"],"stage":"g6-8","title":"Evaluate a NOT gate"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.digital-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner toggles an ideal switch and explains that its control signal selects a state while the source supplies the LED’s energy.","mission":"driver","nodeId":"elec.driver.control-vs-power","section":"A control path and a power path","sourcePath":"course/spark-course.mjs","status":"practiced","title":"A Small Signal, a Powered Light","url":"spark.html#driver"}],"status":"practiced"},"domain":"physics","evidence":"Explain why a small logic signal can control a separately powered lamp.","id":"elec.driver.control-vs-power","misconception":"The control signal does not provide all the load energy.","objective":"Trace the signal that commands a switch separately from the source that powers its load.","recommended":[],"requires":[{"id":"elec.circuit.closed-loop","reason":"The load energy needs its own complete current route."},{"id":"physics.energy.transfer","reason":"Power must be traced to its source."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supplied logic thresholds and ideal switching models; actual devices require their own electrical specifications.","sourceIds":["circuits"],"stage":"g6-8","title":"Separate a driver’s control and load paths"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.digital-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner predicts ON and OFF portions of a stated pulse period and compares several duty-cycle settings.","mission":"driver","nodeId":"elec.pwm.duty","section":"PWM shares time","sourcePath":"course/spark-course.mjs","status":"practiced","title":"A Small Signal, a Powered Light","url":"spark.html#driver"}],"status":"practiced"},"domain":"physics","evidence":"Compare waveforms with equal period and different on-times.","id":"elec.pwm.duty","misconception":"Duty cycle is distinct from pulse frequency.","objective":"Divide on-time by period and express the ratio as a percentage.","recommended":[],"requires":[{"id":"math.ratio.percent","reason":"Duty is the on-time fraction expressed as percent."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supplied logic thresholds and ideal switching models; actual devices require their own electrical specifications.","sourceIds":["circuits"],"stage":"g6-8","title":"Calculate PWM duty cycle"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["elec.digital-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The investigation distinguishes unchanged ON-current pulses from their changing time average and rejects a constant half-voltage interpretation.","mission":"driver","nodeId":"elec.pwm.waveform","section":"Average is not instantaneous","sourcePath":"course/spark-course.mjs","status":"practiced","title":"A Small Signal, a Powered Light","url":"spark.html#driver"}],"status":"practiced"},"domain":"physics","evidence":"Explain why an average value does not imply a constant intermediate voltage.","id":"elec.pwm.waveform","misconception":"A 50% duty signal alternates levels rather than staying at half supply.","objective":"Predict the instantaneous high/low waveform behind a stated duty cycle.","recommended":[],"requires":[{"id":"elec.pwm.duty","reason":"Duty specifies the proportion of each period spent high."},{"id":"elec.digital.threshold","reason":"The individual pulse levels correspond to digital states."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supplied logic thresholds and ideal switching models; actual devices require their own electrical specifications.","sourceIds":["circuits"],"stage":"g6-8","title":"Distinguish PWM pulses from a constant voltage"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.mechanics-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain a round trip with nonzero speed and zero average velocity.","id":"physics.motion.velocity","misconception":"Speed and signed velocity are not interchangeable.","objective":"Divide displacement by elapsed time along a declared axis.","recommended":[],"requires":[{"id":"physics.motion.speed","reason":"The rate calculation is similar but uses displacement rather than path length."},{"id":"math.number.signed-subtract","reason":"Displacement is the signed difference between positions."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Algebraic physical models with declared directions and idealizations.","sourceIds":["mechanics","waves","thermal"],"stage":"g9-10","title":"Calculate signed average velocity"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.mechanics-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Interpret a negative acceleration for a positive-moving object.","id":"physics.motion.acceleration","misconception":"Negative acceleration does not always mean slowing down.","objective":"Divide a velocity change by its elapsed time.","recommended":[],"requires":[{"id":"physics.motion.velocity","reason":"Acceleration describes a change in signed velocity."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Algebraic physical models with declared directions and idealizations.","sourceIds":["mechanics","waves","thermal"],"stage":"g9-10","title":"Calculate average acceleration"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.mechanics-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Draw the chosen positive direction and include every force on the object.","id":"physics.force.newton","misconception":"An individual applied force is not necessarily the net force.","objective":"Use net force and mass to predict acceleration in one dimension.","recommended":[],"requires":[{"id":"physics.force.balance","reason":"All forces combine before applying the law."},{"id":"physics.motion.acceleration","reason":"The predicted output is acceleration, not velocity."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Algebraic physical models with declared directions and idealizations.","sourceIds":["mechanics","waves","thermal"],"stage":"g9-10","title":"Apply Newton’s second law"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.mechanics-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Separate the two force diagrams and explain why the pair does not cancel on one object.","id":"physics.force.pairs","misconception":"An action-reaction pair acts on different bodies.","objective":"Identify equal opposite interaction forces acting on different objects.","recommended":[],"requires":[{"id":"physics.force.balance","reason":"A net-force diagram must contain forces on just the selected body."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Algebraic physical models with declared directions and idealizations.","sourceIds":["mechanics","waves","thermal"],"stage":"g9-10","title":"Identify an action-reaction pair"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.mechanics-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain why static friction can be smaller than its maximum.","id":"physics.force.friction","misconception":"Static friction is not always equal to mu times normal force.","objective":"Determine the appropriate friction bound or sliding force for a stated contact.","recommended":[],"requires":[{"id":"physics.force.newton","reason":"The contact force must be consistent with the acceleration or equilibrium."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Algebraic physical models with declared directions and idealizations.","sourceIds":["mechanics","waves","thermal"],"stage":"g9-10","title":"Choose a static or kinetic friction model"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.mechanics-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain why a perpendicular force does no work on that displacement.","id":"physics.energy.work","misconception":"A force can act while doing zero work.","objective":"Calculate the component of force along a displacement times that displacement.","recommended":[],"requires":[{"id":"physics.energy.transfer","reason":"Work is a mechanism of energy transfer."},{"id":"math.trig.right-triangle","reason":"The force component along displacement requires projection."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Algebraic physical models with declared directions and idealizations.","sourceIds":["mechanics","waves","thermal"],"stage":"g9-10","title":"Calculate work by a constant force"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.mechanics-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Predict how doubling speed changes energy.","id":"physics.energy.kinetic","misconception":"Kinetic energy grows with the square of speed.","objective":"Use mass and speed to compute translational kinetic energy.","recommended":[],"requires":[{"id":"math.algebra.substitute","reason":"The formula squares speed before multiplying by half mass."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Algebraic physical models with declared directions and idealizations.","sourceIds":["mechanics","waves","thermal"],"stage":"g9-10","title":"Calculate kinetic energy"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.mechanics-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain the arbitrary reference height and meaningful energy difference.","id":"physics.energy.gravity","misconception":"Potential energy depends on the chosen reference; its change is the relevant quantity.","objective":"Compute a near-surface potential-energy change from mass and height difference.","recommended":[],"requires":[{"id":"physics.energy.transfer","reason":"Raising an object stores transferable energy."},{"id":"math.number.signed-subtract","reason":"The height difference has a direction and sign."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Algebraic physical models with declared directions and idealizations.","sourceIds":["mechanics","waves","thermal"],"stage":"g9-10","title":"Calculate gravitational energy change"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.mechanics-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Compare equal impulses delivered over different durations.","id":"physics.momentum.impulse","misconception":"Equal impulse does not require equal peak force.","objective":"Calculate momentum change from a force-time interval.","recommended":[],"requires":[{"id":"physics.force.newton","reason":"Force changes motion rather than merely sustaining velocity."},{"id":"physics.motion.velocity","reason":"Momentum includes signed velocity."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Algebraic physical models with declared directions and idealizations.","sourceIds":["mechanics","waves","thermal"],"stage":"g9-10","title":"Relate impulse to momentum change"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.mechanics-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Check the reciprocal relation and distinguish amplitude from frequency.","id":"physics.waves.frequency","misconception":"A louder wave need not have a higher frequency.","objective":"Convert between cycles per second and duration per cycle.","recommended":[],"requires":[{"id":"math.ratio.unit-rate","reason":"Frequency counts cycles per unit time."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Algebraic physical models with declared directions and idealizations.","sourceIds":["mechanics","waves","thermal"],"stage":"g9-10","title":"Relate frequency and period"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.mechanics-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Keep spatial wavelength separate from temporal period.","id":"physics.waves.speed","misconception":"Wave speed and particle oscillation speed describe different motion.","objective":"Use v = f lambda to determine a missing wave quantity.","recommended":[],"requires":[{"id":"physics.waves.frequency","reason":"The frequency gives cycles per second."},{"id":"math.algebra.substitute","reason":"The supplied relation links the three wave quantities."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Algebraic physical models with declared directions and idealizations.","sourceIds":["mechanics","waves","thermal"],"stage":"g9-10","title":"Relate wavelength, frequency and wave speed"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.mechanics-school"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Compare equal energy inputs to objects with different heat capacities.","id":"physics.thermal.heat-vs-temperature","misconception":"Temperature is not an amount of stored heat.","objective":"Explain why transferred energy and temperature change are different quantities.","recommended":[],"requires":[{"id":"physics.energy.transfer","reason":"Heat describes energy transfer across a temperature difference."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Algebraic physical models with declared directions and idealizations.","sourceIds":["mechanics","waves","thermal"],"stage":"g9-10","title":"Distinguish heat and temperature"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.preuniversity"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Write two component balance equations with correct signs.","id":"physics.force.free-body","misconception":"A motion arrow is not an additional force.","objective":"Resolve all forces on an isolated object into a consistent coordinate frame.","recommended":[],"requires":[{"id":"math.vector.components","reason":"Force balance requires vector components."},{"id":"physics.force.pairs","reason":"Only forces on the chosen object belong in its diagram."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Vector mechanics, rotation, material response, fields and elementary optics.","sourceIds":["mechanics","fields","waves","thermal"],"stage":"g11-12","title":"Construct a two-dimensional force diagram"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.preuniversity"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain why changing the pivot changes the torque value.","id":"physics.rotation.torque","misconception":"Torque uses perpendicular distance to the force line, not always the rod length.","objective":"Compute signed torque using the perpendicular lever arm.","recommended":[],"requires":[{"id":"physics.energy.work","reason":"Force-direction reasoning distinguishes useful and perpendicular components."},{"id":"math.trig.right-triangle","reason":"The geometry supplies a perpendicular lever arm."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Vector mechanics, rotation, material response, fields and elementary optics.","sourceIds":["mechanics","fields","waves","thermal"],"stage":"g11-12","title":"Calculate torque about a pivot"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.preuniversity"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Analyze a loaded beam with a specified support arrangement.","id":"physics.rotation.equilibrium","misconception":"Zero net force alone does not prevent angular acceleration.","objective":"Verify both net force and net torque vanish for a resting rigid body.","recommended":[],"requires":[{"id":"physics.force.free-body","reason":"The force balance must include support reactions."},{"id":"physics.rotation.torque","reason":"Rotational balance needs torque about a common pivot."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Vector mechanics, rotation, material response, fields and elementary optics.","sourceIds":["mechanics","fields","waves","thermal"],"stage":"g11-12","title":"Check static force and torque balance"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.preuniversity"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Compare two mass arrangements with the same total mass.","id":"physics.rotation.inertia","misconception":"Rotational inertia depends on mass distribution and the chosen axis.","objective":"Sum mass times squared distance from a specified rotation axis.","recommended":[],"requires":[{"id":"math.algebra.substitute","reason":"Each mass-distance contribution must use a squared radius."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Vector mechanics, rotation, material response, fields and elementary optics.","sourceIds":["mechanics","fields","waves","thermal"],"stage":"g11-12","title":"Calculate a discrete moment of inertia"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.preuniversity"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"State why the calculation requires radians.","id":"physics.rotation.angular-motion","misconception":"Points on a rigid rotor share angular speed but not tangential speed.","objective":"Convert angular speed or acceleration into tangential quantities at a radius.","recommended":[],"requires":[{"id":"math.trig.radians","reason":"Arc-length relations use radian measure."},{"id":"physics.motion.velocity","reason":"Tangential velocity is a linear motion quantity."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Vector mechanics, rotation, material response, fields and elementary optics.","sourceIds":["mechanics","fields","waves","thermal"],"stage":"g11-12","title":"Relate angular and tangential motion"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.preuniversity"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Identify the range where a linear spring approximation is intended.","id":"physics.material.spring","misconception":"The restoring force opposes displacement from equilibrium.","objective":"Calculate restoring force from signed extension and stiffness.","recommended":[],"requires":[{"id":"physics.force.newton","reason":"The calculated force must have a direction in the motion equation."},{"id":"physics.model.assumption","reason":"The spring law is an approximation with a limited range."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Vector mechanics, rotation, material response, fields and elementary optics.","sourceIds":["mechanics","fields","waves","thermal"],"stage":"g11-12","title":"Apply a linear spring model"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.preuniversity"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Report engineering stress in force-per-area units and state the assumed uniform loading.","id":"physics.material.stress-strain","misconception":"Stress is a force intensity rather than total force.","objective":"Normalize axial load by the original load-bearing cross-sectional area.","recommended":[],"requires":[{"id":"math.geometry.area","reason":"Stress requires the load-bearing cross-sectional area."},{"id":"math.ratio.unit-rate","reason":"Load is normalized by area."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Vector mechanics, rotation, material response, fields and elementary optics.","sourceIds":["mechanics","fields","waves","thermal"],"stage":"g11-12","title":"Calculate axial stress"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.preuniversity"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Report a dimensionless extension ratio and distinguish it from displacement.","id":"physics.material.strain","misconception":"Equal extensions produce different strains when original lengths differ.","objective":"Normalize a length change by the original length.","recommended":[],"requires":[{"id":"math.number.decimal-subtract","reason":"The extension is a difference between final and original length."},{"id":"math.ratio.unit-rate","reason":"Length change is normalized by original length."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Vector mechanics, rotation, material response, fields and elementary optics.","sourceIds":["mechanics","fields","waves","thermal"],"stage":"g11-12","title":"Calculate engineering strain"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.preuniversity"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain why a negative charge accelerates opposite the field direction.","id":"physics.field.electric-force","misconception":"Electric field direction is defined using a positive test charge.","objective":"Use a charge and field vector to determine force with direction.","recommended":[],"requires":[{"id":"math.vector.components","reason":"Field and force are vectors in a stated frame."},{"id":"math.number.signed-multiply","reason":"Charge sign determines reversal of the force vector."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Vector mechanics, rotation, material response, fields and elementary optics.","sourceIds":["mechanics","fields","waves","thermal"],"stage":"g11-12","title":"Calculate force in an electric field"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.preuniversity"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"State the sign convention for a positive or negative charge.","id":"physics.field.potential-energy","misconception":"Volts measure energy per charge rather than total energy.","objective":"Calculate energy change from charge and potential difference.","recommended":[],"requires":[{"id":"elec.voltage.two-points","reason":"The potential difference belongs to two specified locations."},{"id":"physics.energy.transfer","reason":"The calculated change is an energy amount."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Vector mechanics, rotation, material response, fields and elementary optics.","sourceIds":["mechanics","fields","waves","thermal"],"stage":"g11-12","title":"Relate electrical energy and voltage"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.preuniversity"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Measure angles from the normal and check for no real transmitted solution.","id":"physics.optics.refraction","misconception":"Angles are measured from the normal, not the surface.","objective":"Use a supplied refractive-index relation to calculate a transmitted ray angle.","recommended":[],"requires":[{"id":"math.trig.right-triangle","reason":"The law compares sines of the incidence and transmission angles."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Vector mechanics, rotation, material response, fields and elementary optics.","sourceIds":["mechanics","fields","waves","thermal"],"stage":"g11-12","title":"Predict refraction at an interface"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.preuniversity"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"State that the relation excludes a phase change.","id":"physics.thermal.capacity","misconception":"A temperature change is not the same as an absolute temperature.","objective":"Use mass, heat capacity and temperature change to estimate transferred energy.","recommended":[],"requires":[{"id":"physics.thermal.heat-vs-temperature","reason":"The model links heat transfer to a temperature change."},{"id":"math.algebra.substitute","reason":"The quantities are combined in the supplied heat-capacity formula."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Vector mechanics, rotation, material response, fields and elementary optics.","sourceIds":["mechanics","fields","waves","thermal"],"stage":"g11-12","title":"Calculate a sensible heat change"},{"alternatives":[],"applications":["general"],"clusterIds":["elec.networks"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain a negative solved current relative to its assumed direction.","id":"elec.kirchhoff.current","misconception":"A negative branch current is a direction result, not an impossible current.","objective":"Choose branch-current signs and write charge-conserving KCL at a node.","recommended":[],"requires":[{"id":"elec.parallel.current","reason":"Branch currents must balance at a shared node."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Write a node current balance"},{"alternatives":[],"applications":["general"],"clusterIds":["elec.networks"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Keep traversal direction consistent across sources and resistors.","id":"elec.kirchhoff.voltage","misconception":"Signs follow the chosen traversal and component references.","objective":"Sum signed rises and drops around a lumped-circuit loop.","recommended":[],"requires":[{"id":"elec.voltage.two-points","reason":"Every loop term is a directed potential difference."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Write a loop voltage balance"},{"alternatives":[],"applications":["general"],"clusterIds":["elec.networks"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Recover branch currents and check one independent balance.","id":"elec.network.nodal","misconception":"Ground is a chosen reference and need not be Earth.","objective":"Choose a reference node and solve KCL equations for unknown node potentials.","recommended":[],"requires":[{"id":"elec.kirchhoff.current","reason":"Each unknown node supplies a current-balance equation."},{"id":"math.linear.elimination","reason":"The node equations form a linear system."},{"id":"elec.ohm.solve-current","reason":"Branch currents are expressed from node-voltage differences."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Solve a resistive network by node voltages"},{"alternatives":[],"applications":["general"],"clusterIds":["elec.networks"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Predict the loaded terminal voltage and preserve dependent sources correctly.","id":"elec.network.thevenin","misconception":"A voltage source is not disabled by opening it.","objective":"Determine a linear two-terminal network’s open-circuit voltage and equivalent resistance.","recommended":[],"requires":[{"id":"elec.network.nodal","reason":"Network solving determines the terminal behavior."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Construct a Thevenin equivalent"},{"alternatives":[],"applications":["general"],"clusterIds":["elec.networks"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Compare loaded and unloaded voltages and state an acceptable error.","id":"elec.divider.loading","misconception":"A measuring input can change the quantity being measured.","objective":"Recompute a divider when a finite input resistance loads its output.","recommended":[],"requires":[{"id":"elec.divider.calculate","reason":"The unloaded prediction supplies the baseline."},{"id":"elec.network.nodal","reason":"The added branch changes the midpoint current balance."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Quantify divider loading"},{"alternatives":[],"applications":["general"],"clusterIds":["elec.networks"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain voltage continuity for finite current.","id":"elec.capacitor.current-law","misconception":"An ideal capacitor is not an open circuit during all transients.","objective":"Relate capacitor current to the time derivative of its voltage.","recommended":[],"requires":[{"id":"math.calculus.derivative-definition","reason":"The law uses instantaneous voltage rate."},{"id":"elec.capacitor.storage","reason":"Changing stored plate charge produces current."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Use the capacitor current law"},{"alternatives":[],"applications":["general"],"clusterIds":["elec.networks"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain why abruptly interrupting current can create a large voltage.","id":"elec.inductor.voltage-law","misconception":"An inductor does not permit arbitrary instantaneous current jumps at finite voltage.","objective":"Relate inductor voltage to the time derivative of its current.","recommended":[],"requires":[{"id":"math.calculus.derivative-definition","reason":"The induced voltage depends on current rate."},{"id":"elec.current.path","reason":"The evolving state is branch current."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Use the inductor voltage law"},{"alternatives":[],"applications":["general"],"clusterIds":["elec.networks"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Show the governing equation with resistance, capacitance and source voltage identified.","id":"elec.rc.derive-ode","misconception":"Writing the governing equation is distinct from obtaining its time-dependent solution.","objective":"Combine loop balance and capacitor current to express the capacitor voltage derivative.","recommended":[],"requires":[{"id":"elec.capacitor.current-law","reason":"The storage law introduces the voltage derivative."},{"id":"elec.kirchhoff.voltage","reason":"Loop balance relates source, resistor and capacitor voltages."},{"id":"math.algebra.rearrange","reason":"The circuit relation must be isolated into a voltage-rate equation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Derive an RC charging equation"},{"alternatives":[],"applications":["general"],"clusterIds":["elec.networks"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Check the solution against its initial value and long-time source value.","id":"elec.rc.solve-ivp","misconception":"The initial voltage need not be zero.","objective":"Solve the first-order RC equation for a specified initial capacitor voltage.","recommended":[],"requires":[{"id":"elec.rc.derive-ode","reason":"The circuit model supplies the governing equation and its parameters."},{"id":"math.ode.linear-first","reason":"The driven first-order solution method enforces the specified initial value."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Solve an RC initial-value problem"},{"alternatives":[],"applications":["general"],"clusterIds":["elec.networks"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Combine a simple network and state the operating angular frequency.","id":"elec.ac.impedance","misconception":"An impedance depends on frequency and includes phase.","objective":"Represent resistor, capacitor and inductor behavior for sinusoidal steady state.","recommended":[],"requires":[{"id":"math.complex.polar","reason":"Magnitude and phase describe the complex voltage-current ratio."},{"id":"elec.capacitor.current-law","reason":"The capacitor impedance follows from its time-dependent law."},{"id":"elec.inductor.voltage-law","reason":"The inductor impedance follows from its derivative relation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Calculate complex impedance"},{"alternatives":[],"applications":["general"],"clusterIds":["elec.networks"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Check output saturation and whether negative feedback actually applies.","id":"elec.opamp.feedback","misconception":"Virtual short does not mean current flows between input pins.","objective":"Use an ideal op-amp model to solve a linear feedback amplifier.","recommended":[],"requires":[{"id":"elec.network.nodal","reason":"Amplifier node equations relate input and feedback branches."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Analyze an ideal negative-feedback amplifier"},{"alternatives":[],"applications":["general"],"clusterIds":["elec.networks"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Distinguish gate or base command from load current and dissipation.","id":"elec.transistor.operating-region","misconception":"A transistor is not an ideal switch at every control voltage.","objective":"Use supplied device curves or limits to assess an intended switching state.","recommended":[],"requires":[{"id":"elec.driver.control-vs-power","reason":"The control path and powered load path must be distinguished."},{"id":"elec.power.calculate","reason":"Voltage and current determine device dissipation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Check a transistor switch operating point"},{"alternatives":[],"applications":["general"],"clusterIds":["elec.networks"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Mark the transient current direction and explain the clamp function.","id":"elec.driver.flyback","misconception":"A flyback path manages stored energy rather than erasing it.","objective":"Identify a permitted recirculation path when an inductive load switch opens.","recommended":[],"requires":[{"id":"elec.inductor.voltage-law","reason":"Rapid current interruption creates the transient voltage."},{"id":"elec.led.polarity","reason":"A diode’s forward direction determines the recirculation route."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Trace inductive current during switch-off"},{"alternatives":[],"applications":["general"],"clusterIds":["elec.networks"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"State endpoint convention and distinguish resolution from accuracy.","id":"elec.sensor.adc","misconception":"More bits do not automatically reduce sensor bias.","objective":"Calculate quantization bins from a supplied reference and resolution convention.","recommended":[],"requires":[{"id":"elec.voltage.two-points","reason":"The input and reference must share an appropriate voltage reference."},{"id":"math.algebra.exponents","reason":"Bit depth determines the count of representable codes."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Lumped-component circuit analysis with stated reference nodes and operating assumptions.","sourceIds":["circuits","fields"],"stage":"ug-foundation","title":"Map voltage to an ADC code"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.signals"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain the difference between N samples and N minus one sample intervals.","id":"signal.sample.index-time","misconception":"Sample count and index span differ by one at included endpoints.","objective":"Convert a discrete sample index into elapsed time at a known sample rate.","recommended":[],"requires":[{"id":"physics.waves.frequency","reason":"The sampling period is the reciprocal of sample rate."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Time and frequency representations of signals used by robot sensors and control.","sourceIds":["signals","waves"],"stage":"ug-advanced","title":"Map sample index to time"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.signals"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Give a counterexample when scaling or additivity fails.","id":"signal.system.linearity","misconception":"A straight-looking response to one input is not proof of linearity.","objective":"Check superposition for a specified input-output operation.","recommended":[],"requires":[{"id":"math.proof.counterexample","reason":"One valid failed superposition case disproves the general property."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Time and frequency representations of signals used by robot sensors and control.","sourceIds":["signals","waves"],"stage":"ug-advanced","title":"Test a system for linearity"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.signals"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Show both operation orders on the same signal.","id":"signal.system.time-invariance","misconception":"Time invariance is distinct from whether an output changes over time.","objective":"Compare delaying an input with delaying the corresponding output.","recommended":[],"requires":[{"id":"signal.sample.index-time","reason":"A shift must be expressed consistently in time or sample indices."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Time and frequency representations of signals used by robot sensors and control.","sourceIds":["signals","waves"],"stage":"ug-advanced","title":"Test time invariance"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.signals"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Track valid index overlap and predict output length.","id":"signal.convolution.discrete","misconception":"Convolution reverses and shifts one sequence; it is not elementwise multiplication.","objective":"Sum shifted input-impulse-response products for a finite sequence.","recommended":[],"requires":[{"id":"math.number.operation-order","reason":"Each output sums correctly grouped products."},{"id":"signal.sample.index-time","reason":"The sum aligns samples at specific relative delays."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Time and frequency representations of signals used by robot sensors and control.","sourceIds":["signals","waves"],"stage":"ug-advanced","title":"Compute a discrete convolution"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.signals"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain how a limited harmonic sum approximates a discontinuity.","id":"signal.fourier.series","misconception":"A finite harmonic representation cannot exactly reproduce an ideal sharp edge.","objective":"Compute or interpret sinusoidal coefficients for a simple periodic signal.","recommended":[],"requires":[{"id":"math.calculus.integrate","reason":"Coefficients project the signal over a period."},{"id":"math.trig.unit-circle","reason":"Sinusoidal bases encode phase and periodicity."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Time and frequency representations of signals used by robot sensors and control.","sourceIds":["signals","waves"],"stage":"ug-advanced","title":"Represent a periodic signal with harmonics"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.signals"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Identify frequency resolution and the effect of record duration.","id":"signal.fourier.dft","misconception":"Zero padding interpolates a spectrum without adding measured frequency resolution.","objective":"Map DFT bin indices to frequencies and magnitudes under a stated normalization.","recommended":[],"requires":[{"id":"signal.fourier.series","reason":"Frequency bins sample a harmonic representation."},{"id":"signal.sample.index-time","reason":"Sampling rate and record length set bin frequencies."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Time and frequency representations of signals used by robot sensors and control.","sourceIds":["signals","waves"],"stage":"ug-advanced","title":"Interpret discrete Fourier bins"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.signals"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain an anti-alias filter’s role before sampling.","id":"signal.sampling.alias","misconception":"A digital filter after sampling cannot generally undo aliasing.","objective":"Determine when distinct continuous frequencies yield indistinguishable samples.","recommended":[],"requires":[{"id":"signal.fourier.dft","reason":"Sampled frequency interpretation exposes folded frequency components."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Time and frequency representations of signals used by robot sensors and control.","sourceIds":["signals","waves"],"stage":"ug-advanced","title":"Predict a sampling alias"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.signals"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Compare a transient before and after filtering.","id":"signal.filter.moving-average","misconception":"Smoother output may arrive later and suppress real changes.","objective":"Compute filtered samples and identify smoothing and delay.","recommended":[],"requires":[{"id":"signal.convolution.discrete","reason":"A moving average is convolution with a finite equal-weight kernel."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Time and frequency representations of signals used by robot sensors and control.","sourceIds":["signals","waves"],"stage":"ug-advanced","title":"Apply a moving-average filter"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.signals"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"State which initial conditions are excluded from the transfer relation.","id":"signal.laplace.transfer","misconception":"A transfer function alone does not include an arbitrary initial response.","objective":"Transform a linear differential model into a zero-initial-state input-output ratio.","recommended":[],"requires":[{"id":"math.ode.state-space","reason":"The model supplies differential input-state-output relations."},{"id":"math.complex.calculate","reason":"The transformed ratio uses complex algebra."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Time and frequency representations of signals used by robot sensors and control.","sourceIds":["signals","waves"],"stage":"ug-advanced","title":"Derive a transfer function"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.signals"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Convert logarithmic gain to an ordinary ratio.","id":"signal.frequency.bode","misconception":"Phase lag is not an amplitude reduction.","objective":"Predict amplitude ratio and phase shift for a sinusoidal input.","recommended":[],"requires":[{"id":"signal.laplace.transfer","reason":"Evaluating the system on the frequency axis gives its response."},{"id":"math.function.logarithm","reason":"Decibel scales encode multiplicative gain."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Time and frequency representations of signals used by robot sensors and control.","sourceIds":["signals","waves"],"stage":"ug-advanced","title":"Read gain and phase from a Bode plot"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.signals"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Relate pole magnitudes to the decay or growth of its modes.","id":"signal.discrete.z-transform","misconception":"Discrete stability uses the unit circle rather than the continuous left half-plane.","objective":"Derive a rational Z-domain model from a linear recurrence.","recommended":[],"requires":[{"id":"signal.convolution.discrete","reason":"Discrete linear systems can be represented through their impulse response."},{"id":"math.complex.polar","reason":"Pole magnitude and phase govern discrete modes."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Time and frequency representations of signals used by robot sensors and control.","sourceIds":["signals","waves"],"stage":"ug-advanced","title":"Locate discrete-time poles"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.dynamics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Check when an energy shortcut cannot determine time history.","id":"physics.dynamics.energy-balance","misconception":"Energy conservation does not imply each form of energy is constant.","objective":"Account for kinetic, potential and dissipated energy over a motion.","recommended":[],"requires":[{"id":"physics.energy.kinetic","reason":"The balance includes velocity-dependent energy."},{"id":"physics.energy.gravity","reason":"Changes in elevation contribute potential energy."},{"id":"physics.energy.work","reason":"External work and dissipation change the mechanical total."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Differential models of rotation, motion constraints, energy and actuator dynamics.","sourceIds":["mechanics","modern-robotics","waves"],"stage":"ug-advanced","title":"Solve a mechanical energy balance"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.dynamics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Check inertia axis and units in a loaded rotor model.","id":"physics.dynamics.rotation","misconception":"Force divided by mass cannot replace torque divided by inertia.","objective":"Relate net torque to rotational inertia and angular acceleration.","recommended":[],"requires":[{"id":"physics.rotation.torque","reason":"The driving quantity is net moment about the axis."},{"id":"physics.rotation.inertia","reason":"Mass distribution sets rotational acceleration sensitivity."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Differential models of rotation, motion constraints, energy and actuator dynamics.","sourceIds":["mechanics","modern-robotics","waves"],"stage":"ug-advanced","title":"Write a fixed-axis rotation equation"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.dynamics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Derive a pendulum equation and identify applied generalized torque.","id":"physics.dynamics.lagrange","misconception":"A generalized coordinate need not be a Cartesian distance.","objective":"Form kinetic minus potential energy and differentiate for a generalized coordinate.","recommended":[],"requires":[{"id":"math.calculus.partial","reason":"The formulation differentiates energy with respect to coordinates and velocities."},{"id":"math.calculus.chain-rule","reason":"The time derivative acts on coordinate-dependent momentum."},{"id":"physics.dynamics.energy-balance","reason":"Kinetic and potential energy must be constructed correctly."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Differential models of rotation, motion constraints, energy and actuator dynamics.","sourceIds":["mechanics","modern-robotics","waves"],"stage":"ug-advanced","title":"Derive an Euler-Lagrange equation"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.dynamics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Check symmetry and explain configuration dependence.","id":"physics.dynamics.mass-matrix","misconception":"Off-diagonal terms represent coupling rather than extra independent masses.","objective":"Collect acceleration coefficients from a coupled mechanical model.","recommended":[],"requires":[{"id":"physics.dynamics.lagrange","reason":"The equations supply the coupled acceleration coefficients."},{"id":"math.linear.positive-definite","reason":"The mass matrix represents a positive kinetic-energy quadratic form."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Differential models of rotation, motion constraints, energy and actuator dynamics.","sourceIds":["mechanics","modern-robotics","waves"],"stage":"ug-advanced","title":"Extract a manipulator mass matrix"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.dynamics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Check the equilibrium before interpreting the local perturbation model.","id":"physics.dynamics.equilibrium-linearize","misconception":"Linearizing at a non-equilibrium point leaves a drift term.","objective":"Calculate the state and input Jacobians at a force-balanced operating point.","recommended":[],"requires":[{"id":"math.calculus.jacobian","reason":"Jacobians provide the local state and input sensitivities."},{"id":"math.ode.state-space","reason":"The dynamics must be written as a state evolution first."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Differential models of rotation, motion constraints, energy and actuator dynamics.","sourceIds":["mechanics","modern-robotics","waves"],"stage":"ug-advanced","title":"Linearize dynamics at an equilibrium"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.dynamics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain why a mode is a coordinated motion pattern.","id":"physics.dynamics.normal-modes","misconception":"Each physical coordinate is not necessarily an independent mode.","objective":"Solve a mass-stiffness eigenproblem to identify modal shapes and frequencies.","recommended":[],"requires":[{"id":"math.linear.eigen","reason":"Modes satisfy a generalized eigenvalue relation."},{"id":"physics.dynamics.mass-matrix","reason":"The kinetic-energy matrix participates in the vibration model."},{"id":"physics.material.spring","reason":"Elastic restoring forces determine stiffness."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Differential models of rotation, motion constraints, energy and actuator dynamics.","sourceIds":["mechanics","modern-robotics","waves"],"stage":"ug-advanced","title":"Identify coupled vibration modes"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.dynamics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain how back EMF changes current as speed rises.","id":"physics.motor.back-emf","misconception":"A motor’s operating current is not always its stall current.","objective":"Relate winding voltage, current, rotor speed and torque using supplied constants.","recommended":[],"requires":[{"id":"elec.inductor.voltage-law","reason":"Winding transients contribute an inductive voltage."},{"id":"physics.dynamics.rotation","reason":"Motor torque drives angular acceleration."},{"id":"elec.kirchhoff.voltage","reason":"Supply, resistance, inductance and back EMF share a voltage balance."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Differential models of rotation, motion constraints, energy and actuator dynamics.","sourceIds":["mechanics","modern-robotics","waves"],"stage":"ug-advanced","title":"Model a DC motor’s electromechanical coupling"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.dynamics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Report residuals and distinguish calibration from independent validation.","id":"physics.sensor.calibrate","misconception":"Fitting the calibration data well does not establish accuracy everywhere.","objective":"Fit offset and scale from reference measurements and test held-out points.","recommended":[],"requires":[{"id":"math.linear.least-squares","reason":"A calibration fit estimates scale and offset from multiple observations."},{"id":"physics.measure.resolution","reason":"Instrument precision limits the reference evidence."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Differential models of rotation, motion constraints, energy and actuator dynamics.","sourceIds":["mechanics","modern-robotics","waves"],"stage":"ug-advanced","title":"Fit and validate a sensor calibration"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.contact-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Separate normal and tangential components and reject tensile unilateral contact.","id":"physics.contact.friction-cone","misconception":"The friction cone is a model limit, not a guarantee against slip on every surface.","objective":"Determine whether a proposed contact force satisfies a Coulomb friction bound.","recommended":[],"requires":[{"id":"physics.force.friction","reason":"The cone generalizes the normal-force-dependent friction bound."},{"id":"math.vector.components","reason":"Normal and tangential force components must be resolved."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected physical modeling tools for manipulation and locomotion research, not exhaustive applied physics coverage.","sourceIds":["modern-robotics","underactuated"],"stage":"graduate","title":"Test a force against a friction cone"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.contact-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Explain why separation requires zero normal force in the model.","id":"physics.contact.complementarity","misconception":"An inactive contact cannot exert arbitrary supporting normal force.","objective":"Express nonpenetration and normal-force complementarity for a candidate contact.","recommended":[],"requires":[{"id":"physics.contact.friction-cone","reason":"Contact force feasibility must respect one-sided normal contact."},{"id":"math.optimization.kkt","reason":"Complementarity expresses mutually exclusive gap and force activity."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected physical modeling tools for manipulation and locomotion research, not exhaustive applied physics coverage.","sourceIds":["modern-robotics","underactuated"],"stage":"graduate","title":"Form a unilateral contact condition"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.contact-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Distinguish finite velocity jumps from continuous position.","id":"physics.contact.impact","misconception":"A continuous-force integrator alone may miss an idealized impact event.","objective":"Apply a momentum balance and a stated impact law at contact onset.","recommended":[],"requires":[{"id":"physics.momentum.impulse","reason":"The impact changes momentum through impulse."},{"id":"physics.dynamics.mass-matrix","reason":"Coupled inertia maps an impulse into generalized velocity change."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected physical modeling tools for manipulation and locomotion research, not exhaustive applied physics coverage.","sourceIds":["modern-robotics","underactuated"],"stage":"graduate","title":"Calculate an impulsive velocity reset"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.contact-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Identify a redundant parameter direction from the sensitivity matrix.","id":"physics.model.identifiability","misconception":"More samples of an uninformative experiment do not make all parameters identifiable.","objective":"Determine whether selected excitation can distinguish candidate model parameters.","recommended":[],"requires":[{"id":"math.calculus.jacobian","reason":"Parameter sensitivities show which effects observations can distinguish."},{"id":"math.linear.rank","reason":"Rank deficiency exposes indistinguishable parameter combinations."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected physical modeling tools for manipulation and locomotion research, not exhaustive applied physics coverage.","sourceIds":["modern-robotics","underactuated"],"stage":"graduate","title":"Assess a physical parameter identification experiment"},{"alternatives":[],"applications":["general"],"clusterIds":["physics.contact-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"physics","evidence":"Compare a friction, delay or bias explanation against held-out conditions.","id":"physics.model.residual-diagnosis","misconception":"A low aggregate error can conceal systematic operating-region failures.","objective":"Use time-correlated residual patterns to propose a missing physical mechanism.","recommended":[],"requires":[{"id":"physics.sensor.calibrate","reason":"Reference comparison establishes the residual definition."},{"id":"math.stats.covariance","reason":"Residual dependence distinguishes structure from an independent-noise assumption."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected physical modeling tools for manipulation and locomotion research, not exhaustive applied physics coverage.","sourceIds":["modern-robotics","underactuated"],"stage":"graduate","title":"Diagnose structured model residuals"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The learner makes a plain-text practice.py file, runs it from the course folder in Terminal, then changes the greeting, saves, and reruns to verify the saved edit.","mission":"hello-reachy","nodeId":"computing.file.run","section":"Print a greeting","sourcePath":"course/missions/01-hello-reachy.mjs","status":"practiced","title":"Hello, Reachy!","url":"index.html#mission-1-hello-reachy"}],"status":"practiced"},"domain":"computing","evidence":"Explain the file path, save the edit and verify the new output.","id":"computing.file.run","misconception":"Running an unsaved editor buffer is not the same as running the saved file.","objective":"Save plain-text Python with a .py extension and run the intended file from its folder.","recommended":[],"requires":[],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Run a saved Python file"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The lesson identifies quoted text as a string, explains straight quotes, and asks the learner to change the greeting words.","mission":"hello-reachy","nodeId":"computing.python.string","section":"Print a greeting","sourcePath":"course/missions/01-hello-reachy.mjs","status":"practiced","title":"Hello, Reachy!","url":"index.html#mission-1-hello-reachy"}],"status":"practiced"},"domain":"computing","evidence":"Correct mismatched quotes while preserving the intended text.","id":"computing.python.string","misconception":"Quotation marks delimit text and usually are not part of its displayed value.","objective":"Write a quoted string and distinguish its contents from Python syntax.","recommended":[],"requires":[],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Represent text as a string"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The learner saves a named robot_name value in practice.py, changes its value, and predicts the printed greeting before running again.","mission":"hello-reachy","nodeId":"computing.python.variable","section":"Print a greeting","sourcePath":"course/missions/01-hello-reachy.mjs","status":"practiced","title":"Hello, Reachy!","url":"index.html#mission-1-hello-reachy"}],"status":"practiced"},"domain":"computing","evidence":"Identify the variable name and the value it currently refers to.","id":"computing.python.variable","misconception":"The variable name is not itself the string stored in the variable.","objective":"Assign a literal value to a variable and trace a later reference to that name.","recommended":[],"requires":[{"id":"computing.python.string","reason":"A text assignment must distinguish a quoted value from an unquoted name."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Bind a name to a value"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The practice code reassigns the seconds variable from 1.5 to 2.0 and prints both values so the learner can predict the change.","mission":"reachy-moves","nodeId":"computing.python.reassignment","section":"One variable, one controlled change","sourcePath":"course/missions/02-reachy-moves.mjs","status":"practiced","title":"Reachy Moves Carefully","url":"index.html#mission-2-reachy-moves"}],"status":"practiced"},"domain":"computing","evidence":"Show a value table before and after a second assignment.","id":"computing.python.reassignment","misconception":"Reassignment does not retroactively change an earlier printed line.","objective":"Update a variable and identify which later expressions use the new value.","recommended":[],"requires":[{"id":"computing.python.variable","reason":"The existing binding must be identified before it can be updated."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Trace a reassignment"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The three-line greeting explains print and asks the learner to run, edit, and verify text appearing on the Mac rather than a spoken or moving robot.","mission":"hello-reachy","nodeId":"computing.python.print","section":"Print a greeting","sourcePath":"course/missions/01-hello-reachy.mjs","status":"practiced","title":"Hello, Reachy!","url":"index.html#mission-1-hello-reachy"}],"status":"practiced"},"domain":"computing","evidence":"Explain why printed movement words do not command a motor.","id":"computing.python.print","misconception":"print displays values; it does not execute the meaning of its text.","objective":"Predict the text displayed by print with string and variable arguments.","recommended":[],"requires":[{"id":"computing.python.variable","reason":"An unquoted argument is evaluated through its current binding."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Display a value with print"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Compare the Python expression with a labeled hand calculation.","id":"computing.python.arithmetic","misconception":"The equals sign assigns; it does not display the result by itself.","objective":"Use arithmetic operators and parentheses to implement a supplied numerical expression.","recommended":[],"requires":[{"id":"math.number.operation-order","reason":"Python arithmetic needs the intended operator grouping."},{"id":"computing.python.variable","reason":"Named numerical inputs must be read from their bindings."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Evaluate Python arithmetic"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The text explains that import brings a helper into a file, but the greeting exercise does not develop module search, namespaces, or package behavior.","mission":"hello-reachy","nodeId":"computing.python.import","section":"Print a greeting","sourcePath":"course/missions/01-hello-reachy.mjs","status":"introduced","title":"Hello, Reachy!","url":"index.html#mission-1-hello-reachy"}],"status":"introduced"},"domain":"computing","evidence":"Explain the difference between a module name and an imported function name.","id":"computing.python.import","misconception":"Importing a tool does not mean every function in it has been called.","objective":"Use an import statement to make a module or specified symbol available.","recommended":[],"requires":[{"id":"computing.python.variable","reason":"Imports introduce names that are later resolved in code."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Import a named Python tool"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The practice sample list explains square brackets and asks the learner to run a sample-count calculation using len.","mission":"reachy-speaks","nodeId":"computing.python.list","section":"Ask the speaker to play","sourcePath":"course/missions/04-reachy-speaks.mjs","status":"practiced","title":"Reachy Speaks","url":"index.html#mission-4-reachy-speaks"}],"status":"practiced"},"domain":"computing","evidence":"Explain how changing element order changes a motion or sample sequence.","id":"computing.python.list","misconception":"A list preserves order rather than behaving like an unordered collection.","objective":"Store several values in a list in their intended order.","recommended":[],"requires":[{"id":"computing.python.variable","reason":"A list is a value that can be bound to a name."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Construct an ordered Python list"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The example explains zero-based indexing and retrieves samples[0], distinguishing an item from the number of items.","mission":"reachy-speaks","nodeId":"computing.python.index","section":"Ask the speaker to play","sourcePath":"course/missions/04-reachy-speaks.mjs","status":"practiced","title":"Reachy Speaks","url":"index.html#mission-4-reachy-speaks"}],"status":"practiced"},"domain":"computing","evidence":"Identify the first and last valid indices of a short list.","id":"computing.python.index","misconception":"The first element has index zero, not one.","objective":"Access one list item using a valid zero-based index.","recommended":[],"requires":[{"id":"computing.python.list","reason":"Indexing selects an item from an ordered sequence."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Read a list element by index"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The text explains that len counts sequence items. The learner runs print(len(samples)) on five pretend samples and compares the count with the zero-based first-item access in the same exercise.","mission":"reachy-speaks","nodeId":"computing.python.length","section":"Ask the speaker to play","sourcePath":"course/missions/04-reachy-speaks.mjs","status":"practiced","title":"Reachy Speaks","url":"index.html#mission-4-reachy-speaks"}],"status":"practiced"},"domain":"computing","evidence":"Distinguish the element count from its largest nonnegative index.","id":"computing.python.length","misconception":"A length of three implies the last ordinary index is two.","objective":"Use len to determine the number of elements in a sequence.","recommended":[],"requires":[{"id":"computing.python.list","reason":"The operation counts sequence elements."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Count sequence items with len"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The exercise explicitly distinguishes = from == and changes the input through matching and nonmatching values to trace the rule.","mission":"reachy-decides","nodeId":"computing.python.equality","section":"Run the local decision program","sourcePath":"course/missions/06-reachy-decides.mjs","status":"practiced","title":"Reachy Decides with Rules","url":"index.html#mission-6-reachy-decides"}],"status":"practiced"},"domain":"computing","evidence":"Distinguish an equality test from assignment in a short trace.","id":"computing.python.equality","misconception":"The operators = and == serve different purposes.","objective":"Use == to compare two values without changing either binding.","recommended":[],"requires":[{"id":"computing.python.variable","reason":"Equality compares the values associated with the supplied names."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Test Python value equality"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Predict the result after changing one operand across the other.","id":"computing.python.comparison","misconception":"Comparing numeric-looking strings need not use numeric order.","objective":"Evaluate \u003c or \u003e between numeric values to obtain a Boolean result.","recommended":[],"requires":[{"id":"computing.python.variable","reason":"The comparison evaluates the current values of names."},{"id":"math.number.signed-order","reason":"Numeric comparisons use the values’ order."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Evaluate a Python order comparison"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The Python classifier uses inclusive endpoints and an unknown-value branch; test cases include exact 1.5 V and 3.5 V thresholds.","mission":"digital","nodeId":"computing.python.comparison-boundary","section":"if checks the first condition","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Uncertain Button","url":"spark.html#digital"}],"status":"practiced"},"domain":"computing","evidence":"Write expected outcomes for all three cases before executing.","id":"computing.python.comparison-boundary","misconception":"Changing \u003c to \u003c= changes the exact-boundary result.","objective":"Predict \u003c and \u003c= results immediately below, at and above a threshold.","recommended":[],"requires":[{"id":"computing.python.comparison","reason":"The distinction concerns the truth value returned by a comparison."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Test an inclusive comparison boundary"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The learner traces hello, sleep, and an unknown input through if/elif/else, maintaining indentation and predicting the fallback.","mission":"reachy-decides","nodeId":"computing.python.if-trace","section":"Run the local decision program","sourcePath":"course/missions/06-reachy-decides.mjs","status":"practiced","title":"Reachy Decides with Rules","url":"index.html#mission-6-reachy-decides"}],"status":"practiced"},"domain":"computing","evidence":"Trace supplied true and false cases without executing both blocks.","id":"computing.python.if-trace","misconception":"Only the selected branch executes in a single if/else decision.","objective":"Determine which indented block executes when a named condition’s Boolean value is supplied.","recommended":[{"id":"computing.python.equality","reason":"An equality expression can compute the condition for a text-command rule."},{"id":"computing.python.comparison","reason":"An order comparison can compute the condition for a numerical threshold rule."}],"requires":[{"id":"computing.python.variable","reason":"The named condition uses its currently supplied Boolean binding."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Trace an if/else branch"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Test an overlapping condition and an unmatched input.","id":"computing.python.elif","misconception":"Later true conditions are not evaluated as independent branches after a match.","objective":"Determine the first matching branch of an ordered conditional chain.","recommended":[],"requires":[{"id":"computing.python.if-trace","reason":"An elif chain extends the same conditional branch selection."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Order an if/elif/else decision"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Compare computed outcomes with a complete truth table.","id":"computing.python.boolean","misconception":"and, or and not have distinct behavior and precedence.","objective":"Express an AND, OR or NOT rule over explicit Boolean values.","recommended":[],"requires":[{"id":"elec.logic.and","reason":"AND truth behavior must match the intended conjunction."},{"id":"elec.logic.or","reason":"OR truth behavior must include the both-true case."},{"id":"elec.logic.not","reason":"NOT reverses the selected Boolean expression."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Combine Python Boolean conditions"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The practice loop prints each of four stage names once and then finishes, allowing the learner to trace iteration order and termination.","mission":"robot-friend","nodeId":"computing.python.for-trace","section":"Run one supervised friend turn","sourcePath":"course/missions/08-robot-friend.mjs","status":"practiced","title":"Build a Robot Friend","url":"index.html#mission-8-robot-friend"}],"status":"practiced"},"domain":"computing","evidence":"List iterations in order and identify the indented repeated statements.","id":"computing.python.for-trace","misconception":"The loop variable takes item values, not automatically their indices.","objective":"Predict the loop variable and output for each item of a supplied list.","recommended":[],"requires":[{"id":"computing.python.list","reason":"The sequence supplies each successive loop value."},{"id":"computing.python.print","reason":"A printed trace exposes each iteration result."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Trace a for loop over a list"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The worked Python loop calculates current for a list of resistances. Learners edit the choices, but writing a new loop from requirements is not developed independently.","mission":"ohm","nodeId":"computing.python.for-write","section":"The for line repeats","sourcePath":"course/spark-course.mjs","status":"introduced","title":"The Brightness Bargain","url":"spark.html#ohm"}],"status":"introduced"},"domain":"computing","evidence":"Check the number and order of outputs against the list.","id":"computing.python.for-write","misconception":"Indentation determines which statements repeat.","objective":"Write a loop that performs one stated operation for each item in a finite list.","recommended":[],"requires":[{"id":"computing.python.for-trace","reason":"Predicting loop execution supports placing the repeated operation correctly."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Write a finite for loop"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The worked Python table explains the inner loop for each outer-loop value, so the learner can trace four rows in the stated order.","mission":"logic","nodeId":"computing.python.nested-boolean-loop","section":"The inner for loop tests both B states","sourcePath":"course/spark-course.mjs","status":"practiced","title":"Reachy’s Rule Machine","url":"spark.html#logic"}],"status":"practiced"},"domain":"computing","evidence":"Produce exactly four distinct pairs and explain which loop runs inside the other.","id":"computing.python.nested-boolean-loop","misconception":"Two separate loops do not enumerate the Cartesian product.","objective":"Use two finite loops to evaluate a Boolean rule for every input pair.","recommended":[],"requires":[{"id":"computing.python.for-write","reason":"Each input position is assigned by its own finite loop."},{"id":"computing.python.boolean","reason":"The loop body evaluates the intended Boolean rule."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Enumerate Boolean pairs with nested loops"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"explorer","evidence":"The code lab presents a greeting function with one parameter and explains a reusable recipe, but the task primarily edits and calls a supplied function.","mission":"code-lab","nodeId":"computing.python.function-parameter","section":"Make your own greeting","sourcePath":"web/code-lab.js","status":"introduced","title":"Simulated Python robot lab · choose Code \u0026 play","url":"anatomy.html#explorer-controls"}],"status":"introduced"},"domain":"computing","evidence":"Trace two calls with different arguments and identify the local parameter each time.","id":"computing.python.function-parameter","misconception":"A parameter is a local name, not a fixed literal chosen forever.","objective":"Match an argument value to a named parameter in a supplied function definition.","recommended":[],"requires":[{"id":"computing.python.variable","reason":"Parameters create bindings for values supplied to a call."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Bind a function parameter"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Show the definition and two calls that produce the stated parameter-dependent behavior.","id":"computing.python.function-define","misconception":"Writing a definition creates callable behavior without running its body immediately.","objective":"Write a named function whose indented body uses one parameter value.","recommended":[],"requires":[{"id":"computing.python.function-parameter","reason":"The body must use the parameter as the name for a future supplied argument."},{"id":"computing.python.print","reason":"A simple observable body can display the parameter-dependent result."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Define a function with one parameter"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"explorer","evidence":"The challenge asks the learner to call the supplied greet function with a different name and observe how that argument changes the greeting.","mission":"code-lab","nodeId":"computing.python.function-call","section":"Make your own greeting","sourcePath":"web/code-lab.js","status":"practiced","title":"Simulated Python robot lab · choose Code \u0026 play","url":"anatomy.html#explorer-controls"}],"status":"practiced"},"domain":"computing","evidence":"Distinguish defining a function from executing its body.","id":"computing.python.function-call","misconception":"A function definition alone does not perform its body’s actions.","objective":"Invoke a supplied function with arguments matching its declared parameters.","recommended":[],"requires":[{"id":"computing.python.function-parameter","reason":"Arguments must be associated with the correct parameters."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Call a function with arguments"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Trace a returning function and a function that only prints, including implicit None.","id":"computing.python.function-return","misconception":"Printing a result does not return that result to the caller.","objective":"Capture a returned result and distinguish it from displayed text and side effects.","recommended":[],"requires":[{"id":"computing.python.function-call","reason":"A caller receives the value returned from the executed function."},{"id":"computing.python.print","reason":"Output side effects must be distinguished from returned values."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Use a function’s returned value"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Call the function, use its returned number in another expression and check the result.","id":"computing.python.function-return-write","misconception":"A return statement ends that function call, so later statements in the same executed path do not run.","objective":"Write a return statement that delivers a parameter-dependent calculation to its caller.","recommended":[],"requires":[{"id":"computing.python.function-define","reason":"The return statement belongs inside a defined function body."},{"id":"computing.python.function-return","reason":"The author must distinguish a returned value from printed output."},{"id":"computing.python.arithmetic","reason":"The returned expression computes a value from the supplied parameter."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Return a computed value from a function"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["computing.python-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Repair a minimal local snippet and explain the syntax issue.","id":"computing.python.syntax-error","misconception":"The reported location may follow the actual missing delimiter.","objective":"Use an error location to inspect malformed quotes, parentheses or indentation.","recommended":[],"requires":[{"id":"computing.file.run","reason":"The interpreter must read the intended saved program."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Short local Python programs and paper traces with explicit values; operating a robot is a separate action.","sourceIds":["python"],"stage":"g6-8","title":"Locate a syntax error"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.python-structure"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Trace the stopping condition and a case that would otherwise loop forever.","id":"computing.python.while","misconception":"A true condition without a changing state can run indefinitely.","objective":"Write a loop whose state change eventually makes its condition false.","recommended":[],"requires":[{"id":"computing.python.reassignment","reason":"The loop state must change toward termination."},{"id":"computing.python.if-trace","reason":"Each iteration checks a Boolean continuation condition."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Small reusable programs with explicit state, data structures and validation.","sourceIds":["python"],"stage":"g9-10","title":"Bound a while loop"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.python-structure"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Trace the total after each iteration and handle an empty input.","id":"computing.python.accumulator","misconception":"Initializing the total inside the loop loses prior contributions.","objective":"Initialize and update an accumulator once per input item.","recommended":[],"requires":[{"id":"computing.python.for-write","reason":"The update repeats for each sequence item."},{"id":"computing.python.reassignment","reason":"The running result must retain and update its prior value."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Small reusable programs with explicit state, data structures and validation.","sourceIds":["python"],"stage":"g9-10","title":"Accumulate a loop result"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.python-structure"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Contrast a named field lookup with a list index lookup.","id":"computing.python.dictionary","misconception":"A dictionary key is not necessarily a position.","objective":"Store and retrieve values by dictionary key and handle a missing key explicitly.","recommended":[],"requires":[{"id":"computing.python.index","reason":"The learner must distinguish positional access from named access."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Small reusable programs with explicit state, data structures and validation.","sourceIds":["python"],"stage":"g9-10","title":"Look up a named field"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.python-structure"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain the length of a slice and an empty slice.","id":"computing.python.slice","misconception":"The stop index is excluded.","objective":"Choose a contiguous subsequence using start-inclusive and stop-exclusive bounds.","recommended":[],"requires":[{"id":"computing.python.index","reason":"Slice bounds refer to sequence index positions."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Small reusable programs with explicit state, data structures and validation.","sourceIds":["python"],"stage":"g9-10","title":"Select a sequence slice"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.python-structure"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Test empty, padded and mixed-case inputs against the same policy.","id":"computing.python.normalize-text","misconception":"Normalization does not justify inventing an action for an unknown command.","objective":"Apply specified whitespace and case normalization before comparing a command.","recommended":[],"requires":[{"id":"computing.python.string","reason":"Normalization operates on text values."},{"id":"computing.python.elif","reason":"Normalized text is used by an ordered rule."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Small reusable programs with explicit state, data structures and validation.","sourceIds":["python"],"stage":"g9-10","title":"Normalize text before a rule"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.python-structure"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Test an accepted value, wrong type, missing value and boundary.","id":"computing.python.validate-input","misconception":"A value that can be converted is not automatically meaningful or safe.","objective":"Reject values outside a declared type, range or finite-number contract.","recommended":[],"requires":[{"id":"computing.python.function-parameter","reason":"The contract applies to supplied argument values."},{"id":"computing.python.comparison-boundary","reason":"Range validation requires correct endpoint behavior."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Small reusable programs with explicit state, data structures and validation.","sourceIds":["python"],"stage":"g9-10","title":"Validate a function input"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.python-structure"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Distinguish a handled missing file from an unrelated programming error.","id":"computing.python.exception","misconception":"Catching every exception can hide the cause of a defect.","objective":"Catch a specific expected failure and preserve useful error information.","recommended":[],"requires":[{"id":"computing.python.syntax-error","reason":"Syntax and runtime failure categories must be distinguished."},{"id":"computing.python.if-trace","reason":"Failure handling changes the executed control path."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Small reusable programs with explicit state, data structures and validation.","sourceIds":["python"],"stage":"g9-10","title":"Handle an expected exception"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.python-structure"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Trace both normal completion and a body exception.","id":"computing.python.context-manager","misconception":"Leaving the block can trigger cleanup even without an explicit close line.","objective":"Explain entry, body and cleanup behavior of a supplied context manager.","recommended":[],"requires":[{"id":"computing.python.exception","reason":"Cleanup must be considered on exceptional as well as normal paths."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Small reusable programs with explicit state, data structures and validation.","sourceIds":["python"],"stage":"g9-10","title":"Trace resource cleanup with with"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.python-structure"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain why rebinding a local name may not change an outer binding.","id":"computing.python.scope","misconception":"Identical name spelling does not guarantee identical storage or scope.","objective":"Trace names across a function’s local scope and its surrounding scope.","recommended":[],"requires":[{"id":"computing.python.function-parameter","reason":"A parameter is a local binding for one call."},{"id":"computing.python.reassignment","reason":"Rebinding affects the selected scope."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Small reusable programs with explicit state, data structures and validation.","sourceIds":["python"],"stage":"g9-10","title":"Distinguish local and outer bindings"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.python-structure"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Show a failing check that exposes an incorrect function result.","id":"computing.python.test-cases","misconception":"Testing only the example used while writing code can miss boundary behavior.","objective":"Specify expected outputs for representative, empty and boundary inputs.","recommended":[],"requires":[{"id":"computing.python.function-return","reason":"Checks compare returned results with independent expected values."},{"id":"computing.python.comparison-boundary","reason":"Boundary inputs often exercise distinct behavior."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Small reusable programs with explicit state, data structures and validation.","sourceIds":["python"],"stage":"g9-10","title":"Write example-based function checks"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.abstraction"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain the largest representable value for a stated width.","id":"computing.binary.encode","misconception":"Fixed-width arithmetic cannot represent every mathematical integer.","objective":"Convert an integer to a fixed-width binary representation and identify overflow.","recommended":[],"requires":[{"id":"math.algebra.exponents","reason":"Each bit place contributes a power of two."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Data representation, structured programs and elementary algorithm reasoning.","sourceIds":["python","architecture","algorithms"],"stage":"g11-12","title":"Encode an unsigned integer in bits"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.abstraction"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Contrast mutation, shallow copy and rebinding in a short trace.","id":"computing.data.mutation","misconception":"Assigning a list to another name does not necessarily copy its elements.","objective":"Predict how two names referring to the same mutable list observe an element change.","recommended":[],"requires":[{"id":"computing.python.list","reason":"The object whose contents change is a list."},{"id":"computing.python.reassignment","reason":"Changing a binding differs from changing the referenced object."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Data representation, structured programs and elementary algorithm reasoning.","sourceIds":["python","architecture","algorithms"],"stage":"g11-12","title":"Trace aliasing and mutation"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.abstraction"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Create two instances and show that their state is separate.","id":"computing.python.class","misconception":"An instance attribute and a shared class attribute have different ownership.","objective":"Implement a small object whose methods update and report its state.","recommended":[],"requires":[{"id":"computing.python.function-define","reason":"Implementing methods requires defining callable bodies with parameters."},{"id":"computing.python.scope","reason":"State ownership must be distinguished from local bindings."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Data representation, structured programs and elementary algorithm reasoning.","sourceIds":["python","architecture","algorithms"],"stage":"g11-12","title":"Encapsulate state in an object"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.abstraction"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Draw the call and return sequence for a finite example.","id":"computing.algorithm.recursion","misconception":"Recursion without progress toward a base case need not terminate.","objective":"Identify a base case and trace a smaller recursive subproblem to completion.","recommended":[],"requires":[{"id":"computing.python.function-return","reason":"Recursive calls return intermediate results to their callers."},{"id":"computing.python.if-trace","reason":"A base-case condition selects termination."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Data representation, structured programs and elementary algorithm reasoning.","sourceIds":["python","architecture","algorithms"],"stage":"g11-12","title":"Trace a recursive function"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.abstraction"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Use initialization, preservation and termination to justify a loop result.","id":"computing.algorithm.invariant","misconception":"An invariant must hold during the loop, not only after it finishes.","objective":"Identify a property preserved before and after every iteration.","recommended":[],"requires":[{"id":"computing.python.accumulator","reason":"A running total provides a concrete state property to preserve."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Data representation, structured programs and elementary algorithm reasoning.","sourceIds":["python","architecture","algorithms"],"stage":"g11-12","title":"State a loop invariant"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.abstraction"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Represent a branching route and distinguish neighbors from all reachable vertices.","id":"computing.data.graph","misconception":"An edge list does not imply every vertex can reach every other.","objective":"Encode vertices and edges in an adjacency structure and state edge direction.","recommended":[],"requires":[{"id":"computing.python.dictionary","reason":"Vertex keys can map to lists of neighbors."},{"id":"computing.python.list","reason":"Neighbor collections must be represented explicitly."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Data representation, structured programs and elementary algorithm reasoning.","sourceIds":["python","architecture","algorithms"],"stage":"g11-12","title":"Represent a graph by adjacency"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.abstraction"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain why the same event can have different effects in different states.","id":"computing.state.machine","misconception":"State is retained context, not just the most recent input.","objective":"Select a next state from the current state and an event using a transition table.","recommended":[],"requires":[{"id":"computing.python.elif","reason":"Transition rules choose among explicitly defined cases."},{"id":"computing.python.reassignment","reason":"The current state changes after a transition."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Data representation, structured programs and elementary algorithm reasoning.","sourceIds":["python","architecture","algorithms"],"stage":"g11-12","title":"Trace a finite state machine"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.abstraction"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Replace an implementation while keeping a caller-facing contract unchanged.","id":"computing.software.module-contract","misconception":"An abstraction is not improved by exposing every internal detail.","objective":"Separate a module’s public inputs and outputs from its internal representation.","recommended":[],"requires":[{"id":"computing.python.import","reason":"Modules supply named functionality to callers."},{"id":"computing.python.validate-input","reason":"The boundary must specify accepted inputs."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Data representation, structured programs and elementary algorithm reasoning.","sourceIds":["python","architecture","algorithms"],"stage":"g11-12","title":"Define a module interface"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.algorithms"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Distinguish constant, linear, logarithmic and quadratic growth for short algorithms.","id":"computing.algorithm.complexity","misconception":"A faster result on one small input does not establish better asymptotic complexity.","objective":"Count dominant operations as input size grows.","recommended":[],"requires":[{"id":"computing.python.nested-boolean-loop","reason":"Nested iteration provides a concrete product of iteration counts."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Correctness and resource reasoning for finite computations used in robot software.","sourceIds":["algorithms"],"stage":"ug-foundation","title":"Estimate asymptotic running time"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.algorithms"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Trace pushes and removals for each structure.","id":"computing.data.stack-queue","misconception":"Stack and queue removal order changes traversal behavior.","objective":"Use last-in-first-out or first-in-first-out behavior for a stated worklist.","recommended":[],"requires":[{"id":"computing.python.list","reason":"Both structures maintain an ordered collection of pending items."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Correctness and resource reasoning for finite computations used in robot software.","sourceIds":["algorithms"],"stage":"ug-foundation","title":"Choose a stack or queue"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.algorithms"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Handle absent values and explain the shrinking interval invariant.","id":"computing.algorithm.binary-search","misconception":"Binary search requires an ordering relation consistent with the sequence.","objective":"Search a sorted sequence while preserving the candidate interval.","recommended":[],"requires":[{"id":"computing.algorithm.invariant","reason":"Correct interval updates preserve all possible solution positions."},{"id":"computing.python.index","reason":"Midpoint and boundary positions index the sequence."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Correctness and resource reasoning for finite computations used in robot software.","sourceIds":["algorithms"],"stage":"ug-foundation","title":"Maintain a binary-search interval"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.algorithms"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain how tie handling affects stability.","id":"computing.algorithm.sort","misconception":"Sorting stability concerns equal-key order, not numerical stability.","objective":"Implement and analyze a stable merge of two sorted sequences.","recommended":[],"requires":[{"id":"computing.python.while","reason":"The merge advances indices until sequences are exhausted."},{"id":"computing.algorithm.complexity","reason":"The operation count characterizes merge efficiency."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Correctness and resource reasoning for finite computations used in robot software.","sourceIds":["algorithms"],"stage":"ug-foundation","title":"Implement a comparison sort"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.algorithms"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Distinguish hash equality from key equality.","id":"computing.data.hashing","misconception":"A hash collision does not mean the original keys are equal.","objective":"Trace key hashing, bucket selection and collision resolution.","recommended":[],"requires":[{"id":"computing.python.dictionary","reason":"A hash table implements a key-value lookup abstraction."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Correctness and resource reasoning for finite computations used in robot software.","sourceIds":["algorithms"],"stage":"ug-foundation","title":"Explain a hash-table lookup"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.algorithms"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Reconstruct a path using parent links and explain why edge count is minimal.","id":"computing.algorithm.bfs","misconception":"BFS minimizes edge count only when edges have equal cost.","objective":"Use a queue and visited set to perform breadth-first search.","recommended":[],"requires":[{"id":"computing.data.graph","reason":"Traversal needs the vertex neighbor relationships."},{"id":"computing.data.stack-queue","reason":"FIFO ordering expands successive distance layers."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Correctness and resource reasoning for finite computations used in robot software.","sourceIds":["algorithms"],"stage":"ug-foundation","title":"Find a shortest unweighted graph path"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.algorithms"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Distinguish a back edge from a newly discovered vertex.","id":"computing.algorithm.dfs","misconception":"Depth-first discovery does not generally give a shortest path.","objective":"Use a stack or recursion to visit a graph while preventing repeated cycles.","recommended":[],"requires":[{"id":"computing.data.graph","reason":"The traversal follows explicit graph edges."},{"id":"computing.data.stack-queue","reason":"LIFO work ordering deepens one branch first."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Correctness and resource reasoning for finite computations used in robot software.","sourceIds":["algorithms"],"stage":"ug-foundation","title":"Traverse a graph depth first"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.algorithms"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain the nonnegative edge-cost requirement.","id":"computing.algorithm.dijkstra","misconception":"The fewest edges need not be the least-cost path.","objective":"Maintain tentative distances and expand the least-cost unsettled vertex.","recommended":[],"requires":[{"id":"computing.algorithm.bfs","reason":"Distance layers generalize from unit edge costs to weighted costs."},{"id":"computing.algorithm.invariant","reason":"Settled distances must remain final under the cost assumption."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Correctness and resource reasoning for finite computations used in robot software.","sourceIds":["algorithms"],"stage":"ug-foundation","title":"Find a minimum-cost graph path"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.algorithms"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Check admissibility and explain when node reopening is needed.","id":"computing.algorithm.astar","misconception":"A plausible-looking heuristic does not automatically preserve optimality.","objective":"Combine accumulated path cost and estimated remaining cost to prioritize search.","recommended":[],"requires":[{"id":"computing.algorithm.dijkstra","reason":"A-star augments cumulative-cost search with a lower-bound estimate."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Correctness and resource reasoning for finite computations used in robot software.","sourceIds":["algorithms"],"stage":"ug-foundation","title":"Use a heuristic in graph search"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.algorithms"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Show how memoization removes repeated work without changing the recurrence.","id":"computing.algorithm.dynamic-programming","misconception":"Caching only helps when subproblem states are identified consistently.","objective":"Define a finite state recurrence and compute it in dependency order.","recommended":[],"requires":[{"id":"computing.algorithm.recursion","reason":"The recurrence describes smaller subproblems."},{"id":"computing.python.dictionary","reason":"Memoization stores solved states by key."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Correctness and resource reasoning for finite computations used in robot software.","sourceIds":["algorithms"],"stage":"ug-foundation","title":"Reuse overlapping subproblem solutions"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.algorithms"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Detect a cycle when no remaining vertex can be selected.","id":"computing.algorithm.topological","misconception":"A cycle cannot be resolved by merely choosing a different topological order.","objective":"Produce an ordering where every prerequisite precedes its dependent vertex.","recommended":[],"requires":[{"id":"computing.data.graph","reason":"The ordering follows directed prerequisite edges."},{"id":"computing.algorithm.dfs","reason":"Depth-first structure can detect back edges and derive an order."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Correctness and resource reasoning for finite computations used in robot software.","sourceIds":["algorithms"],"stage":"ug-foundation","title":"Order an acyclic dependency graph"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.systems"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Distinguish instruction address from the data address being read.","id":"computing.machine.instruction","misconception":"A memory address names a location rather than its stored value.","objective":"Track register and memory changes for a short supplied instruction sequence.","recommended":[],"requires":[{"id":"computing.binary.encode","reason":"Instructions and addresses have finite binary representations."},{"id":"computing.python.reassignment","reason":"Execution changes a machine state in sequence."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Execution, memory, communication and reliability models for robot applications.","sourceIds":["architecture","systems","python"],"stage":"ug-foundation","title":"Trace an instruction execution"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.systems"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain ownership and a safe lifetime relationship in pseudocode.","id":"computing.machine.memory-lifetime","misconception":"A reference can outlive the object it once addressed.","objective":"Determine whether a reference is used after its target lifetime ends.","recommended":[],"requires":[{"id":"computing.data.mutation","reason":"References and referenced objects are distinct entities."},{"id":"computing.machine.instruction","reason":"Low-level operations read through explicit memory locations."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Execution, memory, communication and reliability models for robot applications.","sourceIds":["architecture","systems","python"],"stage":"ug-foundation","title":"Identify a memory lifetime error"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.systems"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain why two equal-operation algorithms can have different memory cost.","id":"computing.machine.cache","misconception":"A cache changes access cost rather than mathematical results under correct coherence.","objective":"Compare sequential and scattered memory access for likely cache reuse.","recommended":[],"requires":[{"id":"computing.machine.instruction","reason":"Loads reference particular memory addresses."},{"id":"computing.algorithm.complexity","reason":"Operation count alone does not capture all execution costs."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Execution, memory, communication and reliability models for robot applications.","sourceIds":["architecture","systems","python"],"stage":"ug-foundation","title":"Predict a locality effect"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.systems"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Show the read-modify-write steps that conflict.","id":"computing.concurrent.race","misconception":"A short source-code expression is not automatically atomic.","objective":"Construct an interleaving where unsynchronized updates lose an intended change.","recommended":[],"requires":[{"id":"computing.python.reassignment","reason":"Each update depends on reading and replacing state."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Execution, memory, communication and reliability models for robot applications.","sourceIds":["architecture","systems","python"],"stage":"ug-foundation","title":"Expose a shared-state race"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.systems"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain a deadlock risk from inconsistent lock order.","id":"computing.concurrent.lock","misconception":"Locking individual lines may not protect a multi-step invariant.","objective":"Choose a lock boundary that protects a shared invariant.","recommended":[],"requires":[{"id":"computing.concurrent.race","reason":"The lock must exclude the interleaving that breaks correctness."},{"id":"computing.algorithm.invariant","reason":"The protected state property defines the required critical section."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Execution, memory, communication and reliability models for robot applications.","sourceIds":["architecture","systems","python"],"stage":"ug-foundation","title":"Protect a critical section"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.systems"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Trace out-of-order replies and identify a stale result.","id":"computing.concurrent.async","misconception":"Starting an asynchronous request does not mean its result is already available.","objective":"Distinguish request initiation from completion and handle delayed results.","recommended":[],"requires":[{"id":"computing.state.machine","reason":"Pending, completed and cancelled states change valid next actions."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Execution, memory, communication and reliability models for robot applications.","sourceIds":["architecture","systems","python"],"stage":"ug-foundation","title":"Trace asynchronous completion"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.systems"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Mark which data leaves the local computer and which remains local.","id":"computing.network.packet","misconception":"A network connection does not imply an application request succeeded.","objective":"Identify sender, receiver, payload and response in a request exchange.","recommended":[],"requires":[{"id":"computing.software.module-contract","reason":"The network interface has explicit input and output expectations."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Execution, memory, communication and reliability models for robot applications.","sourceIds":["architecture","systems","python"],"stage":"ug-foundation","title":"Trace a request across a network boundary"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.systems"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Distinguish timeout from a confirmed rejected request.","id":"computing.network.timeout","misconception":"No reply does not prove that the server performed no action.","objective":"Specify a time limit and an explicit outcome when no reply arrives.","recommended":[],"requires":[{"id":"computing.network.packet","reason":"The missing event is a response to a specific request."},{"id":"computing.concurrent.async","reason":"Request and completion occur at different times."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Execution, memory, communication and reliability models for robot applications.","sourceIds":["architecture","systems","python"],"stage":"ug-foundation","title":"Bound a request with a timeout"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.systems"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain how an operation identifier can suppress duplicate processing.","id":"computing.network.idempotency","misconception":"A timeout is not evidence that repeating the action is harmless.","objective":"Determine whether repeating an operation can duplicate an externally visible effect.","recommended":[],"requires":[{"id":"computing.network.timeout","reason":"Uncertain completion motivates retry analysis."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Execution, memory, communication and reliability models for robot applications.","sourceIds":["architecture","systems","python"],"stage":"ug-foundation","title":"Assess whether retrying is safe"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.systems"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Identify accidental disclosure routes in a supplied example.","id":"computing.security.secret","misconception":"A credential remains secret even when the application using it is public.","objective":"Separate a credential from source text, logs and user-visible data.","recommended":[],"requires":[{"id":"computing.file.run","reason":"Saved code can persist and be shared independently of execution."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Execution, memory, communication and reliability models for robot applications.","sourceIds":["architecture","systems","python"],"stage":"ug-foundation","title":"Keep credentials out of program content"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.systems"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Trace a bounded parser or allowlist and reject an executable-looking response.","id":"computing.security.data-vs-code","misconception":"Text that resembles a command does not have authority to run.","objective":"Prevent a supplied external response from being interpreted as executable instructions.","recommended":[],"requires":[{"id":"computing.python.validate-input","reason":"Only explicitly admitted values can cross the execution boundary."},{"id":"computing.network.packet","reason":"External payloads originate outside the trusted local program."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Execution, memory, communication and reliability models for robot applications.","sourceIds":["architecture","systems","python"],"stage":"ug-foundation","title":"Treat untrusted text as data"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.systems"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain which missing record would prevent reproducing a failure.","id":"computing.software.reproduce","misconception":"A screenshot of success does not record the executable environment.","objective":"Record code revision, inputs, dependency versions and relevant configuration.","recommended":[],"requires":[{"id":"computing.software.module-contract","reason":"Dependencies and their interfaces influence behavior."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Execution, memory, communication and reliability models for robot applications.","sourceIds":["architecture","systems","python"],"stage":"ug-foundation","title":"Record a reproducible software run"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.engineering"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Distinguish elementwise multiplication from a matrix product.","id":"computing.array.shape","misconception":"Broadcasting can produce a valid shape with the wrong physical meaning.","objective":"Determine whether a vector or matrix operation has compatible dimensions.","recommended":[],"requires":[{"id":"math.matrix.multiply","reason":"Linear algebra provides the intended dimension contract."},{"id":"computing.python.index","reason":"Array axes generalize indexed sequence dimensions."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Array computation, timing constraints and verification of software interacting with sensors.","sourceIds":["systems","architecture","deep-learning"],"stage":"ug-advanced","title":"Check array shapes before an operation"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.engineering"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Check equivalence on a small case and identify an unintended broadcast.","id":"computing.array.vectorize","misconception":"Vectorization does not remove dependency between sequential state updates.","objective":"Express independent elementwise calculations as one shape-consistent array operation.","recommended":[],"requires":[{"id":"computing.array.shape","reason":"Vectorized operations require deliberate axis alignment."},{"id":"computing.python.for-write","reason":"The original loop states which operations are independent."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Array computation, timing constraints and verification of software interacting with sensors.","sourceIds":["systems","architecture","deep-learning"],"stage":"ug-advanced","title":"Replace a scalar loop with an array operation"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.engineering"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Report absolute and relative discrepancy while avoiding nondifferentiable points.","id":"computing.numeric.gradient-check","misconception":"One matching coordinate at one step size does not validate a full gradient.","objective":"Compare analytic derivatives with finite differences across several step sizes.","recommended":[],"requires":[{"id":"math.calculus.gradient","reason":"The implemented quantity is a vector of partial derivatives."},{"id":"math.numeric.floating-error","reason":"Finite-difference checks balance truncation against rounding."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Array computation, timing constraints and verification of software interacting with sensors.","sourceIds":["systems","architecture","deep-learning"],"stage":"ug-advanced","title":"Check an implemented gradient"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.engineering"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Separate average latency from worst-case deadline behavior.","id":"computing.embedded.deadline","misconception":"A low average execution time does not guarantee every deadline.","objective":"Compare acquisition, computation and output time with a required period.","recommended":[],"requires":[{"id":"signal.sample.index-time","reason":"The sample period defines when the next output is needed."},{"id":"computing.algorithm.complexity","reason":"Input-dependent work can change execution time."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Array computation, timing constraints and verification of software interacting with sensors.","sourceIds":["systems","architecture","deep-learning"],"stage":"ug-advanced","title":"Budget a periodic task deadline"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.engineering"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain a lost-event or blocked-handler failure.","id":"computing.embedded.interrupt","misconception":"An interrupt handler should not assume arbitrary waiting is acceptable.","objective":"Place bounded event capture in a handler and longer work in a scheduled task.","recommended":[],"requires":[{"id":"computing.concurrent.race","reason":"Handler and task interleavings can access shared state."},{"id":"computing.embedded.deadline","reason":"Event response must fit timing constraints."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Array computation, timing constraints and verification of software interacting with sensors.","sourceIds":["systems","architecture","deep-learning"],"stage":"ug-advanced","title":"Separate interrupt work from deferred work"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.engineering"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Identify clock offset and transport delay in a sample log.","id":"computing.embedded.timestamp","misconception":"Arrival time is not necessarily measurement time.","objective":"Associate readings using their timestamps rather than arrival order alone.","recommended":[],"requires":[{"id":"computing.concurrent.async","reason":"Different streams can arrive in a different order."},{"id":"signal.sample.index-time","reason":"Samples need an explicit temporal coordinate."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Array computation, timing constraints and verification of software interacting with sensors.","sourceIds":["systems","architecture","deep-learning"],"stage":"ug-advanced","title":"Align sensor records by acquisition time"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.engineering"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Show a counterexample that violates the property and explain its significance.","id":"computing.software.property-test","misconception":"Generated tests still require an independently meaningful property.","objective":"State an invariant over a range of generated valid inputs.","recommended":[],"requires":[{"id":"computing.algorithm.invariant","reason":"The property specifies correctness beyond individual examples."},{"id":"computing.python.test-cases","reason":"Examples provide concrete expected behavior to generalize."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Array computation, timing constraints and verification of software interacting with sensors.","sourceIds":["systems","architecture","deep-learning"],"stage":"ug-advanced","title":"Specify a property-based check"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.engineering"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Record which downstream actions must be inhibited after the injected failure.","id":"computing.software.fault-injection","misconception":"A fake-device pass does not establish physical fault behavior.","objective":"Inject a simulated missing, stale or malformed input and verify the intended response.","recommended":[],"requires":[{"id":"computing.python.exception","reason":"Failure handling must be exercised deliberately."},{"id":"computing.python.validate-input","reason":"Invalid data cases define meaningful injected faults."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Array computation, timing constraints and verification of software interacting with sensors.","sourceIds":["systems","architecture","deep-learning"],"stage":"ug-advanced","title":"Test a controlled failure path"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.engineering"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Separate wall time, compute time and I/O waiting.","id":"computing.software.profile","misconception":"Optimizing a small fraction of runtime has a bounded overall benefit.","objective":"Measure execution cost by stage and prioritize the dominant contribution.","recommended":[],"requires":[{"id":"computing.embedded.deadline","reason":"The timing budget identifies which costs matter."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Array computation, timing constraints and verification of software interacting with sensors.","sourceIds":["systems","architecture","deep-learning"],"stage":"ug-advanced","title":"Locate a measured performance bottleneck"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.machine-learning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain why adjacent video frames should not automatically be random-split across sets.","id":"computing.ml.dataset-split","misconception":"A test set reused for tuning becomes part of the development process.","objective":"Separate training, validation and test data using a split appropriate to correlated observations.","recommended":[],"requires":[{"id":"math.stats.sample-bias","reason":"The partition must represent the intended deployment population."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supervised-learning objectives, optimization, validation and neural computation for robot data.","sourceIds":["deep-learning","vision"],"stage":"ug-advanced","title":"Partition data without leakage"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.machine-learning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Report the prediction target, loss and a simple baseline.","id":"computing.ml.linear-regression","misconception":"Training fit alone does not establish predictive usefulness.","objective":"Estimate a linear prediction rule and evaluate residuals on held-out examples.","recommended":[],"requires":[{"id":"math.linear.least-squares","reason":"The linear fit minimizes a residual objective."},{"id":"computing.ml.dataset-split","reason":"Held-out data checks generalization beyond fitting."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supervised-learning objectives, optimization, validation and neural computation for robot data.","sourceIds":["deep-learning","vision"],"stage":"ug-advanced","title":"Fit and evaluate a regression predictor"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.machine-learning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Distinguish predicted probability from the chosen class label.","id":"computing.ml.logistic","misconception":"Changing the threshold changes the decision without changing the probability model.","objective":"Map a linear score through a sigmoid and apply a stated decision threshold.","recommended":[],"requires":[{"id":"math.function.exponential","reason":"The sigmoid uses an exponential score transformation."},{"id":"math.vector.dot","reason":"A linear score is a weighted feature dot product."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supervised-learning objectives, optimization, validation and neural computation for robot data.","sourceIds":["deep-learning","vision"],"stage":"ug-advanced","title":"Compute a binary classifier probability"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.machine-learning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain the cost of false positives and false negatives in the stated application.","id":"computing.ml.confusion","misconception":"Accuracy can hide poor performance on a rare important class.","objective":"Construct a confusion matrix and calculate precision and recall.","recommended":[],"requires":[{"id":"math.ratio.percent","reason":"Classification rates are fractions of explicitly chosen totals."},{"id":"computing.ml.dataset-split","reason":"Evaluation must use an appropriate held-out population."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supervised-learning objectives, optimization, validation and neural computation for robot data.","sourceIds":["deep-learning","vision"],"stage":"ug-advanced","title":"Calculate classification error measures"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.machine-learning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Identify an underfit and an overfit regime using learning evidence.","id":"computing.ml.regularization","misconception":"A lower training error is not always a better generalizing model.","objective":"Compare validation performance as model capacity or a penalty changes.","recommended":[],"requires":[{"id":"computing.ml.linear-regression","reason":"A fitted predictor supplies training and held-out residuals to compare."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supervised-learning objectives, optimization, validation and neural computation for robot data.","sourceIds":["deep-learning","vision"],"stage":"ug-advanced","title":"Evaluate a regularization tradeoff"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.machine-learning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Track batch, feature and output shapes.","id":"computing.ml.neuron","misconception":"Stacking linear layers without nonlinearities remains a linear map.","objective":"Compute an affine transform followed by a nonlinear activation.","recommended":[],"requires":[{"id":"computing.array.shape","reason":"Layer inputs and weight dimensions must align."},{"id":"math.function.compose","reason":"Activation is composed with the affine operation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supervised-learning objectives, optimization, validation and neural computation for robot data.","sourceIds":["deep-learning","vision"],"stage":"ug-advanced","title":"Evaluate a neural layer"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.machine-learning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Compute parameter gradients and compare with a numerical gradient check.","id":"computing.ml.backprop","misconception":"A gradient is not itself a parameter update until a learning rule uses it.","objective":"Apply the chain rule backward through a small computation graph.","recommended":[],"requires":[{"id":"math.calculus.chain-rule","reason":"Gradient contributions follow composed operations."},{"id":"computing.ml.neuron","reason":"The layer’s operations define the differentiation graph."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supervised-learning objectives, optimization, validation and neural computation for robot data.","sourceIds":["deep-learning","vision"],"stage":"ug-advanced","title":"Backpropagate a scalar loss"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.machine-learning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain variation across batches and the role of a learning rate.","id":"computing.ml.sgd","misconception":"An individual minibatch step can increase full-dataset loss.","objective":"Use a minibatch loss gradient to perform a stochastic parameter update.","recommended":[],"requires":[{"id":"computing.ml.backprop","reason":"Backpropagation supplies the batch gradient."},{"id":"math.optimization.gradient-step","reason":"The learning rule converts that gradient into a parameter change."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supervised-learning objectives, optimization, validation and neural computation for robot data.","sourceIds":["deep-learning","vision"],"stage":"ug-advanced","title":"Update a model with minibatch gradients"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.machine-learning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain parameter sharing and distinguish feature channels from images.","id":"computing.ml.convolution","misconception":"A convolutional channel is not necessarily a physical color channel.","objective":"Apply a shared spatial kernel and determine output dimensions from stride and padding.","recommended":[],"requires":[{"id":"computing.array.shape","reason":"Spatial and channel dimensions determine the operation."},{"id":"computing.ml.neuron","reason":"Learned feature responses use weighted operations and nonlinearities."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supervised-learning objectives, optimization, validation and neural computation for robot data.","sourceIds":["deep-learning","vision"],"stage":"ug-advanced","title":"Compute a convolutional feature map"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.machine-learning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Compare with a task-specific baseline and check distribution mismatch.","id":"computing.ml.transfer","misconception":"Pretraining does not guarantee suitability for a new camera or environment.","objective":"Choose frozen and trainable layers and evaluate adaptation on a target dataset.","recommended":[],"requires":[{"id":"computing.ml.regularization","reason":"Limited target data makes capacity and overfitting important."},{"id":"computing.ml.neuron","reason":"Layer structure determines which representation is reused."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Supervised-learning objectives, optimization, validation and neural computation for robot data.","sourceIds":["deep-learning","vision"],"stage":"ug-advanced","title":"Adapt a pretrained representation"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.learning-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Check sequence dimensions and show the effect of masking one position.","id":"computing.ml.attention","misconception":"Attention weights alone do not establish a causal explanation.","objective":"Form query-key scores, normalized weights and a weighted value combination.","recommended":[],"requires":[{"id":"math.matrix.multiply","reason":"Attention scores and value combinations are matrix products."},{"id":"computing.ml.neuron","reason":"Learned projections produce query, key and value representations."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected research competencies for robot perception and policy learning; methods require task-specific empirical validation.","sourceIds":["deep-learning","ai","underactuated"],"stage":"graduate","title":"Calculate an attention operation"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.learning-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain which information the representation is encouraged to preserve or discard.","id":"computing.ml.latent-model","misconception":"A compact latent code does not automatically preserve task-relevant information.","objective":"Separate reconstruction and latent regularization terms in a supplied objective.","recommended":[],"requires":[{"id":"computing.ml.regularization","reason":"The latent objective balances fit with a constraint or penalty."},{"id":"math.probability.density","reason":"Probabilistic latent models require densities."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected research competencies for robot perception and policy learning; methods require task-specific empirical validation.","sourceIds":["deep-learning","ai","underactuated"],"stage":"graduate","title":"Evaluate a latent representation objective"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.learning-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Report a failure slice and avoid tuning on the final shift test.","id":"computing.ml.ood","misconception":"Confidence from an in-distribution model may be unreliable after a shift.","objective":"Define a deployment shift and evaluate performance separately under that shift.","recommended":[],"requires":[{"id":"computing.ml.dataset-split","reason":"Shift evaluation needs a protected comparison dataset."},{"id":"computing.ml.confusion","reason":"The resulting failures require task-relevant metrics."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected research competencies for robot perception and policy learning; methods require task-specific empirical validation.","sourceIds":["deep-learning","ai","underactuated"],"stage":"graduate","title":"Test a model under distribution shift"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.learning-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Distinguish calibration error from classification accuracy.","id":"computing.ml.calibration","misconception":"A highly accurate classifier can still be overconfident.","objective":"Compare predicted confidence bins with their empirical outcome frequencies.","recommended":[],"requires":[{"id":"computing.ml.logistic","reason":"The model must produce probabilities or confidences."},{"id":"computing.ml.confusion","reason":"Correctness of predictions must be measured separately."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected research competencies for robot perception and policy learning; methods require task-specific empirical validation.","sourceIds":["deep-learning","ai","underactuated"],"stage":"graduate","title":"Assess predictive calibration"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.learning-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain what information must be in state for the chosen transition model.","id":"computing.rl.mdp","misconception":"An observation need not contain the full Markov state.","objective":"Define state, action, transition, reward and termination for a bounded decision task.","recommended":[],"requires":[{"id":"math.probability.markov","reason":"Controlled transitions extend conditional state evolution."},{"id":"computing.state.machine","reason":"Actions and events alter a retained task state."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected research competencies for robot perception and policy learning; methods require task-specific empirical validation.","sourceIds":["deep-learning","ai","underactuated"],"stage":"graduate","title":"Specify a Markov decision process"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.learning-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"State the discount and terminal-state convention.","id":"computing.rl.bellman","misconception":"Immediate reward and long-term value are different quantities.","objective":"Compute a value update from immediate reward and expected future value.","recommended":[],"requires":[{"id":"computing.rl.mdp","reason":"The backup requires transitions, rewards and terminal rules."},{"id":"math.probability.expectation","reason":"Future value is averaged over possible next states."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected research competencies for robot perception and policy learning; methods require task-specific empirical validation.","sourceIds":["deep-learning","ai","underactuated"],"stage":"graduate","title":"Apply a Bellman backup"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.learning-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Check a stopping criterion and explain dependence on model assumptions.","id":"computing.rl.value-iteration","misconception":"A greedy action with respect to an inaccurate value function need not be optimal.","objective":"Repeatedly apply optimal Bellman backups and extract a greedy policy.","recommended":[],"requires":[{"id":"computing.rl.bellman","reason":"The iteration repeatedly applies the Bellman optimality operator."},{"id":"computing.algorithm.dynamic-programming","reason":"Stored state values reuse subproblem results."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected research competencies for robot perception and policy learning; methods require task-specific empirical validation.","sourceIds":["deep-learning","ai","underactuated"],"stage":"graduate","title":"Perform finite-state value iteration"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.learning-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Identify the TD error and distinguish it from a full Monte Carlo return.","id":"computing.rl.td","misconception":"A bootstrapped target includes an estimate and can be biased.","objective":"Update a value estimate using one sampled reward and bootstrapped next value.","recommended":[],"requires":[{"id":"computing.rl.bellman","reason":"TD approximates a Bellman target from sampled experience."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected research competencies for robot perception and policy learning; methods require task-specific empirical validation.","sourceIds":["deep-learning","ai","underactuated"],"stage":"graduate","title":"Compute a temporal-difference update"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.learning-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain the baseline’s variance-reduction role.","id":"computing.rl.policy-gradient","misconception":"A policy gradient does not require differentiating through the physical environment.","objective":"Weight a sampled action log-probability gradient by a return or advantage estimate.","recommended":[],"requires":[{"id":"computing.ml.backprop","reason":"The policy network must differentiate action log probabilities."},{"id":"computing.rl.mdp","reason":"Trajectory rewards define the policy objective."},{"id":"math.probability.expectation","reason":"The gradient estimate targets an expected return."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected research competencies for robot perception and policy learning; methods require task-specific empirical validation.","sourceIds":["deep-learning","ai","underactuated"],"stage":"graduate","title":"Estimate a policy-gradient contribution"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.learning-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain coverage limitations when logged actions omit relevant alternatives.","id":"computing.rl.off-policy","misconception":"A large replay buffer does not guarantee coverage of a new policy’s states.","objective":"Distinguish the behavior policy from the policy being evaluated or improved.","recommended":[],"requires":[{"id":"computing.rl.td","reason":"Bootstrapped value updates may use experience from another policy."},{"id":"math.probability.conditional","reason":"Policy differences change the distribution of sampled actions."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected research competencies for robot perception and policy learning; methods require task-specific empirical validation.","sourceIds":["deep-learning","ai","underactuated"],"stage":"graduate","title":"Diagnose off-policy data mismatch"},{"alternatives":[],"applications":["general"],"clusterIds":["computing.learning-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"computing","evidence":"Explain what a performance difference can and cannot attribute to the component.","id":"computing.ml.ablation","misconception":"An unfairly tuned baseline does not isolate the claimed contribution.","objective":"Remove or replace one model component while controlling training and evaluation conditions.","recommended":[],"requires":[{"id":"computing.ml.dataset-split","reason":"The same held-out evidence must evaluate all variants."},{"id":"physics.experiment.control","reason":"A controlled change is necessary for an interpretable comparison."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected research competencies for robot perception and policy learning; methods require task-specific empirical validation.","sourceIds":["deep-learning","ai","underactuated"],"stage":"graduate","title":"Design an informative model ablation"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.mechanism-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The explanation names motor, gears, position sensor and controller roles. It provides a conceptual model rather than an independent component-identification assessment.","mission":"reachy-moves","nodeId":"robot.servo.parts","section":"Inside a servo: aim, measure, correct","sourcePath":"course/missions/02-reachy-moves.mjs","status":"introduced","title":"Reachy Moves Carefully","url":"index.html#mission-2-reachy-moves"}],"status":"introduced"},"domain":"robotics","evidence":"Explain each part’s contribution to changing and measuring shaft position.","id":"robot.servo.parts","misconception":"A servo is a complete feedback assembly rather than only its motor.","objective":"Locate a motor, reduction gears, position sensor and controller in a supplied servo diagram.","recommended":[],"requires":[],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Identify mechanisms and trace a slow rounded half-error teaching model. No node here authorizes real controller tuning, blocking a servo or physical repair.","sourceIds":["servo","reachy-hardware","reachy-config"],"stage":"g6-8","title":"Identify a position servo’s functional parts"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.mechanism-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The learner compares the requested target with the measured shaft position in the feedback lab and explains their different roles.","mission":"reachy-moves","nodeId":"robot.servo.target-measured","section":"Inside a servo: aim, measure, correct","sourcePath":"course/missions/02-reachy-moves.mjs","status":"practiced","title":"Reachy Moves Carefully","url":"index.html#mission-2-reachy-moves"}],"status":"practiced"},"domain":"robotics","evidence":"Explain why sending a target does not prove the shaft reached it.","id":"robot.servo.target-measured","misconception":"A target is a request, not a measurement.","objective":"Identify the requested shaft angle separately from the sensor-reported angle.","recommended":[],"requires":[{"id":"robot.servo.parts","reason":"The controller receives a request and a distinct sensor reading."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Identify mechanisms and trace a slow rounded half-error teaching model. No node here authorizes real controller tuning, blocking a servo or physical repair.","sourceIds":["servo","reachy-hardware","reachy-config"],"stage":"g6-8","title":"Distinguish target and measured position"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.mechanism-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The explanation defines target minus measured angle; the linked lab and exit prompt ask for a signed position-error calculation.","mission":"reachy-moves","nodeId":"robot.servo.position-error","section":"Inside a servo: aim, measure, correct","sourcePath":"course/missions/02-reachy-moves.mjs","status":"practiced","title":"Reachy Moves Carefully","url":"index.html#mission-2-reachy-moves"}],"status":"practiced"},"domain":"robotics","evidence":"Calculate positive, negative and zero errors and label degrees.","id":"robot.servo.position-error","misconception":"Reversing the subtraction reverses the correction direction.","objective":"Subtract measured angle from target angle using the stated sign convention.","recommended":[],"requires":[{"id":"robot.servo.target-measured","reason":"The two values play different roles in the error subtraction."},{"id":"math.number.signed-subtract","reason":"Signed subtraction determines the error magnitude and direction."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Identify mechanisms and trace a slow rounded half-error teaching model. No node here authorizes real controller tuning, blocking a servo or physical repair.","sourceIds":["servo","reachy-hardware","reachy-config"],"stage":"g6-8","title":"Calculate signed servo position error"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.mechanism-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"explorer","evidence":"The learner changes a signed target and steps the fixed half-error controller, predicting which direction reduces the position error.","mission":"servo-feedback","nodeId":"robot.servo.correction-direction","section":"Be the servo’s controller","sourcePath":"web/labs.js","status":"practiced","title":"Be the servo’s controller","url":"index.html#mission-2-reachy-moves"}],"status":"practiced"},"domain":"robotics","evidence":"Trace one positive and one negative correction and recompute the remaining error.","id":"robot.servo.correction-direction","misconception":"The classroom half-error rule is not a description of the installed controller.","objective":"Use the sign of error to predict the next rounded half-error teaching step.","recommended":[],"requires":[{"id":"robot.servo.position-error","reason":"The model’s correction follows the error sign and magnitude."},{"id":"math.number.fraction-multiply","reason":"The teaching step uses a fraction of the remaining error."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Identify mechanisms and trace a slow rounded half-error teaching model. No node here authorizes real controller tuning, blocking a servo or physical repair.","sourceIds":["servo","reachy-hardware","reachy-config"],"stage":"g6-8","title":"Predict a conceptual servo correction"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.mechanism-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"explorer","evidence":"The learner disconnects the pretend position sensor and explains why this model stops correcting without a known error; real-device behavior is explicitly distinguished.","mission":"servo-feedback","nodeId":"robot.servo.feedback-loss","section":"Be the servo’s controller","sourcePath":"web/labs.js","status":"practiced","title":"Be the servo’s controller","url":"index.html#mission-2-reachy-moves"}],"status":"practiced"},"domain":"robotics","evidence":"Mark target as known and measurement/error as unknown after simulated sensor loss.","id":"robot.servo.feedback-loss","misconception":"Missing feedback does not imply the actual shaft angle is zero.","objective":"Explain why the teaching controller cannot calculate a known error without a measurement.","recommended":[],"requires":[{"id":"robot.servo.target-measured","reason":"Feedback is the measured value needed to compare with the request."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Identify mechanisms and trace a slow rounded half-error teaching model. No node here authorizes real controller tuning, blocking a servo or physical repair.","sourceIds":["servo","reachy-hardware","reachy-config"],"stage":"g6-8","title":"Explain loss of position feedback"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.mechanism-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The explanation and exit prompt ask why a head roll does not mean all six head servos rotate by that same angle.","mission":"reachy-moves","nodeId":"robot.pose.joint-vs-head","section":"Inside a servo: aim, measure, correct","sourcePath":"course/missions/02-reachy-moves.mjs","status":"practiced","title":"Reachy Moves Carefully","url":"index.html#mission-2-reachy-moves"}],"status":"practiced"},"domain":"robotics","evidence":"Reject a claim that every servo equals the requested head roll angle.","id":"robot.pose.joint-vs-head","misconception":"A head rotation is not copied identically into every supporting joint.","objective":"Explain that coordinated joint values produce one task-space head pose.","recommended":[],"requires":[{"id":"robot.servo.target-measured","reason":"Individual servo targets refer to shaft coordinates."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Identify mechanisms and trace a slow rounded half-error teaching model. No node here authorizes real controller tuning, blocking a servo or physical repair.","sourceIds":["reachy-hardware","modern-robotics"],"stage":"g6-8","title":"Distinguish joint angle from head pose"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.mechanism-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The software-name/electronic-ID table identifies stewart_1 as ID 11; the learner copies the exact reported name/ID instead of confusing it with a sticker number.","mission":"motor-detective","nodeId":"robot.bus.address-crosswalk","section":"Nine servos, three jobs","sourcePath":"course/missions/00-motor-detective.mjs","status":"practiced","title":"Motor Detective","url":"index.html#mission-0-motor-detective"},{"auditedAt":"2026-09-10","course":"explorer","evidence":"The explorer’s scavenger hunt asks the learner to select head servo 1 and state its software name and electronic ID from the pinned SDK crosswalk.","mission":"anatomy","nodeId":"robot.bus.address-crosswalk","section":"One servo, three ways to name it","sourcePath":"web/anatomy.html","status":"practiced","title":"Reachy 3D anatomy explorer","url":"anatomy.html"}],"status":"practiced"},"domain":"robotics","evidence":"Locate stewart_1 and verify ID 11 in the stated 1.10.0 configuration.","id":"robot.bus.address-crosswalk","misconception":"Assembly labels, list positions and bus IDs need not be the same number.","objective":"Use a pinned configuration to translate a physical label into an SDK name and bus address.","recommended":[],"requires":[{"id":"robot.servo.parts","reason":"The physical servo being identified must be distinguished from its component parts."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Read a supplied pinned crosswalk; do not infer wire ordering or rewrite addresses from an ID number.","sourceIds":["reachy-config"],"stage":"g6-8","title":"Map a motor name to its bus ID"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.mechanism-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"explorer","evidence":"The scavenger hunt asks the learner to name a force-carrying part and a data-carrying connection in the exploded drawing.","mission":"anatomy","nodeId":"robot.links.force-vs-data","section":"Try a two-minute scavenger hunt","sourcePath":"web/anatomy.html","status":"practiced","title":"Reachy 3D anatomy explorer","url":"anatomy.html"}],"status":"practiced"},"domain":"robotics","evidence":"Trace a load-bearing rod separately from a motor bus cable.","id":"robot.links.force-vs-data","misconception":"A visible mechanical connection does not guarantee electrical communication.","objective":"Identify which connections carry load, electrical power or information in a robot diagram.","recommended":[],"requires":[{"id":"robot.servo.parts","reason":"The actuator has mechanical output and electrical interfaces with different functions."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Identify mechanisms and trace a slow rounded half-error teaching model. No node here authorizes real controller tuning, blocking a servo or physical repair.","sourceIds":["servo","reachy-hardware","reachy-config"],"stage":"g6-8","title":"Distinguish mechanical links from communication links"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.mechanism-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"State the assumed source entry point before listing affected devices.","id":"robot.bus.break-path","misconception":"A missing-device report does not prove a particular cable is broken.","objective":"Find which downstream devices lose a path after one edge is removed from a supplied chain.","recommended":[],"requires":[{"id":"elec.circuit.closed-loop","reason":"Loss of a required route explains downstream path loss."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Identify mechanisms and trace a slow rounded half-error teaching model. No node here authorizes real controller tuning, blocking a servo or physical repair.","sourceIds":["servo","reachy-hardware","reachy-config"],"stage":"g6-8","title":"Predict a break in a stated shared path"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.mechanism-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The investigation separates network and servo evidence and asks the learner to explain why a missing motor is a clue, not proof of a loose cable.","mission":"motor-detective","nodeId":"robot.debug.clue-vs-cause","section":"Nine servos, three jobs","sourcePath":"course/missions/00-motor-detective.mjs","status":"practiced","title":"Motor Detective","url":"index.html#mission-0-motor-detective"}],"status":"practiced"},"domain":"robotics","evidence":"Distinguish network responsiveness, motor power and device response evidence.","id":"robot.debug.clue-vs-cause","misconception":"A missing motor response alone does not identify the failed component.","objective":"Record a missing-response observation and list distinct compatible hypotheses.","recommended":[],"requires":[{"id":"robot.links.force-vs-data","reason":"Mechanical, power and communication paths can fail independently."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Identify mechanisms and trace a slow rounded half-error teaching model. No node here authorizes real controller tuning, blocking a servo or physical repair.","sourceIds":["servo","reachy-hardware","reachy-config"],"stage":"g6-8","title":"Separate a diagnostic clue from its cause"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.mechanism-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The learner changes only the approved motion-duration setting, compares the same greeting, and accounts for multiple target durations.","mission":"reachy-moves","nodeId":"robot.motion.duration","section":"One variable, one controlled change","sourcePath":"course/missions/02-reachy-moves.mjs","status":"practiced","title":"Reachy Moves Carefully","url":"index.html#mission-2-reachy-moves"}],"status":"practiced"},"domain":"robotics","evidence":"Compare the same three-target sequence with two per-target durations.","id":"robot.motion.duration","misconception":"A per-target duration is not automatically the duration of the whole program.","objective":"Sum the declared durations of sequential targets while separating connection overhead.","recommended":[],"requires":[{"id":"math.number.decimal-calculate","reason":"The plan total combines the same duration once per target."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Identify mechanisms and trace a slow rounded half-error teaching model. No node here authorizes real controller tuning, blocking a servo or physical repair.","sourceIds":["servo","reachy-hardware","reachy-config"],"stage":"g6-8","title":"Predict a fixed motion sequence’s duration"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.mechanism-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"explorer","evidence":"The simulated head-dance challenge asks the learner to predict the direction of positive roll, change the angle list, and observe the planned movement.","mission":"code-lab","nodeId":"robot.motion.pose-axes","section":"A tiny head dance","sourcePath":"web/code-lab.js","status":"practiced","title":"Simulated Python robot lab · choose Code \u0026 play","url":"anatomy.html#explorer-controls"}],"status":"practiced"},"domain":"robotics","evidence":"Predict a small signed rotation from the robot’s viewpoint.","id":"robot.motion.pose-axes","misconception":"A viewer’s left and the robot’s left can differ.","objective":"Identify roll, pitch or yaw relative to the supplied robot coordinate convention.","recommended":[],"requires":[{"id":"math.geometry.angle","reason":"A signed rotation needs a reference and viewing convention."},{"id":"robot.pose.joint-vs-head","reason":"The pose axis belongs to the head frame rather than one servo shaft."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Identify mechanisms and trace a slow rounded half-error teaching model. No node here authorizes real controller tuning, blocking a servo or physical repair.","sourceIds":["servo","reachy-hardware","reachy-config"],"stage":"g6-8","title":"Interpret a pose-axis request"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Contrast camera/microphone input with speaker/actuator output.","id":"robot.sense.input-output","misconception":"A component’s physical location does not decide whether it is an input or output.","objective":"Identify whether a component collects a measurement or produces an external effect.","recommended":[],"requires":[],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Classify a robot input or output"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The learner interprets height, width and three channels in a saved image shape and calculates the pixel count.","mission":"reachy-sees","nodeId":"robot.sense.image-shape","section":"Sensing is not understanding","sourcePath":"course/missions/03-reachy-sees.mjs","status":"practiced","title":"Reachy Sees Pixels","url":"index.html#mission-3-reachy-sees"}],"status":"practiced"},"domain":"robotics","evidence":"Calculate the number of pixels without multiplying by channel count.","id":"robot.sense.image-shape","misconception":"Three color channels do not mean three separate photographs.","objective":"Read height, width and channel count from a supplied image-array shape.","recommended":[],"requires":[{"id":"computing.python.index","reason":"The ordered shape entries have distinct positions and meanings."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Interpret an image shape"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"OpenCV’s BGR channel order is explained, but the exercise does not explicitly practice converting or manipulating channel order.","mission":"reachy-sees","nodeId":"robot.sense.bgr","section":"Sensing is not understanding","sourcePath":"course/missions/03-reachy-sees.mjs","status":"introduced","title":"Reachy Sees Pixels","url":"index.html#mission-3-reachy-sees"}],"status":"introduced"},"domain":"robotics","evidence":"Explain the color error caused by treating BGR data as RGB.","id":"robot.sense.bgr","misconception":"Channel order is an interface convention that must be checked.","objective":"Identify blue, green and red values in a declared BGR channel ordering.","recommended":[],"requires":[{"id":"robot.sense.image-shape","reason":"Channel count and ordering are properties of image representation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Interpret a BGR pixel"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The activity distinguishes captured sensor values from recognizing a toy; the exit prompt explicitly asks whether dimensions imply understanding.","mission":"reachy-sees","nodeId":"robot.sense.pixel-vs-object","section":"Sensing is not understanding","sourcePath":"course/missions/03-reachy-sees.mjs","status":"practiced","title":"Reachy Sees Pixels","url":"index.html#mission-3-reachy-sees"}],"status":"practiced"},"domain":"robotics","evidence":"Name a lighting or viewpoint change that could alter the recognition result.","id":"robot.sense.pixel-vs-object","misconception":"Capturing a frame does not by itself identify the object.","objective":"Separate an image measurement from a recognition claim about its contents.","recommended":[],"requires":[{"id":"robot.sense.input-output","reason":"A camera supplies measurements that need interpretation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Distinguish pixels from an object interpretation"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The learner predicts sample_rate times seconds for a three-second clip and distinguishes that ideal count from actual captured duration.","mission":"reachy-listens","nodeId":"robot.audio.sample-count","section":"Record one bounded clip","sourcePath":"course/missions/05-reachy-listens.mjs","status":"practiced","title":"Reachy Listens Carefully","url":"index.html#mission-5-reachy-listens"}],"status":"practiced"},"domain":"robotics","evidence":"Keep channel count separate and check the saved clip’s actual duration.","id":"robot.audio.sample-count","misconception":"The ideal count does not prove a recording was successfully saved.","objective":"Multiply sample rate by duration to predict samples per channel.","recommended":[],"requires":[{"id":"math.ratio.unit-rate","reason":"Sample rate counts samples per second."},{"id":"math.number.decimal-calculate","reason":"Rate times duration produces the predicted count."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Predict an audio sample count"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The learner separates file availability, playback request, and sound actually heard, recording the first missing step when playback fails.","mission":"reachy-speaks","nodeId":"robot.audio.playback-evidence","section":"Ask the speaker to play","sourcePath":"course/missions/04-reachy-speaks.mjs","status":"practiced","title":"Reachy Speaks","url":"index.html#mission-4-reachy-speaks"}],"status":"practiced"},"domain":"robotics","evidence":"Record the first missing piece of evidence when a speaker stays silent.","id":"robot.audio.playback-evidence","misconception":"A successful API return is not evidence that a person heard the sound.","objective":"Separate file availability, playback request and independently observed sound.","recommended":[],"requires":[{"id":"robot.sense.input-output","reason":"The intended effect is an audible output."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Verify audible playback"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The recording investigation asks the learner to listen locally and check one possible transcription mistake before trusting a transcript.","mission":"reachy-listens","nodeId":"robot.audio.transcript-check","section":"Record one bounded clip","sourcePath":"course/missions/05-reachy-listens.mjs","status":"practiced","title":"Reachy Listens Carefully","url":"index.html#mission-5-reachy-listens"}],"status":"practiced"},"domain":"robotics","evidence":"Identify a plausible recognition error and its effect on a named rule.","id":"robot.audio.transcript-check","misconception":"A transcript is an interpretation rather than a perfect record of the waveform.","objective":"Compare a guessed transcript with local audio before it influences a decision.","recommended":[],"requires":[{"id":"robot.sense.pixel-vs-object","reason":"The measurement-versus-interpretation distinction also applies to audio."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Check a transcript against its recording"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The lesson requires agreement from everyone nearby before recording and makes a deliberate bounded recording instead of continuous listening.","mission":"reachy-listens","nodeId":"robot.privacy.recording-gate","section":"Record one bounded clip","sourcePath":"course/missions/05-reachy-listens.mjs","status":"practiced","title":"Reachy Listens Carefully","url":"index.html#mission-5-reachy-listens"}],"status":"practiced"},"domain":"robotics","evidence":"Trace a denial case in which recording does not start.","id":"robot.privacy.recording-gate","misconception":"Permission to use the robot does not automatically mean permission to record nearby people.","objective":"Determine whether explicit agreement has been obtained before a bounded recording.","recommended":[],"requires":[],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Apply a recording-consent gate"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The supervised turn has explicit privacy gates; the learning outcome includes demonstrating a denied gate without a later upload.","mission":"robot-friend","nodeId":"robot.privacy.upload-gate","section":"Name the limitation at each stage","sourcePath":"course/missions/08-robot-friend.mjs","status":"practiced","title":"Build a Robot Friend","url":"index.html#mission-8-robot-friend"}],"status":"practiced"},"domain":"robotics","evidence":"Trace a permitted local recording followed by denied upload.","id":"robot.privacy.upload-gate","misconception":"Agreement to record locally does not automatically authorize cloud upload.","objective":"Check permission and the intended payload separately before recorded data leaves the device.","recommended":[],"requires":[{"id":"robot.privacy.recording-gate","reason":"The local recording permission is distinct from the later sharing decision."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Apply a separate upload-consent gate"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The learner identifies the invented question that leaves the Mac, checks its length, and distinguishes local practice from an adult-enabled cloud request.","mission":"cloud-ai","nodeId":"robot.cloud.data-boundary","section":"Ask one safe question","sourcePath":"course/missions/07-cloud-ai.mjs","status":"practiced","title":"Reachy Meets Cloud AI with Care","url":"index.html#mission-7-cloud-ai"}],"status":"practiced"},"domain":"robotics","evidence":"Distinguish local processing from the one bounded external request.","id":"robot.cloud.data-boundary","misconception":"A cloud request can transmit data even when no visible robot motion occurs.","objective":"Mark the exact prompt or recording payload sent off the local computer.","recommended":[],"requires":[{"id":"robot.privacy.upload-gate","reason":"The identified payload is what the separate upload permission covers."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Identify a cloud request’s data boundary"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The lesson explains that model responses can be inaccurate or biased. It does not teach model training, uncertainty calibration, or statistical evaluation.","mission":"cloud-ai","nodeId":"robot.cloud.model-fallibility","section":"Models can predict from text or images","sourcePath":"course/missions/07-cloud-ai.mjs","status":"introduced","title":"Reachy Meets Cloud AI with Care","url":"index.html#mission-7-cloud-ai"}],"status":"introduced"},"domain":"robotics","evidence":"Correct or mark uncertain one unsupported response using a trusted reference.","id":"robot.cloud.model-fallibility","misconception":"Fluent or confident wording is not proof of correctness.","objective":"Identify a claim in a model response that needs independent evidence before use.","recommended":[],"requires":[{"id":"robot.sense.pixel-vs-object","reason":"An inferred interpretation must be distinguished from direct evidence."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Check a model-generated claim"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The mission requires checking the reply and keeping it as text, separate from executable code and unrestricted movement targets.","mission":"cloud-ai","nodeId":"robot.cloud.response-boundary","section":"Ask one safe question","sourcePath":"course/missions/07-cloud-ai.mjs","status":"practiced","title":"Reachy Meets Cloud AI with Care","url":"index.html#mission-7-cloud-ai"}],"status":"practiced"},"domain":"robotics","evidence":"Reject a reply containing executable code or arbitrary motor angles.","id":"robot.cloud.response-boundary","misconception":"A model’s suggestion has no authority to expand the local action set.","objective":"Treat a model reply as text and choose only a locally permitted named action.","recommended":[],"requires":[{"id":"robot.cloud.model-fallibility","reason":"An uncertain reply cannot be assumed correct enough to command hardware."},{"id":"computing.python.if-trace","reason":"A local branch selects from explicitly authored actions."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Keep a cloud response outside the motor policy"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The learner traces the bounded sense/understand/decide/act data flow and names a limitation at each stage rather than assuming every request succeeds.","mission":"robot-friend","nodeId":"robot.system.sense-decide-act","section":"Name the limitation at each stage","sourcePath":"course/missions/08-robot-friend.mjs","status":"practiced","title":"Build a Robot Friend","url":"index.html#mission-8-robot-friend"},{"auditedAt":"2026-09-10","course":"spark","evidence":"The night-light panel connects the LDR divider, threshold/enable rule, and powered indicator; the learner explains each stage and its data or energy role.","mission":"invention","nodeId":"robot.system.sense-decide-act","section":"Keep three jobs visible","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Night-Light Design Challenge","url":"spark.html#invention"}],"status":"practiced"},"domain":"robotics","evidence":"Label the data passed between stages of a night-light or greeting example.","id":"robot.system.sense-decide-act","misconception":"A full turn does not imply continuous listening or autonomous repeated action.","objective":"Identify measured input, interpreted information, local decision and observable output in one turn.","recommended":[],"requires":[{"id":"robot.sense.input-output","reason":"Input and output components anchor the beginning and end of the turn."},{"id":"computing.python.if-trace","reason":"The decision selects a stated response from an input condition."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Trace a bounded sensing-to-action turn"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The integration report identifies the first stage missing observable evidence and avoids repeating uploads or movements merely to guess at a fault.","mission":"robot-friend","nodeId":"robot.system.first-failed-stage","section":"Name the limitation at each stage","sourcePath":"course/missions/08-robot-friend.mjs","status":"practiced","title":"Build a Robot Friend","url":"index.html#mission-8-robot-friend"}],"status":"practiced"},"domain":"robotics","evidence":"Explain why later-stage success cannot be assumed after an earlier missing result.","id":"robot.system.first-failed-stage","misconception":"Rerunning every stage can repeat recording, upload or motion without isolating the fault.","objective":"Find the earliest missing evidence in a sensing-to-action execution record.","recommended":[],"requires":[{"id":"robot.system.sense-decide-act","reason":"The pipeline order determines the first missing dependency."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Locate the first unsupported system stage"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"spark","evidence":"The learner records expected and observed outputs for bright/dark, enabled/disabled, and the exact threshold, deliberately changes AND to OR, and identifies failing cases.","mission":"invention","nodeId":"robot.system.boundary-tests","section":"A demonstration needs evidence","sourcePath":"course/spark-course.mjs","status":"practiced","title":"The Night-Light Design Challenge","url":"spark.html#invention"}],"status":"practiced"},"domain":"robotics","evidence":"Compare a simulated output table with the written enabled/threshold rule.","id":"robot.system.boundary-tests","misconception":"A successful normal case does not establish correct disabled or boundary behavior.","objective":"Specify expected actions for normal, disabled and exact-threshold cases.","recommended":[],"requires":[{"id":"robot.system.sense-decide-act","reason":"The complete rule must connect input cases to observable outputs."},{"id":"computing.python.comparison-boundary","reason":"An exact threshold can choose a different branch from nearby values."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Test a robot rule at its boundaries"},{"alternatives":[],"applications":["general","reachy"],"clusterIds":["robot.sensing-entry"],"coverage":{"entries":[{"auditedAt":"2026-09-10","course":"reachy","evidence":"The lesson explains else as an explicit fallback, asks the learner to predict and run unknown words, and checks that each receives one locally authored text response without moving the robot.","mission":"reachy-decides","nodeId":"robot.system.unknown-fallback","section":"Test all four paths","sourcePath":"course/missions/06-reachy-decides.mjs","status":"practiced","title":"Reachy Decides with Rules","url":"index.html#mission-6-reachy-decides"}],"status":"practiced"},"domain":"robotics","evidence":"Test an unknown word and empty input without inventing a new movement.","id":"robot.system.unknown-fallback","misconception":"An unrecognized command does not justify guessing a motor target.","objective":"Route an unrecognized input to a locally authored fallback response.","recommended":[],"requires":[{"id":"computing.python.elif","reason":"The unmatched input reaches the final else branch."},{"id":"robot.system.sense-decide-act","reason":"The fallback must be an explicit permitted output of the turn."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Local sensing and short decision traces; simulator or saved-media evidence must be labeled as such.","sourceIds":["reachy-sdk","hri","ai"],"stage":"g6-8","title":"Select a fallback for an unknown command"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.motion-foundation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check the convention by predicting fewer output turns for a reduction gearbox.","id":"robot.servo.gear-ratio","misconception":"A gear-ratio numeral is ambiguous unless input and output order are stated.","objective":"Convert input turns to output turns for a supplied reduction ratio.","recommended":[],"requires":[{"id":"math.ratio.proportion","reason":"The ratio relates input rotation to output rotation."},{"id":"robot.servo.parts","reason":"The gear stage lies between motor rotation and output shaft rotation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Quantitative conceptual models and simulation tasks; hardware limits remain those of the verified device.","sourceIds":["modern-robotics","servo"],"stage":"g9-10","title":"Calculate geared output rotation"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.motion-foundation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain why a larger correction can overshoot in a delayed system.","id":"robot.control.p-gain","misconception":"Increasing gain does not always improve closed-loop behavior.","objective":"Compare conceptual correction sizes at the same error for two supplied gains.","recommended":[],"requires":[{"id":"robot.servo.position-error","reason":"A proportional correction scales the signed error."},{"id":"math.ratio.proportion","reason":"The gain is the multiplier at a fixed error."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Compare supplied conceptual gains on paper or in simulation; no instructions to change installed servo gains.","sourceIds":["modern-robotics","servo"],"stage":"g9-10","title":"Predict a proportional gain change"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.motion-foundation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check start, midpoint and end values and preserve the angle convention.","id":"robot.motion.interpolate","misconception":"Joint-space interpolation need not create a straight end-effector path.","objective":"Compute an intermediate joint value using a fraction of elapsed segment time.","recommended":[],"requires":[{"id":"math.ratio.percent","reason":"Elapsed fraction weights the start-to-goal change."},{"id":"robot.pose.joint-vs-head","reason":"The interpolated coordinate is a joint rather than a task-space point."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Quantitative conceptual models and simulation tasks; hardware limits remain those of the verified device.","sourceIds":["modern-robotics","servo"],"stage":"g9-10","title":"Interpolate between two joint targets"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.motion-foundation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Lengthen a simulated segment to satisfy the stated limit.","id":"robot.motion.speed-limit","misconception":"Checking only endpoint angle limits does not bound speed.","objective":"Compare a planned angle change per duration with a supplied speed bound.","recommended":[],"requires":[{"id":"physics.motion.velocity","reason":"The segment has an angle change per unit time."},{"id":"robot.motion.duration","reason":"The planned interval supplies the denominator."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Quantitative conceptual models and simulation tasks; hardware limits remain those of the verified device.","sourceIds":["modern-robotics","servo"],"stage":"g9-10","title":"Check a joint segment speed"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.motion-foundation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"State whether counts are incremental, absolute or wrapped in the given example.","id":"robot.sense.encoder","misconception":"Encoder resolution does not alone establish absolute angular accuracy.","objective":"Use supplied resolution, zero and sign to convert a count reading into an angle.","recommended":[],"requires":[{"id":"math.ratio.proportion","reason":"Counts per revolution supply a scale factor."},{"id":"robot.servo.target-measured","reason":"The converted count is a measurement, not a target."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Quantitative conceptual models and simulation tasks; hardware limits remain those of the verified device.","sourceIds":["modern-robotics","servo"],"stage":"g9-10","title":"Convert encoder counts to angle"},{"alternatives":[],"applications":["general"],"clusterIds":["robot.motion-foundation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain the assumption violated by wheel slip.","id":"robot.mobile.wheel-distance","misconception":"Wheel odometry is a model-based estimate rather than ground-truth displacement.","objective":"Use wheel radius and rotation to predict no-slip travel.","recommended":[],"requires":[{"id":"math.geometry.circle","reason":"One revolution corresponds to the wheel circumference."},{"id":"robot.servo.gear-ratio","reason":"Motor rotation may require conversion to wheel rotation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Quantitative conceptual models and simulation tasks; hardware limits remain those of the verified device.","sourceIds":["modern-robotics","servo"],"stage":"g9-10","title":"Convert wheel rotation to travel distance"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check the term sign and distinguish gain units from the error units.","id":"robot.control.p-term","misconception":"The gain determines how error units become actuator-command units.","objective":"Multiply a signed error by a gain with declared input and output units.","recommended":[],"requires":[{"id":"robot.servo.position-error","reason":"The proportional term takes the signed position error."},{"id":"math.units.metric-prefix","reason":"Compatible units are required before multiplying by a dimensional gain."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Separate arithmetic contributions of a supplied sampled controller and limits of the model.","sourceIds":["modern-robotics","underactuated"],"stage":"g11-12","title":"Calculate a proportional control term"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Trace the accumulator through changing and zero errors.","id":"robot.control.i-term","misconception":"The integral state does not immediately become zero when current error reaches zero.","objective":"Accumulate error times sample duration and scale it by a supplied integral gain.","recommended":[],"requires":[{"id":"computing.python.accumulator","reason":"The controller retains accumulated error across samples."},{"id":"robot.servo.position-error","reason":"Each sample contributes a signed error."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Separate arithmetic contributions of a supplied sampled controller and limits of the model.","sourceIds":["modern-robotics","underactuated"],"stage":"g11-12","title":"Calculate a sampled integral term"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain how measurement noise can magnify the term.","id":"robot.control.d-term","misconception":"Derivative responds to change in error rather than its current magnitude.","objective":"Divide an error change by sample duration and apply a supplied derivative gain.","recommended":[],"requires":[{"id":"physics.motion.velocity","reason":"The derivative approximation is a signed change per time."},{"id":"robot.servo.position-error","reason":"The changing quantity is controller error."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Separate arithmetic contributions of a supplied sampled controller and limits of the model.","sourceIds":["modern-robotics","underactuated"],"stage":"g11-12","title":"Calculate a sampled derivative term"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Compare requested and admitted values at both limits.","id":"robot.control.saturation","misconception":"Clamping a command changes the behavior of the ideal control law.","objective":"Clamp a requested simulated command to a supplied finite actuator interval.","recommended":[],"requires":[{"id":"math.algebra.inequality","reason":"The allowable command is an interval with explicit bounds."},{"id":"robot.control.p-term","reason":"A computed control term can request a value outside that interval."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Separate arithmetic contributions of a supplied sampled controller and limits of the model.","sourceIds":["modern-robotics","underactuated"],"stage":"g11-12","title":"Apply an actuator-command bound"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-entry"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Compare supplied clamping or back-calculation behavior in a simulated trace.","id":"robot.control.anti-windup","misconception":"Integral action can keep growing while the actuator command is already limited.","objective":"Explain accumulator growth when a requested output cannot be delivered.","recommended":[],"requires":[{"id":"robot.control.i-term","reason":"Windup occurs in the retained integral state."},{"id":"robot.control.saturation","reason":"The requested command differs from the delivered bounded command."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Separate arithmetic contributions of a supplied sampled controller and limits of the model.","sourceIds":["modern-robotics","underactuated"],"stage":"g11-12","title":"Trace integral windup under saturation"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.kinematics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain why actuator count and configuration dimension can differ.","id":"robot.kinematics.dof","misconception":"Every visible joint does not necessarily contribute an independent coordinate.","objective":"Determine degrees of freedom after accounting for independent constraints.","recommended":[],"requires":[{"id":"robot.pose.joint-vs-head","reason":"Joint coordinates and task coordinates are distinct descriptions."},{"id":"math.linear.rank","reason":"Independent constraints remove dimensions according to rank."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Coordinate models for serial and closed-chain mechanisms with explicit frame conventions.","sourceIds":["modern-robotics"],"stage":"ug-foundation","title":"Count independent configuration coordinates"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.kinematics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check orthogonality, determinant and which frame each vector belongs to.","id":"robot.kinematics.rotation-matrix","misconception":"Active rotation and passive coordinate change require consistent conventions.","objective":"Rotate a vector or change its coordinates using a declared rotation convention.","recommended":[],"requires":[{"id":"math.matrix.multiply","reason":"A rotation acts on vector components by matrix multiplication."},{"id":"math.trig.unit-circle","reason":"Planar rotation entries come from sine and cosine."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Coordinate models for serial and closed-chain mechanisms with explicit frame conventions.","sourceIds":["modern-robotics"],"stage":"ug-foundation","title":"Apply a rotation matrix"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.kinematics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check the frame chain and transform order before multiplying.","id":"robot.kinematics.transform","misconception":"Translation coordinates belong to a frame and cannot be added arbitrarily.","objective":"Use homogeneous transforms to combine rotation and translation between named frames.","recommended":[],"requires":[{"id":"robot.kinematics.rotation-matrix","reason":"Each rigid transform includes an orientation mapping."},{"id":"math.matrix.multiply","reason":"Transform composition requires compatible matrix products."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Coordinate models for serial and closed-chain mechanisms with explicit frame conventions.","sourceIds":["modern-robotics"],"stage":"ug-foundation","title":"Compose rigid transforms"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.kinematics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Verify the forward-reverse composition equals identity.","id":"robot.kinematics.inverse-transform","misconception":"Negating translation alone does not generally invert a rigid transform.","objective":"Construct the reverse frame transform using rotation transpose and transformed translation.","recommended":[],"requires":[{"id":"robot.kinematics.transform","reason":"The reverse mapping must undo the original rotation and translation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Coordinate models for serial and closed-chain mechanisms with explicit frame conventions.","sourceIds":["modern-robotics"],"stage":"ug-foundation","title":"Invert a rigid transform"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.kinematics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Distinguish a relative second-joint angle from an absolute link angle.","id":"robot.kinematics.planar-forward","misconception":"The second link orientation includes the first joint’s rotation.","objective":"Determine a two-link arm endpoint from link lengths and joint angles.","recommended":[],"requires":[{"id":"math.trig.unit-circle","reason":"Link displacements are resolved into sine and cosine components."},{"id":"robot.pose.joint-vs-head","reason":"Joint values map to a task-space endpoint."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Coordinate models for serial and closed-chain mechanisms with explicit frame conventions.","sourceIds":["modern-robotics"],"stage":"ug-foundation","title":"Compute a planar arm endpoint"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.kinematics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check the axis direction, point and linear/angular components.","id":"robot.kinematics.screw-axis","misconception":"A revolute twist contains a linear component when the axis misses the origin.","objective":"Specify a revolute or prismatic joint’s twist in a named frame.","recommended":[],"requires":[{"id":"math.vector.cross","reason":"Axis position determines the linear twist component through a cross product."},{"id":"robot.kinematics.transform","reason":"The screw coordinates must be tied to a declared frame."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Coordinate models for serial and closed-chain mechanisms with explicit frame conventions.","sourceIds":["modern-robotics"],"stage":"ug-foundation","title":"Represent a joint as a screw axis"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.kinematics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check the zero-joint limit and the space/body convention.","id":"robot.kinematics.poe","misconception":"Changing the multiplication order changes the kinematic map.","objective":"Compose joint exponential transforms with a home configuration.","recommended":[],"requires":[{"id":"robot.kinematics.screw-axis","reason":"Each joint contributes a screw generator."},{"id":"math.ode.matrix-exponential","reason":"The joint exponential produces its finite rigid motion."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Coordinate models for serial and closed-chain mechanisms with explicit frame conventions.","sourceIds":["modern-robotics"],"stage":"ug-foundation","title":"Compute product-of-exponentials kinematics"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.kinematics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check velocity predictions against a small finite motion.","id":"robot.kinematics.jacobian","misconception":"The Jacobian relates local rates rather than globally mapping positions.","objective":"Construct a kinematic Jacobian in a stated frame and apply it to joint rates.","recommended":[],"requires":[{"id":"math.calculus.jacobian","reason":"Kinematic sensitivities are derivatives of task coordinates."},{"id":"robot.kinematics.planar-forward","reason":"The forward kinematic map supplies a concrete differentiable model."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Coordinate models for serial and closed-chain mechanisms with explicit frame conventions.","sourceIds":["modern-robotics"],"stage":"ug-foundation","title":"Map joint rates to a task velocity"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.kinematics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Use a singular vector to explain poor velocity authority.","id":"robot.kinematics.singularity","misconception":"A singularity is not necessarily a collision or joint-limit violation.","objective":"Find a configuration where the Jacobian loses rank and interpret a lost motion direction.","recommended":[],"requires":[{"id":"robot.kinematics.jacobian","reason":"The local velocity map determines available motion directions."},{"id":"math.linear.svd","reason":"Small singular values reveal reduced directional authority."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Coordinate models for serial and closed-chain mechanisms with explicit frame conventions.","sourceIds":["modern-robotics"],"stage":"ug-foundation","title":"Identify a kinematic singularity"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.kinematics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check the solution by forward kinematics and reject an unreachable target.","id":"robot.kinematics.inverse-planar","misconception":"One task-space point may have multiple joint solutions.","objective":"Find a joint solution for a reachable two-link target and identify multiple branches.","recommended":[],"requires":[{"id":"robot.kinematics.planar-forward","reason":"Inverse solutions must reproduce the requested endpoint."},{"id":"math.trig.atan2","reason":"Quadrant-aware angles distinguish solution branches."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Coordinate models for serial and closed-chain mechanisms with explicit frame conventions.","sourceIds":["modern-robotics"],"stage":"ug-foundation","title":"Solve a planar inverse-kinematics branch"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.kinematics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check convergence, joint limits and singular behavior after the update.","id":"robot.kinematics.inverse-numeric","misconception":"A small local step does not guarantee a global IK solution.","objective":"Use a pose error and Jacobian-based local solve to update a joint estimate.","recommended":[],"requires":[{"id":"robot.kinematics.jacobian","reason":"The Jacobian relates joint increments to task error reduction."},{"id":"math.linear.pseudoinverse","reason":"A least-squares joint increment handles nonsquare local maps."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Coordinate models for serial and closed-chain mechanisms with explicit frame conventions.","sourceIds":["modern-robotics"],"stage":"ug-foundation","title":"Take a numerical inverse-kinematics step"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.kinematics"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check a candidate against all closure equations.","id":"robot.kinematics.closed-chain","misconception":"Independently moving every joint can violate a closed mechanism’s geometry.","objective":"Write a loop-closure relation and identify admissible joint configurations.","recommended":[],"requires":[{"id":"robot.kinematics.transform","reason":"Transforms around the mechanism must close consistently."},{"id":"math.numeric.newton","reason":"Nonlinear closure can be solved through local root updates."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Coordinate models for serial and closed-chain mechanisms with explicit frame conventions.","sourceIds":["modern-robotics"],"stage":"ug-foundation","title":"Enforce a closed-chain kinematic constraint"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Keep reference, output, disturbance and control signals distinct.","id":"robot.control.closed-loop-model","misconception":"A controller equation alone does not determine the closed-loop dynamics.","objective":"Substitute a supplied feedback law into a plant model and express error evolution.","recommended":[],"requires":[{"id":"physics.dynamics.equilibrium-linearize","reason":"A local plant model supplies state and input evolution."},{"id":"robot.control.p-term","reason":"Feedback must enter the plant through a dimensionally consistent control term."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Model-based design and analysis in simulation before any separately authorized hardware validation.","sourceIds":["modern-robotics","underactuated"],"stage":"ug-advanced","title":"Derive a closed-loop error equation"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain the appropriate stability region for the chosen time model.","id":"robot.control.poles","misconception":"Stable poles of a local model do not prove global nonlinear safety.","objective":"Use continuous- or discrete-time closed-loop poles to classify local behavior.","recommended":[],"requires":[{"id":"robot.control.closed-loop-model","reason":"The combined plant-controller model supplies the relevant poles."},{"id":"math.linear.eigen","reason":"State-matrix eigenvalues determine linear modal behavior."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Model-based design and analysis in simulation before any separately authorized hardware validation.","sourceIds":["modern-robotics","underactuated"],"stage":"ug-advanced","title":"Assess local linear stability"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Compare two simulated traces under the same input and measurement rule.","id":"robot.control.step-metrics","misconception":"A faster rise time can accompany larger overshoot.","objective":"Extract overshoot, settling time and steady error using stated conventions.","recommended":[],"requires":[{"id":"robot.servo.position-error","reason":"Tracking error is measured relative to the step target."},{"id":"signal.sample.index-time","reason":"Sample timestamps determine response durations."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Model-based design and analysis in simulation before any separately authorized hardware validation.","sourceIds":["modern-robotics","underactuated"],"stage":"ug-advanced","title":"Measure a step response"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"State the crossing convention and limits of the margin argument.","id":"robot.control.frequency-margin","misconception":"Large nominal margins do not cover every nonlinear or unmodeled effect.","objective":"Use a loop frequency response to estimate robustness to gain or phase changes.","recommended":[],"requires":[{"id":"signal.frequency.bode","reason":"Margins are read at specific loop gain and phase crossings."},{"id":"robot.control.closed-loop-model","reason":"The loop transfer must correspond to the actual feedback interconnection."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Model-based design and analysis in simulation before any separately authorized hardware validation.","sourceIds":["modern-robotics","underactuated"],"stage":"ug-advanced","title":"Interpret gain and phase margins"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain an uncontrollable mode in a supplied plant.","id":"robot.control.controllability","misconception":"Having an actuator for some coordinates does not guarantee complete state reachability.","objective":"Construct a controllability matrix and determine whether inputs reach every state direction.","recommended":[],"requires":[{"id":"math.ode.state-space","reason":"The test uses the plant state and input matrices."},{"id":"math.linear.rank","reason":"Full rank determines whether all state directions are spanned."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Model-based design and analysis in simulation before any separately authorized hardware validation.","sourceIds":["modern-robotics","underactuated"],"stage":"ug-advanced","title":"Test linear controllability"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain why two initial states can produce the same measurement history.","id":"robot.control.observability","misconception":"A sensor for one variable does not guarantee every state is observable.","objective":"Construct an observability matrix and identify state directions invisible in outputs.","recommended":[],"requires":[{"id":"math.ode.state-space","reason":"State evolution and output mapping define the measurement history."},{"id":"math.linear.rank","reason":"Rank determines distinguishability of state directions."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Model-based design and analysis in simulation before any separately authorized hardware validation.","sourceIds":["modern-robotics","underactuated"],"stage":"ug-advanced","title":"Test linear observability"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain why model error still motivates feedback.","id":"robot.control.feedforward","misconception":"Feedforward does not measure whether the desired motion actually occurred.","objective":"Use a desired motion and mechanical model to predict the needed torque.","recommended":[],"requires":[{"id":"physics.dynamics.mass-matrix","reason":"The model relates desired acceleration and coupling to required generalized force."},{"id":"robot.servo.target-measured","reason":"Desired motion remains separate from measured motion."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Model-based design and analysis in simulation before any separately authorized hardware validation.","sourceIds":["modern-robotics","underactuated"],"stage":"ug-advanced","title":"Compute a dynamics feedforward command"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-university"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check endpoints and inspect interior speed and acceleration extrema.","id":"robot.control.trajectory-polynomial","misconception":"Meeting endpoint conditions alone does not guarantee interior actuator feasibility.","objective":"Solve polynomial coefficients from supplied endpoint position and rate conditions.","recommended":[],"requires":[{"id":"math.algebra.system","reason":"Boundary conditions form coefficient equations."},{"id":"math.calculus.differentiate","reason":"Speed and acceleration come from trajectory derivatives."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Model-based design and analysis in simulation before any separately authorized hardware validation.","sourceIds":["modern-robotics","underactuated"],"stage":"ug-advanced","title":"Construct a bounded point-to-point trajectory"},{"alternatives":[],"applications":["general","reachy","arm"],"clusterIds":["robot.perception"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check image-coordinate convention and reject points behind the camera.","id":"robot.camera.project","misconception":"Pixel coordinates do not directly equal world distances.","objective":"Apply a pinhole model using named extrinsic and intrinsic parameters.","recommended":[],"requires":[{"id":"robot.kinematics.transform","reason":"Extrinsics express the point in the camera frame."},{"id":"math.geometry.similarity","reason":"Perspective division follows similar-triangle geometry."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Camera and point-cloud geometry with explicit measurement models and evaluation.","sourceIds":["manipulation","robotics-perception","vision"],"stage":"ug-advanced","title":"Project a 3D point into a camera"},{"alternatives":[],"applications":["general","reachy","arm"],"clusterIds":["robot.perception"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Report held-out reprojection errors and lens-model assumptions.","id":"robot.camera.calibrate","misconception":"A low calibration fit error does not guarantee valid calibration after refocusing or moving parts.","objective":"Fit camera parameters from known target geometry and measured image points.","recommended":[],"requires":[{"id":"robot.camera.project","reason":"Calibration fits parameters of the projection model."},{"id":"math.optimization.gauss-newton","reason":"Reprojection residuals produce a nonlinear least-squares fit."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Camera and point-cloud geometry with explicit measurement models and evaluation.","sourceIds":["manipulation","robotics-perception","vision"],"stage":"ug-advanced","title":"Estimate camera parameters from a target"},{"alternatives":[],"applications":["general","reachy","arm"],"clusterIds":["robot.perception"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain the effect on a bright point and on an edge.","id":"robot.vision.filter-image","misconception":"Smoothing can remove useful edge detail along with noise.","objective":"Convolve an image channel with a stated kernel and handle borders explicitly.","recommended":[],"requires":[{"id":"signal.convolution.discrete","reason":"A spatial filter generalizes convolution across image axes."},{"id":"robot.sense.image-shape","reason":"The array’s spatial dimensions identify neighboring pixels."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Camera and point-cloud geometry with explicit measurement models and evaluation.","sourceIds":["manipulation","robotics-perception","vision"],"stage":"ug-advanced","title":"Apply a spatial image filter"},{"alternatives":[],"applications":["general","reachy","arm"],"clusterIds":["robot.perception"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain a repetitive-texture failure and preserve both image coordinates.","id":"robot.vision.feature-match","misconception":"A nearest descriptor match is a hypothesis, not proof of geometric identity.","objective":"Match local image descriptors and reject ambiguous candidates using a stated rule.","recommended":[],"requires":[{"id":"robot.vision.filter-image","reason":"Local features are computed from spatial image structure."},{"id":"math.vector.dot","reason":"Descriptor comparisons use vector similarity or related distances."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Camera and point-cloud geometry with explicit measurement models and evaluation.","sourceIds":["manipulation","robotics-perception","vision"],"stage":"ug-advanced","title":"Validate a feature correspondence"},{"alternatives":[],"applications":["general","reachy","arm"],"clusterIds":["robot.perception"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"State the residual threshold and explain a degenerate sample.","id":"robot.vision.ransac","misconception":"An inlier threshold determines which observations count as support.","objective":"Sample minimal subsets, score inliers and refine a consensus model.","recommended":[],"requires":[{"id":"robot.vision.feature-match","reason":"Tentative correspondences provide noisy candidate measurements."},{"id":"math.probability.finite","reason":"Sampling success depends on the chance of selecting valid observations."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Camera and point-cloud geometry with explicit measurement models and evaluation.","sourceIds":["manipulation","robotics-perception","vision"],"stage":"ug-advanced","title":"Fit a geometric model with RANSAC"},{"alternatives":[],"applications":["general","reachy","arm"],"clusterIds":["robot.perception"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain poor depth precision for nearly parallel rays.","id":"robot.vision.triangulate","misconception":"Two noisy rays need not intersect exactly.","objective":"Estimate a 3D point from two corresponding image rays.","recommended":[],"requires":[{"id":"robot.camera.project","reason":"The camera model relates pixels to viewing rays."},{"id":"math.linear.least-squares","reason":"Noisy ray geometry requires an approximate intersection."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Camera and point-cloud geometry with explicit measurement models and evaluation.","sourceIds":["manipulation","robotics-perception","vision"],"stage":"ug-advanced","title":"Triangulate a point from calibrated views"},{"alternatives":[],"applications":["general","reachy","arm"],"clusterIds":["robot.perception"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check reprojection error and identify ambiguous or degenerate configurations.","id":"robot.vision.pnp","misconception":"A pose fit needs sufficient geometric information, not merely many repeated points.","objective":"Fit a pose using calibrated 2D–3D correspondences.","recommended":[],"requires":[{"id":"robot.camera.project","reason":"The pose must reproduce observed image points."},{"id":"math.optimization.gauss-newton","reason":"Pose estimation reduces reprojection residuals iteratively."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Camera and point-cloud geometry with explicit measurement models and evaluation.","sourceIds":["manipulation","robotics-perception","vision"],"stage":"ug-advanced","title":"Estimate camera pose from known 3D points"},{"alternatives":[],"applications":["general","reachy","arm"],"clusterIds":["robot.perception"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check overlap, outliers and convergence to a wrong local alignment.","id":"robot.vision.icp","misconception":"A small alignment residual does not guarantee the correct global registration.","objective":"Alternate correspondences and rigid alignment from a supplied initial transform.","recommended":[],"requires":[{"id":"robot.kinematics.transform","reason":"The unknown alignment is a rigid transform."},{"id":"math.linear.svd","reason":"A rigid point fit can recover rotation using singular vectors."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Camera and point-cloud geometry with explicit measurement models and evaluation.","sourceIds":["manipulation","robotics-perception","vision"],"stage":"ug-advanced","title":"Align two point clouds iteratively"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.estimation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Keep prediction and measurement update distributions separately normalized.","id":"robot.estimation.bayes-filter","misconception":"A measurement update must combine evidence with the predicted belief.","objective":"Predict a state distribution through a motion model and condition it on a measurement.","recommended":[],"requires":[{"id":"math.probability.bayes","reason":"Conditioning combines likelihood with a prior."},{"id":"math.probability.markov","reason":"The transition model predicts the next-state distribution."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probabilistic state estimates with checked model, timing and observability assumptions.","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"Perform a Bayes-filter cycle"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.estimation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"State the observation matrix dimensions and measurement-noise covariance.","id":"robot.estimation.measurement-model","misconception":"A sensor observation may measure a combination of states rather than one state directly.","objective":"Express a sensor observation as a state projection plus zero-mean measurement noise.","recommended":[],"requires":[{"id":"math.ode.state-space","reason":"The model needs a defined state vector and output coordinates."},{"id":"math.stats.covariance","reason":"Measurement noise must have a stated covariance in observation units."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probabilistic state estimates with checked model, timing and observability assumptions.","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"Specify a linear measurement model"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.estimation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check state/input matrix dimensions and distinguish prior from predicted mean.","id":"robot.estimation.kalman-predict","misconception":"A predicted mean is a model output before the new observation is used.","objective":"Propagate the prior state mean through a linear transition and known control input.","recommended":[],"requires":[{"id":"math.ode.state-space","reason":"The transition and input matrices specify mean evolution."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probabilistic state estimates with checked model, timing and observability assumptions.","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"Predict a Kalman state mean"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.estimation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain uncertainty growth with no new observation and identify the independence assumption.","id":"robot.estimation.kalman-predict-covariance","misconception":"Propagating only diagonal entries can discard coupled uncertainty.","objective":"Transport prior covariance through the transition and add independent process-noise covariance.","recommended":[],"requires":[{"id":"math.stats.covariance","reason":"The state uncertainty is a full covariance matrix."},{"id":"math.ode.state-space","reason":"The transition matrix transports prior state deviations."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probabilistic state estimates with checked model, timing and observability assumptions.","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"Predict a Kalman state covariance"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.estimation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"State the residual dimension and the observation’s timestamp.","id":"robot.estimation.innovation","misconception":"An innovation is measured in observation coordinates, not necessarily state coordinates.","objective":"Subtract the predicted measurement from the observed measurement.","recommended":[],"requires":[{"id":"robot.estimation.measurement-model","reason":"The state prediction must be projected into observation coordinates."},{"id":"robot.estimation.kalman-predict","reason":"The predicted mean supplies the expected observation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probabilistic state estimates with checked model, timing and observability assumptions.","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"Calculate a measurement innovation"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.estimation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain why observation uncertainty includes both state prediction and sensor uncertainty.","id":"robot.estimation.innovation-covariance","misconception":"Innovation covariance is not just the sensor’s noise covariance.","objective":"Project predicted state covariance into measurement space and add independent measurement noise.","recommended":[],"requires":[{"id":"robot.estimation.kalman-predict-covariance","reason":"The state prediction supplies uncertainty to be projected."},{"id":"robot.estimation.measurement-model","reason":"The measurement matrix and noise covariance define the observation projection."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probabilistic state estimates with checked model, timing and observability assumptions.","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"Calculate innovation covariance"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.estimation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain how increasing measurement uncertainty changes the correction weight.","id":"robot.estimation.kalman-gain","misconception":"A gain is generally a matrix, not one confidence percentage.","objective":"Solve for the matrix weighting an innovation using predicted covariance and innovation covariance.","recommended":[],"requires":[{"id":"robot.estimation.innovation-covariance","reason":"The weighting depends on total predicted observation uncertainty."},{"id":"math.linear.elimination","reason":"A linear solve computes the gain without an explicit numerical inverse."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probabilistic state estimates with checked model, timing and observability assumptions.","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"Calculate a Kalman gain"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.estimation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check the corrected mean and explain which state directions the measurement affects.","id":"robot.estimation.kalman-update","misconception":"The observed value does not simply replace the whole state estimate.","objective":"Add the gain-weighted innovation to the predicted state mean.","recommended":[],"requires":[{"id":"robot.estimation.kalman-gain","reason":"The gain maps observation error into state correction."},{"id":"robot.estimation.innovation","reason":"The innovation is the discrepancy being corrected."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probabilistic state estimates with checked model, timing and observability assumptions.","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"Correct a Kalman state mean"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.estimation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check symmetry and positive semidefiniteness after the update.","id":"robot.estimation.kalman-update-covariance","misconception":"A corrected mean without corrected covariance leaves future confidence inconsistent.","objective":"Update posterior covariance using a stated stable form such as the Joseph expression.","recommended":[],"requires":[{"id":"robot.estimation.kalman-gain","reason":"The update uses the same gain that weights the measurement."},{"id":"robot.estimation.kalman-predict-covariance","reason":"The prior uncertainty is reduced in measured directions."},{"id":"math.linear.positive-definite","reason":"A valid covariance must remain positive semidefinite."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probabilistic state estimates with checked model, timing and observability assumptions.","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"Correct a Kalman state covariance"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.estimation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check residual definitions, angle wrapping and covariance dimensions.","id":"robot.estimation.ekf","misconception":"An EKF is locally Gaussian even when the true posterior is not.","objective":"Use motion and measurement Jacobians at declared reference states in an EKF.","recommended":[],"requires":[{"id":"robot.estimation.kalman-update","reason":"The EKF reuses Gaussian mean prediction and correction structure."},{"id":"robot.estimation.kalman-update-covariance","reason":"The nonlinear local model must also update state uncertainty."},{"id":"math.calculus.jacobian","reason":"Jacobians approximate nonlinear model sensitivities."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probabilistic state estimates with checked model, timing and observability assumptions.","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"Linearize a nonlinear estimation update"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.estimation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain loss of diversity and why weights can collapse.","id":"robot.estimation.particle","misconception":"Particles approximate a distribution rather than enumerating all possible states.","objective":"Propagate samples, weight them by measurement likelihood and normalize.","recommended":[],"requires":[{"id":"robot.estimation.bayes-filter","reason":"Prediction and conditioning determine the particle operations."},{"id":"math.probability.monte-carlo","reason":"Samples approximate expectations and probability mass."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probabilistic state estimates with checked model, timing and observability assumptions.","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"Update a weighted particle belief"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.estimation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Track ancestry and explain why resampling does not add new information.","id":"robot.estimation.resample","misconception":"Duplicating high-weight samples can reduce diversity.","objective":"Use normalized weights and a stated resampling scheme to select a new sample set.","recommended":[],"requires":[{"id":"robot.estimation.particle","reason":"The current particles and weights define the resampling distribution."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probabilistic state estimates with checked model, timing and observability assumptions.","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"Resample a particle set"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.estimation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Specify frame, gravity and bias assumptions and propagate uncertainty.","id":"robot.estimation.imu-preintegrate","misconception":"An accelerometer measures specific force rather than position directly.","objective":"Integrate bias-corrected inertial samples between two state timestamps.","recommended":[],"requires":[{"id":"math.geometry.lie-algebra","reason":"Rotation increments must respect rotation geometry."},{"id":"math.stats.uncertainty-propagation","reason":"Sample uncertainty affects the integrated increment."},{"id":"computing.embedded.timestamp","reason":"Correct integration intervals require acquisition-time alignment."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probabilistic state estimates with checked model, timing and observability assumptions.","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"Accumulate IMU motion increments"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.estimation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain why ground-truth availability changes which consistency statistic can be tested.","id":"robot.estimation.consistency","misconception":"Small state error does not prove that reported covariance is calibrated.","objective":"Compare normalized residual or state-error statistics with the assumed uncertainty model.","recommended":[],"requires":[{"id":"robot.estimation.innovation","reason":"The observed residual supplies the discrepancy being normalized."},{"id":"robot.estimation.innovation-covariance","reason":"The assumed residual uncertainty sets the normalization scale."},{"id":"math.stats.hypothesis-test","reason":"Consistency is assessed against a specified reference distribution."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Probabilistic state estimates with checked model, timing and observability assumptions.","sourceIds":["robotics-perception","gtsam","underactuated"],"stage":"graduate","title":"Check estimator consistency"},{"alternatives":[],"applications":["general","microduck"],"clusterIds":["robot.slam"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Distinguish a graph’s probability model from its current variable estimates.","id":"robot.slam.factor-graph","misconception":"Drawing a factor graph does not solve its estimation problem.","objective":"Represent unknown poses or landmarks as variables and observations as factors.","recommended":[],"requires":[{"id":"computing.data.graph","reason":"The representation connects variables and measurement factors."},{"id":"math.stats.likelihood","reason":"Each observation contributes a likelihood term."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected SLAM and smoothing competencies with attention to gauge, association and computational cost.","sourceIds":["gtsam","robotics-perception","manipulation"],"stage":"graduate","title":"Construct a robot factor graph"},{"alternatives":[],"applications":["general","microduck"],"clusterIds":["robot.slam"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"State which frame and perturbation convention the residual uses.","id":"robot.slam.pose-residual","misconception":"Subtracting pose coordinates naively can mishandle rotations.","objective":"Compare a predicted relative transform with a measured transform in a consistent local coordinate.","recommended":[],"requires":[{"id":"robot.kinematics.inverse-transform","reason":"Relative pose composes an inverse frame transform."},{"id":"math.geometry.lie-algebra","reason":"Rotation error needs a local geometric representation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected SLAM and smoothing competencies with attention to gauge, association and computational cost.","sourceIds":["gtsam","robotics-perception","manipulation"],"stage":"graduate","title":"Define a relative-pose residual"},{"alternatives":[],"applications":["general","microduck"],"clusterIds":["robot.slam"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Anchor a reference or state the remaining unobservable freedom.","id":"robot.slam.gauge","misconception":"A solver’s arbitrary global frame does not imply a physical world reference was measured.","objective":"Determine which global transform leaves relative measurements unchanged.","recommended":[],"requires":[{"id":"robot.slam.factor-graph","reason":"Measurement connectivity determines which absolute information is absent."},{"id":"math.linear.rank","reason":"Unobservable gauge directions cause rank deficiency."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected SLAM and smoothing competencies with attention to gauge, association and computational cost.","sourceIds":["gtsam","robotics-perception","manipulation"],"stage":"graduate","title":"Identify a SLAM gauge freedom"},{"alternatives":[],"applications":["general","microduck"],"clusterIds":["robot.slam"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain how a false loop constraint can deform the whole map.","id":"robot.slam.loop-closure","misconception":"Visual similarity alone does not establish the same physical place.","objective":"Test a proposed place revisit using geometric and uncertainty evidence.","recommended":[],"requires":[{"id":"robot.vision.ransac","reason":"Geometric consensus can reject inconsistent match hypotheses."},{"id":"robot.slam.pose-residual","reason":"The closure must be consistent with a relative-pose measurement model."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected SLAM and smoothing competencies with attention to gauge, association and computational cost.","sourceIds":["gtsam","robotics-perception","manipulation"],"stage":"graduate","title":"Validate a loop-closure hypothesis"},{"alternatives":[],"applications":["general","microduck"],"clusterIds":["robot.slam"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check gauge anchoring and residual change across iterations.","id":"robot.slam.optimize","misconception":"Local nonlinear optimization can depend strongly on initialization.","objective":"Linearize pose residuals and solve for a jointly improved state estimate.","recommended":[],"requires":[{"id":"robot.slam.gauge","reason":"The graph must remove or handle unconstrained global directions."},{"id":"robot.slam.pose-residual","reason":"Pose residuals define what the graph minimizes."},{"id":"math.optimization.gauss-newton","reason":"The solver repeatedly fits a local residual model."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected SLAM and smoothing competencies with attention to gauge, association and computational cost.","sourceIds":["gtsam","robotics-perception","manipulation"],"stage":"graduate","title":"Optimize a pose graph"},{"alternatives":[],"applications":["general","microduck"],"clusterIds":["robot.slam"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain increased factor density and the role of a linearization point.","id":"robot.slam.marginalize","misconception":"Removing old states without their information is not equivalent to marginalization.","objective":"Eliminate selected variables while retaining their information on remaining variables.","recommended":[],"requires":[{"id":"robot.slam.factor-graph","reason":"The eliminated variables are connected through measurement factors."},{"id":"math.linear.elimination","reason":"Variable elimination induces constraints on the retained system."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected SLAM and smoothing competencies with attention to gauge, association and computational cost.","sourceIds":["gtsam","robotics-perception","manipulation"],"stage":"graduate","title":"Marginalize old states in a smoother"},{"alternatives":[],"applications":["general","microduck"],"clusterIds":["robot.slam"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Fix gauge freedoms and inspect outlier influence and held-out residuals.","id":"robot.slam.bundle-adjust","misconception":"Optimizing poses while holding all landmarks fixed is not full bundle adjustment.","objective":"Minimize multi-view reprojection residuals over poses and 3D structure.","recommended":[],"requires":[{"id":"robot.camera.project","reason":"Reprojection links each pose-landmark pair to a pixel."},{"id":"robot.slam.optimize","reason":"The coupled geometric residuals require graph-style nonlinear optimization."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected SLAM and smoothing competencies with attention to gauge, association and computational cost.","sourceIds":["gtsam","robotics-perception","manipulation"],"stage":"graduate","title":"Jointly refine camera poses and landmarks"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.planning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain why a point-robot path in workspace can fail for an extended robot.","id":"robot.planning.cspace","misconception":"Configuration-space obstacles depend on the robot’s shape and coordinates.","objective":"Map a collision condition from robot geometry into forbidden configurations.","recommended":[],"requires":[{"id":"robot.kinematics.dof","reason":"The independent configuration coordinates define the planning space."},{"id":"robot.kinematics.planar-forward","reason":"Robot geometry maps configurations into occupied workspace."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Feasible and optimized robot motion in configuration and state spaces.","sourceIds":["planning","underactuated","modern-robotics"],"stage":"graduate","title":"Construct a configuration-space obstacle"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.planning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Give an example where collision-free endpoints hide an intermediate collision.","id":"robot.planning.collision-edge","misconception":"Valid endpoints do not establish a valid connecting edge.","objective":"Check the swept or sufficiently resolved intermediate geometry between two configurations.","recommended":[],"requires":[{"id":"robot.planning.cspace","reason":"Collision is a condition on all configurations along the segment."},{"id":"robot.motion.interpolate","reason":"The segment specifies intermediate configurations to examine."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Feasible and optimized robot motion in configuration and state spaces.","sourceIds":["planning","underactuated","modern-robotics"],"stage":"graduate","title":"Check a candidate motion segment for collision"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.planning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain the query stage and the effect of a narrow passage.","id":"robot.planning.prm","misconception":"Sampling-based planning can miss a feasible path in finite time.","objective":"Sample valid configurations and connect nearby samples with validated edges.","recommended":[],"requires":[{"id":"robot.planning.collision-edge","reason":"Every roadmap connection must represent feasible motion."},{"id":"computing.algorithm.dijkstra","reason":"A query searches the weighted roadmap."},{"id":"math.probability.finite","reason":"Sampling coverage affects the chance of connecting difficult regions."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Feasible and optimized robot motion in configuration and state spaces.","sourceIds":["planning","underactuated","modern-robotics"],"stage":"graduate","title":"Build a probabilistic roadmap"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.planning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain the influence of distance metric and steering method.","id":"robot.planning.rrt","misconception":"A large explored tree does not imply an optimal path.","objective":"Select a target sample, a nearby tree state and a valid extension.","recommended":[],"requires":[{"id":"robot.planning.collision-edge","reason":"Each new tree edge must pass a motion-validity check."},{"id":"computing.data.graph","reason":"Parent links retain the connected search tree."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Feasible and optimized robot motion in configuration and state spaces.","sourceIds":["planning","underactuated","modern-robotics"],"stage":"graduate","title":"Extend a rapidly exploring tree"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.planning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Reject a geometric shortcut that violates velocity or actuation constraints.","id":"robot.planning.kinodynamic","misconception":"A collision-free geometric curve need not be dynamically executable.","objective":"Propagate a bounded control input through a state model to propose a reachable edge.","recommended":[],"requires":[{"id":"robot.planning.rrt","reason":"The search expansion is modified to follow reachable motion."},{"id":"math.ode.runge-kutta","reason":"A control input produces a numerical state trajectory through integration."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Feasible and optimized robot motion in configuration and state spaces.","sourceIds":["planning","underactuated","modern-robotics"],"stage":"graduate","title":"Enforce dynamics while expanding a planner"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.planning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check boundary conditions, dynamics residuals and between-knot violations.","id":"robot.planning.direct-collocation","misconception":"A trajectory satisfying constraints only at knots can still fail between them.","objective":"Introduce state/control variables and defect constraints across a time grid.","recommended":[],"requires":[{"id":"math.ode.state-space","reason":"Dynamics determine the transcription constraints."},{"id":"math.optimization.kkt","reason":"The optimization contains coupled equality and inequality constraints."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Feasible and optimized robot motion in configuration and state spaces.","sourceIds":["planning","underactuated","modern-robotics"],"stage":"graduate","title":"Transcribe a trajectory optimization problem"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.planning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain model mismatch, feasibility failure and the chosen fallback.","id":"robot.planning.mpc","misconception":"Repeated optimization does not automatically guarantee recursive feasibility.","objective":"Solve a finite-horizon constrained plan and apply its first control before replanning.","recommended":[],"requires":[{"id":"robot.planning.direct-collocation","reason":"The horizon plan must encode dynamics and constraints."},{"id":"robot.control.closed-loop-model","reason":"Replanning from measured or estimated state creates feedback."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Feasible and optimized robot motion in configuration and state spaces.","sourceIds":["planning","underactuated","modern-robotics"],"stage":"graduate","title":"Execute a receding-horizon control step"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.planning"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain an action that gathers information before committing to motion.","id":"robot.planning.belief-space","misconception":"The safest action for a mean state need not be safe for the whole belief.","objective":"Compare candidate actions using their predicted belief evolution and task cost.","recommended":[],"requires":[{"id":"robot.estimation.bayes-filter","reason":"Actions change a belief through prediction and later observations."},{"id":"computing.rl.bellman","reason":"Sequential decisions compare immediate and future consequences."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Feasible and optimized robot motion in configuration and state spaces.","sourceIds":["planning","underactuated","modern-robotics"],"stage":"graduate","title":"Plan with an uncertain state"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check closed-loop poles and explain how units affect weight selection.","id":"robot.control.lqr","misconception":"Increasing a penalty does not imply a universal improvement in physical behavior.","objective":"Choose state/input penalties and compute feedback for a stabilizable linear model.","recommended":[],"requires":[{"id":"robot.control.controllability","reason":"Stabilizability of relevant modes must be checked."},{"id":"math.linear.positive-definite","reason":"Quadratic penalties must have appropriate definiteness."},{"id":"robot.control.poles","reason":"The resulting local feedback dynamics need a stability check."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected model-based control research tools; analytical conclusions are limited by stated assumptions.","sourceIds":["underactuated","modern-robotics"],"stage":"graduate","title":"Design a linear quadratic regulator"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"State whether the result establishes stability or asymptotic convergence.","id":"robot.control.lyapunov","misconception":"A decreasing function along a few sampled paths is not a regional proof.","objective":"Evaluate a candidate function and its derivative over a stated region.","recommended":[],"requires":[{"id":"math.calculus.gradient","reason":"The derivative along dynamics uses gradient times state rate."},{"id":"math.linear.positive-definite","reason":"A quadratic candidate must be positive away from equilibrium."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected model-based control research tools; analytical conclusions are limited by stated assumptions.","sourceIds":["underactuated","modern-robotics"],"stage":"graduate","title":"Check a Lyapunov decrease condition"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain why the certificate may be conservative and local.","id":"robot.control.region-attraction","misconception":"A local attraction set does not establish global recoverability.","objective":"Find a Lyapunov sublevel set satisfying decrease and model constraints.","recommended":[],"requires":[{"id":"robot.control.lyapunov","reason":"The set boundary and interior need a valid decrease argument."},{"id":"math.optimization.convexity","reason":"Optimization-based certificates require understanding their relaxation assumptions."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected model-based control research tools; analytical conclusions are limited by stated assumptions.","sourceIds":["underactuated","modern-robotics"],"stage":"graduate","title":"Bound a region of attraction"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check feasibility with actuator bounds and explain sampling limitations.","id":"robot.control.barrier","misconception":"A continuous-time barrier argument can fail under unmodeled delay or discrete execution.","objective":"Convert a supplied safe-set function into an input inequality under a stated dynamics model.","recommended":[],"requires":[{"id":"robot.control.lyapunov","reason":"Both methods evaluate derivatives of scalar functions along dynamics."},{"id":"math.optimization.qp","reason":"A barrier condition can constrain a quadratic control selection."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected model-based control research tools; analytical conclusions are limited by stated assumptions.","sourceIds":["underactuated","modern-robotics"],"stage":"graduate","title":"Form a control-barrier constraint"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Report the uncertainty set and a failed edge case.","id":"robot.control.robustness","misconception":"Nominal success does not cover uncertainty that was never modeled.","objective":"Specify uncertain parameters and evaluate stability or performance over the declared set.","recommended":[],"requires":[{"id":"robot.control.frequency-margin","reason":"Margins give one local measure of uncertainty tolerance."},{"id":"physics.model.identifiability","reason":"Parameter uncertainty reflects what experiments can distinguish."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected model-based control research tools; analytical conclusions are limited by stated assumptions.","sourceIds":["underactuated","modern-robotics"],"stage":"graduate","title":"Test feedback against model uncertainty"},{"alternatives":[],"applications":["general","microduck","arm"],"clusterIds":["robot.control-research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Identify singular directions and dynamically coupled tasks.","id":"robot.control.task-space","misconception":"Task-space control does not eliminate joint limits or model dependence.","objective":"Relate a desired task acceleration or wrench to joint actuation through robot dynamics.","recommended":[],"requires":[{"id":"robot.kinematics.jacobian","reason":"The task-joint differential map links task behavior to actuation."},{"id":"physics.dynamics.mass-matrix","reason":"Dynamic coupling determines acceleration and force relationships."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Selected model-based control research tools; analytical conclusions are limited by stated assumptions.","sourceIds":["underactuated","modern-robotics"],"stage":"graduate","title":"Form an operational-space control objective"},{"alternatives":[],"applications":["general","arm"],"clusterIds":["robot.manipulation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain the moment induced by an off-center contact force.","id":"robot.manipulation.wrench","misconception":"The same force has different torque coordinates about different points.","objective":"Express a force and moment about a new reference point and frame.","recommended":[],"requires":[{"id":"math.vector.cross","reason":"A lever arm crossed with force gives the moment shift."},{"id":"robot.kinematics.transform","reason":"Force and moment coordinates must use a consistent frame."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Force, geometry and uncertainty reasoning for grippers and arms.","sourceIds":["manipulation","modern-robotics"],"stage":"graduate","title":"Transform a contact wrench"},{"alternatives":[],"applications":["general","arm"],"clusterIds":["robot.manipulation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check force directions and torque arms for each contact.","id":"robot.manipulation.grasp-map","misconception":"Adding contact forces without their moments can miss object rotation.","objective":"Map contact forces into a net object wrench.","recommended":[],"requires":[{"id":"robot.manipulation.wrench","reason":"Each contact contributes a correctly referenced wrench."},{"id":"math.matrix.multiply","reason":"The grasp matrix combines contact-force coordinates."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Force, geometry and uncertainty reasoning for grippers and arms.","sourceIds":["manipulation","modern-robotics"],"stage":"graduate","title":"Construct a grasp map"},{"alternatives":[],"applications":["general","arm"],"clusterIds":["robot.manipulation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"State friction assumptions and distinguish force closure from a selected successful hold.","id":"robot.manipulation.force-closure","misconception":"A grasp that holds against gravity alone need not have force closure.","objective":"Determine whether admissible contact forces can resist arbitrary small object wrenches.","recommended":[],"requires":[{"id":"robot.manipulation.grasp-map","reason":"The map determines the object wrenches available from contacts."},{"id":"physics.contact.friction-cone","reason":"Contact forces are constrained by unilateral friction feasibility."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Force, geometry and uncertainty reasoning for grippers and arms.","sourceIds":["manipulation","modern-robotics"],"stage":"graduate","title":"Assess force closure"},{"alternatives":[],"applications":["general","arm"],"clusterIds":["robot.manipulation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain the roles and units of virtual stiffness and damping.","id":"robot.manipulation.impedance","misconception":"Low commanded stiffness does not guarantee low contact force under every collision.","objective":"Choose a desired motion-force relationship for a compliant task.","recommended":[],"requires":[{"id":"physics.material.spring","reason":"Virtual stiffness relates displacement error to restoring force."},{"id":"robot.control.d-term","reason":"A velocity-related term contributes damping."},{"id":"robot.control.task-space","reason":"The behavior must be expressed in the task coordinates of contact."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Force, geometry and uncertainty reasoning for grippers and arms.","sourceIds":["manipulation","modern-robotics"],"stage":"graduate","title":"Specify an impedance behavior"},{"alternatives":[],"applications":["general","arm"],"clusterIds":["robot.manipulation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain why position and force cannot be independently commanded in the same constrained direction.","id":"robot.manipulation.hybrid-control","misconception":"A rigid contact removes motion freedom in its normal direction.","objective":"Assign force and motion objectives in complementary directions of a contact task.","recommended":[],"requires":[{"id":"robot.manipulation.wrench","reason":"Force objectives must use the contact frame."},{"id":"physics.contact.complementarity","reason":"Contact constraints determine which directions are physically restricted."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Force, geometry and uncertainty reasoning for grippers and arms.","sourceIds":["manipulation","modern-robotics"],"stage":"graduate","title":"Separate constrained and free task directions"},{"alternatives":[],"applications":["general","arm"],"clusterIds":["robot.manipulation"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check guards and contact feasibility at each transition.","id":"robot.manipulation.contact-plan","misconception":"A sequence of feasible static grasps need not provide feasible transitions.","objective":"Specify transitions among approach, touch, slide, grasp and release for a stated task.","recommended":[],"requires":[{"id":"physics.contact.complementarity","reason":"Mode changes alter active contact constraints."},{"id":"computing.state.machine","reason":"The contact plan needs explicit mode-transition rules."},{"id":"robot.planning.collision-edge","reason":"Each transition must remain geometrically feasible."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Force, geometry and uncertainty reasoning for grippers and arms.","sourceIds":["manipulation","modern-robotics"],"stage":"graduate","title":"Plan a contact-mode sequence"},{"alternatives":[],"applications":["general"],"clusterIds":["robot.locomotion"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain straight travel, turning and in-place rotation from wheel-rate combinations.","id":"robot.mobile.differential-drive","misconception":"A differential-drive robot cannot independently command instantaneous sideways velocity.","objective":"Map left and right wheel rates to planar linear and angular velocity under no slip.","recommended":[],"requires":[{"id":"robot.mobile.wheel-distance","reason":"Each wheel rate determines a tangential ground speed."},{"id":"physics.rotation.angular-motion","reason":"Wheel-speed differences induce body angular velocity."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Nonholonomic and hybrid motion models relevant to wheeled platforms and legged robots such as MicroDuck.","sourceIds":["modern-robotics","underactuated"],"stage":"graduate","title":"Derive differential-drive body motion"},{"alternatives":[],"applications":["general"],"clusterIds":["robot.locomotion"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Compare a straight-step approximation with a curved-motion case.","id":"robot.mobile.odometry","misconception":"Integrating wheel measurements accumulates slip and calibration error.","objective":"Update a planar pose from a finite wheel-motion increment with consistent heading.","recommended":[],"requires":[{"id":"robot.mobile.differential-drive","reason":"Wheel rates define the planar motion increment."},{"id":"robot.kinematics.transform","reason":"Body-frame displacement must be composed into the world pose."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Nonholonomic and hybrid motion models relevant to wheeled platforms and legged robots such as MicroDuck.","sourceIds":["modern-robotics","underactuated"],"stage":"graduate","title":"Integrate planar wheel odometry"},{"alternatives":[],"applications":["general","microduck"],"clusterIds":["robot.locomotion"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain the limits for accelerating motion or non-flat contact.","id":"robot.locomotion.support","misconception":"A center projection inside the support polygon does not guarantee dynamic stability.","objective":"Compare the gravity projection of center of mass with a support polygon under stated assumptions.","recommended":[],"requires":[{"id":"physics.rotation.equilibrium","reason":"Quasistatic support requires force and moment balance."},{"id":"math.geometry.coordinates","reason":"The projection and support polygon share a ground-plane frame."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Nonholonomic and hybrid motion models relevant to wheeled platforms and legged robots such as MicroDuck.","sourceIds":["modern-robotics","underactuated"],"stage":"graduate","title":"Check a quasistatic support condition"},{"alternatives":[],"applications":["general","microduck"],"clusterIds":["robot.locomotion"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Trace the state through one contact transition.","id":"robot.locomotion.hybrid-step","misconception":"Walking dynamics are not described by one smooth ODE across impact.","objective":"Specify continuous stance evolution, a contact guard and an impact reset.","recommended":[],"requires":[{"id":"physics.contact.impact","reason":"The impact changes velocities at the transition."},{"id":"computing.state.machine","reason":"Contact guards change which continuous model is active."},{"id":"math.ode.state-space","reason":"Each stance phase has a continuous state model."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Nonholonomic and hybrid motion models relevant to wheeled platforms and legged robots such as MicroDuck.","sourceIds":["modern-robotics","underactuated"],"stage":"graduate","title":"Model a walking step as hybrid dynamics"},{"alternatives":[],"applications":["general","microduck"],"clusterIds":["robot.locomotion"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Interpret eigenvalues as local step-to-step perturbation growth or decay.","id":"robot.locomotion.poincare","misconception":"Stability of one sampled orbit does not establish recovery from every disturbance.","objective":"Linearize a step-to-step return map near a periodic walking orbit.","recommended":[],"requires":[{"id":"robot.locomotion.hybrid-step","reason":"The return map includes continuous motion and contact resets."},{"id":"math.linear.eigen","reason":"Return-map eigenvalues characterize local perturbation evolution."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Nonholonomic and hybrid motion models relevant to wheeled platforms and legged robots such as MicroDuck.","sourceIds":["modern-robotics","underactuated"],"stage":"graduate","title":"Assess a gait with a return map"},{"alternatives":[],"applications":["general","microduck"],"clusterIds":["robot.locomotion"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain why internal joint forces cancel from the total external balance.","id":"robot.locomotion.centroidal","misconception":"A centroidal model omits some joint-level feasibility constraints.","objective":"Relate external contact forces and moments to whole-body momentum change.","recommended":[],"requires":[{"id":"physics.momentum.impulse","reason":"External forces change total momentum."},{"id":"robot.manipulation.wrench","reason":"Contacts contribute forces and moments about the center of mass."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Nonholonomic and hybrid motion models relevant to wheeled platforms and legged robots such as MicroDuck.","sourceIds":["modern-robotics","underactuated"],"stage":"graduate","title":"Write a centroidal momentum balance"},{"alternatives":[],"applications":["general","microduck"],"clusterIds":["robot.locomotion"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Report slack use and identify an infeasible command set.","id":"robot.locomotion.whole-body","misconception":"Solving a reduced balance task does not guarantee every joint command is feasible.","objective":"Combine task objectives, dynamics, contact constraints and actuator bounds in one optimization.","recommended":[],"requires":[{"id":"robot.locomotion.centroidal","reason":"Balance objectives need external momentum consistency."},{"id":"math.optimization.qp","reason":"A quadratic program combines objectives and constraints."},{"id":"physics.contact.friction-cone","reason":"Contact force choices must remain admissible."},{"id":"physics.dynamics.mass-matrix","reason":"Joint-level dynamics link acceleration and actuation."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Nonholonomic and hybrid motion models relevant to wheeled platforms and legged robots such as MicroDuck.","sourceIds":["modern-robotics","underactuated"],"stage":"graduate","title":"Form a whole-body control program"},{"alternatives":[],"applications":["general"],"clusterIds":["robot.research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Check held-out trajectories and explain compounding distribution shift.","id":"robot.learning.behavior-cloning","misconception":"Low one-step imitation error does not guarantee a successful full rollout.","objective":"Define observation-action pairs and train a supervised action predictor.","recommended":[],"requires":[{"id":"computing.ml.dataset-split","reason":"Demonstration evaluation must avoid trajectory leakage."},{"id":"computing.ml.sgd","reason":"The imitation loss trains policy parameters."},{"id":"computing.rl.mdp","reason":"A policy acts repeatedly in a changing state distribution."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Original experimental design and critical research reading with consent, traceable data and bounded deployment claims.","sourceIds":["hri","manipulation","underactuated","deep-learning"],"stage":"graduate","title":"Fit an imitation policy from demonstrations"},{"alternatives":[],"applications":["general"],"clusterIds":["robot.research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Revise the evaluation to expose the loophole without claiming the reward is complete.","id":"robot.learning.reward-audit","misconception":"Optimizing the numerical reward is not automatically achieving the human intent.","objective":"Construct a behavior that scores well while violating the intended task outcome.","recommended":[],"requires":[{"id":"computing.rl.mdp","reason":"Rewards and termination define the optimized task."},{"id":"math.proof.counterexample","reason":"A concrete counterexample exposes a mismatch in the general claim."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Original experimental design and critical research reading with consent, traceable data and bounded deployment claims.","sourceIds":["hri","manipulation","underactuated","deep-learning"],"stage":"graduate","title":"Audit a robot reward for loopholes"},{"alternatives":[],"applications":["general"],"clusterIds":["robot.research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Separate simulated success from evidence on the physical device.","id":"robot.learning.sim-to-real","misconception":"Randomizing many parameters does not prove coverage of actual hardware uncertainty.","objective":"Identify relevant simulation mismatches and define separately authorized real-world validation criteria.","recommended":[],"requires":[{"id":"computing.ml.ood","reason":"Simulation transfer is a distribution-shift problem."},{"id":"physics.model.residual-diagnosis","reason":"Physical residuals reveal mismatches worth modeling."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Original experimental design and critical research reading with consent, traceable data and bounded deployment claims.","sourceIds":["hri","manipulation","underactuated","deep-learning"],"stage":"graduate","title":"Design a simulation-transfer evaluation"},{"alternatives":[],"applications":["general"],"clusterIds":["robot.research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"State a failure criterion from the participant’s perspective.","id":"robot.hri.task-analysis","misconception":"An engaging demo does not establish that the intended user task is supported.","objective":"Identify a user task, context and measurable robot behavior before choosing an interface.","recommended":[],"requires":[{"id":"robot.system.sense-decide-act","reason":"An observable interaction depends on the whole sensing-to-output turn."},{"id":"physics.experiment.control","reason":"The proposed behavior needs a measurable comparison."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Original experimental design and critical research reading with consent, traceable data and bounded deployment claims.","sourceIds":["hri","manipulation","underactuated","deep-learning"],"stage":"graduate","title":"Translate an interaction need into an observable requirement"},{"alternatives":[],"applications":["general"],"clusterIds":["robot.research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain whether a within- or between-participant comparison answers the question.","id":"robot.hri.study-design","misconception":"Repeated measurements from one participant are not independent participants.","objective":"Choose a manipulation, outcome, assignment scheme and confound controls for a participant study.","recommended":[],"requires":[{"id":"robot.hri.task-analysis","reason":"The study outcome must reflect the intended interaction requirement."},{"id":"math.stats.sample-bias","reason":"Participant selection affects which users the conclusion applies to."},{"id":"math.stats.hypothesis-test","reason":"The analysis must match the study’s sampling and comparison structure."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Original experimental design and critical research reading with consent, traceable data and bounded deployment claims.","sourceIds":["hri","manipulation","underactuated","deep-learning"],"stage":"graduate","title":"Design a controlled HRI comparison"},{"alternatives":[],"applications":["general"],"clusterIds":["robot.research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Trace a declined or withdrawn permission through the data workflow.","id":"robot.hri.consent-protocol","misconception":"Consent to participate does not authorize every future use of recordings.","objective":"Describe recording, use, retention and withdrawal choices in a participant-facing protocol.","recommended":[],"requires":[{"id":"robot.privacy.recording-gate","reason":"Recording needs an explicit prior permission decision."},{"id":"robot.privacy.upload-gate","reason":"Sharing and remote processing require separate consideration."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Original experimental design and critical research reading with consent, traceable data and bounded deployment claims.","sourceIds":["hri","manipulation","underactuated","deep-learning"],"stage":"graduate","title":"Specify an interaction-study consent protocol"},{"alternatives":[],"applications":["general"],"clusterIds":["robot.research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Distinguish liking, perceived competence and calibrated reliance.","id":"robot.hri.trust-calibration","misconception":"Higher reported trust is not always a better outcome.","objective":"Compare participant reliance with measured system reliability under success and failure conditions.","recommended":[],"requires":[{"id":"robot.hri.study-design","reason":"Trust-related claims need a controlled interaction comparison."},{"id":"computing.ml.calibration","reason":"Capability confidence and empirical reliability must be distinguished."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Original experimental design and critical research reading with consent, traceable data and bounded deployment claims.","sourceIds":["hri","manipulation","underactuated","deep-learning"],"stage":"graduate","title":"Evaluate whether trust matches robot capability"},{"alternatives":[],"applications":["general"],"clusterIds":["robot.research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Rewrite one claim as a falsifiable comparison with a named baseline.","id":"robot.research.paper-claim","misconception":"A published conclusion need not generalize beyond the reported setting.","objective":"Separate a paper’s claimed contribution, assumptions, evidence and untested scope.","recommended":[],"requires":[{"id":"computing.ml.ablation","reason":"A contribution claim must be separated from uncontrolled implementation changes."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Original experimental design and critical research reading with consent, traceable data and bounded deployment claims.","sourceIds":["hri","manipulation","underactuated","deep-learning"],"stage":"graduate","title":"Extract a testable robotics research claim"},{"alternatives":[],"applications":["general"],"clusterIds":["robot.research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Record deviations and report mismatches rather than silently changing the target.","id":"robot.research.reproduce","misconception":"Matching one headline number does not reproduce every claimed behavior.","objective":"Reconstruct a reported experiment from its data, configuration and evaluation protocol.","recommended":[],"requires":[{"id":"computing.software.reproduce","reason":"Code and environment provenance are required for repeatable execution."},{"id":"robot.research.paper-claim","reason":"The target claim defines which evidence must be reproduced."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Original experimental design and critical research reading with consent, traceable data and bounded deployment claims.","sourceIds":["hri","manipulation","underactuated","deep-learning"],"stage":"graduate","title":"Reproduce a reported robot experiment"},{"alternatives":[],"applications":["general"],"clusterIds":["robot.research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Explain dependence between trials and identify untested operating regions.","id":"robot.research.uncertainty-report","misconception":"A single best run does not represent expected performance.","objective":"Report effect size, repeated-run variability and the population of runs or participants studied.","recommended":[],"requires":[{"id":"math.stats.confidence-interval","reason":"Intervals quantify uncertainty under a stated sampling model."},{"id":"robot.research.reproduce","reason":"Repeatable protocol and recorded deviations define comparable trials."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Original experimental design and critical research reading with consent, traceable data and bounded deployment claims.","sourceIds":["hri","manipulation","underactuated","deep-learning"],"stage":"graduate","title":"Report uncertainty in robot experiment outcomes"},{"alternatives":[],"applications":["general"],"clusterIds":["robot.research"],"coverage":{"entries":[],"status":"uncovered"},"domain":"robotics","evidence":"Separate observed symptoms from unresolved causal hypotheses.","id":"robot.research.failure-taxonomy","misconception":"A neat label does not establish a root cause.","objective":"Group observed failures by the earliest supported mechanism or stage.","recommended":[],"requires":[{"id":"robot.system.first-failed-stage","reason":"Stage-level evidence locates the earliest supported failure."},{"id":"robot.debug.clue-vs-cause","reason":"Symptoms must not be promoted into unverified causes."},{"id":"robot.research.uncertainty-report","reason":"Failure frequencies require explicit denominators and uncertainty."}],"review":{"date":"2026-09-10","notes":"Original editorial decomposition informed by the cited public references. Stage placement and prerequisite sufficiency require independent subject-expert and learner validation; this is not certification or evidence of learner mastery.","status":"editorial"},"revision":1,"scope":"Original experimental design and critical research reading with consent, traceable data and bounded deployment claims.","sourceIds":["hri","manipulation","underactuated","deep-learning"],"stage":"graduate","title":"Build an evidence-based failure taxonomy"}],"sources":[{"id":"reachy-config","reviewedAt":"2026-09-10","section":"motors mapping: body_rotation ID 10, stewart_1 through stewart_6 IDs 11–16, right_antenna ID 17, left_antenna ID 18. Verified by direct public-file read; configuration values are not permission or guidance to tune hardware.","title":"Pollen Robotics: pinned Reachy Mini 1.10.0 hardware configuration","url":"https://raw.githubusercontent.com/pollen-robotics/reachy_mini/v1.10.0/src/reachy_mini/assets/config/hardware_config.yaml"},{"id":"reachy-sdk","reviewedAt":"2026-09-10","section":"Movement: goto_target and pose parameters; Sensors \u0026 Media: frame shape, audio samples and explicit media operations. Check installed SDK version before execution.","title":"Pollen Robotics: Reachy Mini Python SDK Reference","url":"https://huggingface.co/docs/reachy_mini/SDK/python-sdk"},{"id":"robotics-perception","reviewedAt":"2026-09-10","section":"Section 4.4: localization, Bayes filters and continuous-state estimation; navigation links connect sensor models and 3D perception chapters.","title":"Dellaert and Hutchinson: Introduction to Robotics and Perception","url":"https://www.roboticsbook.org/S44_logistics_perception.html"},{"id":"manipulation","reviewedAt":"2026-09-10","section":"Chapters on pick-and-place, geometric perception, force control, motion planning, trajectory optimization, learning and manipulation under uncertainty.","title":"Tedrake: Robotic Manipulation","url":"https://manipulation.csail.mit.edu/"},{"id":"architecture","reviewedAt":"2026-09-10","section":"Units 1–6: information, digital abstraction and state machines; 9–21: instructions, stacks, memory, devices, concurrency and communication.","title":"MIT 6.004: Computation Structures","url":"https://ocw.mit.edu/courses/6-004-computation-structures-spring-2017/"},{"id":"systems","reviewedAt":"2026-09-10","section":"Lectures and recitations: naming, operating systems, concurrency, networks, distributed systems, fault tolerance and security.","title":"MIT 6.033: Computer System Engineering","url":"https://ocw.mit.edu/courses/6-033-computer-system-engineering-spring-2018/"},{"id":"ai","reviewedAt":"2026-09-10","section":"Third-edition chapters on search, uncertainty, learning, decision making, planning and reinforcement learning.","title":"Poole and Mackworth: Artificial Intelligence, Foundations of Computational Agents","url":"https://artint.info/3e/html/ArtInt3e.html"},{"id":"fields","reviewedAt":"2026-09-10","section":"Course modules: electrostatics, magnetic fields and forces, Maxwell equations.","title":"MIT 8.02: Electricity and Magnetism","url":"https://ocw.mit.edu/courses/8-02-physics-ii-electricity-and-magnetism-spring-2019/"},{"id":"waves","reviewedAt":"2026-09-10","section":"Lectures 1–11: oscillations and sound; 12–16: electromagnetic waves; 17–22: optics and resolution.","title":"MIT 8.03SC: Vibrations and Waves","url":"https://ocw.mit.edu/courses/8-03sc-physics-iii-vibrations-and-waves-fall-2016/"},{"id":"thermal","reviewedAt":"2026-09-10","section":"Syllabus and lecture notes: thermodynamics, heat, work, temperature, entropy and statistical models.","title":"MIT 8.044: Statistical Physics I","url":"https://ocw.mit.edu/courses/8-044-statistical-physics-i-spring-2013/"},{"id":"breadboard","reviewedAt":"2026-09-10","section":"Breadboards: connected terminal strips, isolated center gap and power rails; inspect each actual board for rail breaks.","title":"Adafruit: Breadboards for Beginners","url":"https://learn.adafruit.com/breadboards-for-beginners/breadboards"},{"id":"reachy-hardware","reviewedAt":"2026-09-10","section":"Global description: head/body/antenna degrees of freedom; specific components: actuators, camera, microphones, speaker and controller connections.","title":"Pollen Robotics: Reachy Mini Hardware Datasheet","url":"https://huggingface.co/docs/reachy_mini/platforms/reachy_mini/hardware"},{"id":"servo","reviewedAt":"2026-09-10","section":"Generic position-servo example: specifications, Goal Position, Present Position, position PID gains and error status. Its control-table units and gain scaling must not be assumed to describe another installed actuator.","title":"ROBOTIS: XL330-M288-T e-Manual","url":"https://emanual.robotis.com/docs/en/dxl/x/xl330-m288/"},{"id":"ccss","reviewedAt":"2026-09-10","section":"Downloadable mathematics standards: grades 6–8 (RP, NS, EE, G, SP); high school Number and Quantity, Algebra, Functions, Geometry, Statistics and Probability.","title":"Common Core State Standards Initiative: Mathematics","url":"https://corestandards.org/mathematics-standards/"},{"id":"calculus","reviewedAt":"2026-09-10","section":"Units 1–5: differentiation, approximation, optimization, integration, and Taylor series.","title":"MIT 18.01SC: Single Variable Calculus","url":"https://ocw.mit.edu/courses/18-01sc-single-variable-calculus-fall-2010/"},{"id":"multivariable","reviewedAt":"2026-09-10","section":"Units 1–4: vectors and matrices, partial derivatives, double and line integrals, surface integrals.","title":"MIT 18.02SC: Multivariable Calculus","url":"https://ocw.mit.edu/courses/18-02sc-multivariable-calculus-fall-2010/"},{"id":"linear","reviewedAt":"2026-09-10","section":"Video lectures: elimination, vector spaces, orthogonality, determinants, eigenvalues, positive definite matrices, singular value decomposition.","title":"MIT 18.06: Linear Algebra","url":"https://ocw.mit.edu/courses/18-06-linear-algebra-spring-2010/"},{"id":"ode","reviewedAt":"2026-09-10","section":"Units I–IV: first-order equations, second-order equations, Fourier and Laplace methods, first-order systems.","title":"MIT 18.03SC: Differential Equations","url":"https://ocw.mit.edu/courses/18-03sc-differential-equations-fall-2011/"},{"id":"probability","reviewedAt":"2026-09-10","section":"Units I–IV: probability models, random variables, random processes, limit theorems and inference.","title":"MIT 6.041SC: Probabilistic Systems Analysis and Applied Probability","url":"https://ocw.mit.edu/courses/6-041sc-probabilistic-systems-analysis-and-applied-probability-fall-2013/"},{"id":"convex","reviewedAt":"2026-09-10","section":"Book chapters 2–5 and 9–11: convex sets/functions, problem formulation, duality, unconstrained and constrained numerical optimization.","title":"Boyd and Vandenberghe: Convex Optimization","url":"https://web.stanford.edu/~boyd/cvxbook/"},{"id":"mechanics","reviewedAt":"2026-09-10","section":"Weeks 1–3, 5, 7–10 and 12: kinematics, forces, momentum, energy, rotation and oscillations; entry nodes are editorial bridges to these topics.","title":"MIT 8.01SC: Classical Mechanics","url":"https://ocw.mit.edu/courses/8-01sc-classical-mechanics-fall-2016/"},{"id":"ohm","reviewedAt":"2026-09-10","section":"Section 20.2: current–voltage–resistance relation, ohmic model limitations, voltage drops, and simple circuit path.","title":"OpenStax: Ohm’s Law, Resistance and Simple Circuits","url":"https://openstax.org/books/college-physics-2e/pages/20-2-ohms-law-resistance-and-simple-circuits"},{"id":"circuits","reviewedAt":"2026-09-10","section":"Lecture notes and calendar: lumped circuits, resistive networks, MOSFETs, amplifiers, energy storage, first- and second-order systems.","title":"MIT 6.002: Circuits and Electronics","url":"https://ocw.mit.edu/courses/6-002-circuits-and-electronics-spring-2007/"},{"id":"signals","reviewedAt":"2026-09-10","section":"Lecture notes: discrete and continuous signals, convolution, Fourier/Laplace/Z transforms, sampling and feedback.","title":"MIT 6.003: Signals and Systems","url":"https://ocw.mit.edu/courses/6-003-signals-and-systems-fall-2011/"},{"id":"python","reviewedAt":"2026-09-10","section":"Sections 2–9: interpreter, numbers/text/lists, control flow and functions, data structures, modules, input/output, errors, classes.","title":"Python Software Foundation: Python Tutorial","url":"https://docs.python.org/3/tutorial/"},{"id":"algorithms","reviewedAt":"2026-09-10","section":"Lecture notes and Python cost model: data structures, sorting, hashing, graph search, shortest paths and dynamic programming.","title":"MIT 6.006: Introduction to Algorithms","url":"https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-fall-2011/"},{"id":"modern-robotics","reviewedAt":"2026-09-10","section":"Video supplement index, chapters 2–13: configuration, rigid motion, kinematics, dynamics, trajectories, planning, control, manipulation and mobile robots.","title":"Lynch and Park: Modern Robotics","url":"https://modernrobotics.northwestern.edu/nu-gm-book-resource/"},{"id":"underactuated","reviewedAt":"2026-09-10","section":"Chapters 2–5 (pendulum and walking), 7–10 (dynamic programming, LQR, Lyapunov analysis, trajectory optimization); system identification and stochastic control sections.","title":"Tedrake: Underactuated Robotics","url":"https://underactuated.mit.edu/"},{"id":"planning","reviewedAt":"2026-09-10","section":"Chapters 2–8 (discrete and motion planning), 9–12 (decisions and uncertainty), 13–15 (differential constraints and system theory).","title":"LaValle: Planning Algorithms","url":"https://lavalle.pl/planning/"},{"id":"gtsam","reviewedAt":"2026-09-10","section":"Sections 1–7: factor graphs, robot motion, localization, PoseSLAM, landmark SLAM, structure from motion and incremental smoothing.","title":"Dellaert: Factor Graphs and GTSAM","url":"https://gtsam.org/tutorials/intro.html"},{"id":"deep-learning","reviewedAt":"2026-09-10","section":"Chapters 3–9 (probability, numerical computation, ML, networks, regularization, optimization, convolution); chapters 11, 14, 16–20 (methodology and research models).","title":"Goodfellow, Bengio and Courville: Deep Learning","url":"https://www.deeplearningbook.org/"},{"id":"vision","reviewedAt":"2026-09-10","section":"Course description and syllabus: visual recognition, learning algorithms, training and evaluation of neural networks.","title":"Stanford CS231n: Deep Learning for Computer Vision","url":"https://cs231n.stanford.edu/"},{"id":"hri","reviewedAt":"2026-09-10","section":"Textbook and chapter resources: interaction design, perception, social interaction, research methods and ethics.","title":"Bartneck, Belpaeme, Eyssel, Kanda, Keijsers and Sabanovic: Human-Robot Interaction","url":"https://www.human-robot-interaction.org/"}]}