Current measures charge crossing a chosen boundary per time. It is a signed rate, not the speed of one electron and not an amount of charge stored in a wire. A circuit program needs an orientation for every branch before it can give a current value a useful sign.
Think like a programmer
Model current either as a reducer over charge-transfer events or as a derived state rate. Declare the positive branch direction once and carry it through every equation and graph edge. Validate that elapsed time is positive and finite; the transferred charge may be positive or negative, because sign belongs to the direction convention.
Model checklist
Inputs
Signed transferred charge ΔQ, positive elapsed interval Δt, chosen branch direction, boundary location, and sampling window.
State
Signed current value, event list or charge history, reference orientation, and optional uncertainty metadata.
Rule
Sum signed charge that crosses the boundary during the interval, then divide by elapsed time.
Output
Average current with direction, charge-balance diagnostic, and time series when sampling is resolved.
Check
Reversing the reference direction reverses reported sign; the same charge in half the interval doubles average current; a zero or negative elapsed interval is rejected; branch charge balance agrees with any declared storage change.
\[I=\frac{\Delta Q}{\Delta t}\]
The formula is an average over the selected interval. For ΔQ = −6 C across a boundary defined positive in the opposite direction, measured over 2 s, the result is −3 A. The negative sign is useful: it tells the program that the physical transfer went opposite to the stored orientation. Changing the reference direction would change the reported sign but not the underlying transfer event.
For a time-varying model, current is the limiting rate
Sampled data can estimate the integral with a documented quadrature rule, but it must retain the sample interval and sign convention. A simple branch balance test adds all current entering a modeled node and compares it with the rate at which its stored charge changes. That converts Kirchhoff-style bookkeeping into an array or event-log invariant rather than a visual assumption.
Try this experiment
Prediction: The same signed charge transfer in half the time doubles average current, and changing only the reference direction reverses the reported sign.
Choose a left-to-right branch orientation. Record a −4 C transfer over 0.5 s, calculate the current, then reverse the reference orientation without changing the event. Write input guards for non-finite charge and non-positive elapsed time. Finally describe the node-balance value you would log for a capacitor whose stored charge is changing.
Where this model breaks
Microscopic carriers can drift slowly while electromagnetic signals and electromagnetic energy propagate differently. AC current needs time-resolved state, phase, and measurement bandwidth; a single average may hide reversals. At high frequency, lumped branch models need distributed fields, radiation, capacitance, and inductance. Charge crossing a geometric boundary is a bookkeeping model and must be matched to the physical measurement setup.
Summary
Use signed charge-transfer rate for current, validate elapsed time, and make branch orientation part of the data contract. Preserve charge histories or events when a time-varying model is needed, then test branch balance rather than relying on arrow direction in a diagram.
Glossary
Current: charge flow rate.
Branch: one path in a circuit graph.
Reference direction: sign convention for a branch.
Ampere: coulomb per second, the unit of current.
Charge balance: comparison between boundary flow and stored charge change.
Average current: total signed transfer divided by a finite interval.
Treat the lesson as a small function before treating it as a fact to memorize. Give every value a unit, keep only the state needed for the next step, and make the output easy to inspect.
Quantities you set or measure, with units and useful bounds.
State
Values the program must retain to reproduce the next result.
Rule
The relationship or update that turns inputs and state into a result.
Check
A known limit, unit check, invariant, or measured result that can expose a bad model.
Implement the idea as a model
For Current as Charge Flow, write down the quantities you can control, the values your program must retain, and the result a reader could inspect. In Currents and Circuits, the useful program is not the drawing: it is the smallest explicit model that makes a prediction you can test.
Guided experiment
Prediction: changing one declared input while holding the others fixed should change only the outputs that the model connects to that input. Choose one input, predict the direction of change, then check a limiting case such as zero, a symmetric arrangement, or a familiar low-speed or small-change approximation.
Where this model breaks
This lesson is a teaching model, not a complete simulator. Before using it outside the stated question, check which interactions, scales, uncertainties, boundary conditions, and measurement limits it leaves out.
Summary
Treat Current as Charge Flow as a contract: named inputs and units enter a rule, the rule produces an observable result, and a known limit or invariant checks whether the implementation deserves trust.
Glossary
Input: a measured value or chosen parameter supplied to a model.
State: the smallest set of values needed to continue or reproduce a model.
Validation: comparing an output with a known result, limit, invariant, or measurement.
Self-check
Which values are inputs, and which values must remain state?
What observable result would tell you the model is behaving as expected?
Which assumption would you test first before applying the model to a real system?
Model review: turn Current as Charge Flow into a test
Compute signed current from charge-transfer events with explicit branch orientation.
Name the inputs and units that the currents and circuits model needs.
Separate the state you must keep from values you can calculate when needed.
Write one rule that maps the current state and inputs to an observable result.
Choose a limiting case, unit check, invariant, or known result before trusting an output.
State one assumption you would change before using this simplified model for a real decision.