SUSTech: A cognition experiment, submitted to an electrical engineering department.
Undergraduate capstone in Qingsha Cheng's lab, Department of Electronic & Electrical Engineering — the final requirement of a B.Eng in Microelectronic Science and Engineering.
In 2021, my advisor in SUSTech's electrical engineering department handed me a capstone topic I hadn't picked — build a target-shooting experiment in MATLAB PsychToolbox, and use Space Mapping, an algorithm from electronic design optimisation, to estimate how people correct their aim. It is the earliest dated evidence that the move toward people started inside the engineering degree, not after it.
Overview
Undergraduate capstone in Qingsha Cheng's lab, Department of Electronic & Electrical Engineering — the final requirement of a B.Eng in Microelectronic Science and Engineering.
An electrical engineering professor assigned this topic to a microelectronics undergraduate — which is what makes it evidence.
In May 2021 I submitted a capstone thesis to the Department of Electronic & Electrical Engineering at the Southern University of Science and Technology, the last requirement of a B.Eng in microelectronics. The topic was a cognition experiment: build a target-shooting task in MATLAB, watch people correct their aim across repeated attempts, and use an optimisation algorithm borrowed from electronic design to estimate the correction they were making.
I did not choose it. The signed proposal form records the topic as set by the advisor, and it is not hard to see why he set it. Qingsha Cheng's lab works on electromagnetic design optimisation, and he is a co-author on the canonical literature for the exact algorithm the thesis applies — this was his research program pointed somewhere it had not been pointed before.
The thesis went looking for prior work joining that algorithm to human behaviour and found none. That absence is its stated novelty claim, and it is also the reason a microelectronics undergraduate spent his last year on an experiment about people.
The distinction matters more than it looks. A cross-domain move I had chosen would be a story about my own instincts, told five years later by the person with every reason to tell it flatteringly. An assignment is a different kind of fact: the problem came from somewhere else, the record says so in writing, and what I did with it is the only part left to argue about.
So this is not a design case study, and it does not claim that 2021 predicted anything. It is the earliest hard evidence I have that the turn toward people started inside the engineering degree rather than after it — and the whole argument runs through what the artifact is, not through what I have since decided it meant.

The Experiment
A target, a mouse click, and a hidden transform between where you aim and where the arrow lands.
A participant sees a bullseye — concentric grey rings around a red centre — and is told one thing: hit the centre in as few shots as you can. Clicking anywhere on the screen fires. An arrow appears where the shot landed.
It does not land where you clicked. Between the mouse coordinate and the arrow's position the program applies a fixed linear transform — a scale on each axis, plus an offset — and never mentions it. The instruction card explains the controls and stops there.
What the task actually measures is how fast you work out a rule nobody told you, from nothing but the gap between where you aimed and where the arrow went. The run ends when you finally hit the centre.
In as few shots as you can is the part that makes the rest measurable. It gives a participant a reason to think before clicking instead of spraying the screen, which is what turns the pause between two shots into an interval worth timing. Every attempt wrote six columns to disk: attempt number, click position, arrow position, distance from the arrow to the centre, timestamp, and whether the shot hit. No names, no identifiers, nothing recorded of the participant but what they did with the mouse.
Fourteen people volunteered and thirteen datasets were valid. The fourteenth had fired hundreds of shots where everyone else needed a handful — which is not somebody converging on a rule, it is somebody clicking. Excluding them was a judgement about what the data represented rather than a cleanup step, and the thesis says so where it reports the number. Sessions were unpaid and ran about a minute each.


The Instrument
The experiment ran on PsychToolbox; the six modules that drove it were about four hundred lines of my own MATLAB.
Timing is the hard part of an experiment like this. A deliberation time only means something if the frame the participant reacted to went up when the program thinks it did, which is a question about display refresh and input polling rather than about psychology. PsychToolbox, the open-source MATLAB toolkit that has been the standard instrument for timed visual psychophysics for over two decades, owns that layer, and the experiment ran on it.
Everything above that layer I wrote — about four hundred lines of MATLAB, listed in full across the thesis's two appendices. Start_up runs a session; under it sit six modules, in the order they fire:
init_screen— opens the display.disp_intro— draws the instruction card and waits for the spacebar.get_trans— builds the transform matrix.main_exp— runs the trial loop: draw the target, poll the mouse, place the arrow, log the row.checkend— watches for the escape key.struct2excel— writes the session out.
The module I would point at first is checkend. It is eight lines, it does nothing scientific, and all it does is listen for the escape key — because the experiment takes over the entire screen, and a participant who hits a bug would otherwise have no way out of it. The instruction card says as much, in its last line before press Space to begin: if you run into a bug, press Esc to force-quit. Writing that line meant thinking about what the program does to a person when it breaks, which is not a question the thesis was asking anywhere else.
get_trans is the one worth reading. It is the shortest file in the program and the most consequential: the scale and the offset that separate where you clicked from where the arrow landed are assembled there. Every number in the next two sections is a measurement of how well thirteen people reverse-engineered it.


The Algorithm
Two models of the same act — the transform the program applied, and the one estimated from each participant's clicks.
Space Mapping comes from electronic design. An engineer holds two models of a device — one cheap and rough, one expensive and accurate — and instead of running the expensive one over and over, aligns the cheap one to it until the cheap one can be trusted. It is how you tune a microwave filter. The canonical survey of the technique (Bandler, Cheng et al., IEEE Transactions on Microwave Theory and Techniques, 2004) is co-authored by the advisor who set this topic; the thesis cites it first.
Transferring that to this problem inverts one thing, and the inversion is the whole idea. In electronic design you choose the coarse model — you decide which simplification to make, because the simplification is yours. Here the coarse model was a person. It was not chosen and it could not be opened up; it could only be estimated from the outside, by watching what somebody did and fitting a description to it until the description predicted them.
The two models were therefore both descriptions of one transform. The fine model was the program's own — a scale of 1.3 on x and 1.5 on y, plus a fixed offset — known exactly and in advance, because the program is the thing that applies it. The coarse model was estimated per participant from nothing but their clicks and where the arrows landed, by multiple linear regression fitted with least squares in MATLAB's regress. Six unknowns, one for each term of the transform, solved thirteen times over.
What that coarse model is, read now, is a mathematical estimate of what a person had worked out about an interface nobody explained. That is my reading in 2026, not a sentence the 2021 thesis wrote — it says cognitive model, and means the account of the system a participant was acting on. The shape is the same, and it is why this document is on the site.
What comes out of that is a validation rather than a finding, and the distinction is worth holding onto. Because the fine model was a known constant, recovering it from behaviour discovers nothing about people — it says the estimator worked.
Across the thirteen fits, the coarse estimates clustered around the preset values: the histogram of the scale term brackets 1.3, the offset term brackets 60. The method held. Everything the next section reports rests on that, and nothing more is claimed from it.



Findings
Every participant converged on the target, and most settled near a second per shot — on a sample of thirteen, too small to test for significance.
Two results, measured two ways. The first is time. The gap between consecutive shots is scattered on the first attempt and again on the second; from the third onward it collapses into a tight band near one second, and intervals longer than five seconds become rare. Most people finished in four or five attempts; one needed seven.
Whatever the rule-finding is, it costs about a second once it is running, and the first two shots are where the cost lives.
The second is accuracy. Plotting each participant's arrow-to-centre distance against attempt number gives thirteen lines falling at thirteen different rates, and averaging them gives one line falling steadily. More attempts, closer shots — the least surprising result in the thesis, and the one it most needed, because the whole method assumes people are correcting rather than guessing.
Both results rest on thirteen people taking four to seven shots each, which is not enough to reach significance at the 0.05 level. The thesis says so where it reports them rather than in a closing caveat, and it says what would fix it: interval estimates on the regression coefficients, significance tests, residual analysis, and filtering trials by elapsed time to drop the ones where a participant plainly wasn't participating. Naming the repair is what separates a limitation from an apology.



In Hindsight
The thing the algorithm was estimating was a mental model.
Strip the vocabulary out and describe what the study did. It put people in front of an interface whose input mapping was unfamiliar and undocumented. It let them build a model of that mapping under repetition, with no instruction and no feedback beyond the result of their own actions. It instrumented time-to-decide and error, and it watched both improve.
Nobody in the room called that a usability problem. The department it was submitted to had no reason to, and I did not have the words for it either. What I had was a topic I hadn't chosen, a toolkit for putting timed images on a screen, and an optimisation algorithm borrowed from filter design — and the thing that algorithm was estimating, term by term, was what a person had figured out about a system that never explained itself.
I started a master's in human factors that August. By then this was already done — dated 15 May 2021, submitted to an electrical engineering department, and about how people behave under a system they were never given the rules to. I am not claiming it caused what came after. I am claiming it is dated.