5D Library › Classical and Statistical Mechanics of Human Action · 中文
Chapter 5 Social Coupling and Learning by Teaching
Other people as an outside force
One force kept appearing in the models of Chapters 3 and 4: a steady outside pull that tilts the landscape towards the new state and, as long as it lasts, keeps relapse slow. For people, the commonest steady outside force comes from others: someone waiting for your result, someone practising with you, someone you have to teach. This chapter looks at two kinds of evidence — what learning in order to teach does for learning itself, and how a behaviour spreads through a network of people — and then uses a model to test one specific course rule: “you must help two classmates pass before the next stage unlocks”.
Learning in order to teach
Evidence
In a 1980 experiment, Bargh and Schul had students study a passage, one group believing they would then teach it to another student and the other expecting a test; the “preparing to teach” group did better on a retention test (Bargh and Schul 1980). Fiorella and Mayer’s four experiments separated “expecting to teach” from “actually teaching” (explaining to a camera). Preparing to teach gave an advantage on an immediate test (d about 0.55–0.59), but on a test one week later the advantage had gone; only students who had actually explained the material stayed ahead on the delayed test (d about 0.79–0.90) (Fiorella and Mayer 2013). Expecting to teach also leads learners to organise what they learn better (Nestojko et al. 2014).
Evidence
Kobayashi’s meta-analysis of 28 studies estimated an effect of g ≈ 0.35 for preparing to teach compared with ordinary study, and g ≈ 0.56 for teaching after preparing; interactive teaching (with real learners asking questions) worked better than one-way explanation (Kobayashi 2019). A meta-analysis of “generating teaching materials for others” found a smaller average effect, g ≈ 0.17 (Ribosa and Duran 2022). An early meta-analysis of tutoring programmes found that not only the tutees benefited: the students who served as tutors also improved, with an effect size of about 0.33 (Cohen et al. 1982). In “teachable agent” studies, students worked harder when learning for a computer character they had to teach than when learning for themselves, which the researchers called the “protégé effect” (Chase et al. 2009).
This evidence supports “teaching others helps you learn”, especially real, interactive teaching. It does not support “teaching others is the best way to learn”. The widely shared “learning pyramid” (5 % retained from lectures, 90 % from teaching others, and so on) has no reliable original study behind it (Masters 2013). This book uses only effect sizes with sources.
How a behaviour spreads through a network
Diseases and news can spread after a single contact; this is simple contagion. Many behaviours are different: whether to start running, join a study group or adopt a new tool, people often wait until more than one acquaintance has done so. Granovetter described such collective behaviour with threshold models, in which each person adopts once the number of adopters around them passes their threshold (Granovetter 1978). Centola and Macy called spread that needs reinforcement from several sources complex contagion, and showed that the long-range weak ties that help simple contagion actually hinder complex contagion (Centola and Macy 2007).
Evidence
In a 2010 online experiment, Centola placed participants in designed networks: either a highly clustered lattice (friends of friends are often friends) or a random network with the same number of people and contacts, and watched how a health behaviour (registering for a health forum) spread. Participants were much more likely to adopt when they received signals from several network neighbours, and the behaviour spread farther and faster in the clustered networks (Centola 2010).
Calculation
400 people, each with 8 contacts. Clustered network: everyone knows their 4 nearest neighbours on each side of a ring. Random network: the same contacts shuffled by swaps that keep everyone’s number of contacts fixed. Start from one person and their 8 contacts, and compare thresholds of 1, 2 and 3 adopting contacts.
# Simple vs complex contagion (Centola & Macy 2007; Centola 2010).
# 400 people, each with 8 contacts. Clustered network: a ring where everyone knows their 4 nearest
# neighbours on each side. Random network: the same contacts shuffled by degree-preserving swaps.
# Simple contagion: adopt after 1 adopting contact. Complex contagion: adopt only after 2 or 3 (a behaviour
# that needs reinforcement from more than one person). Simplified model.
import random
random.seed(5)
N, K = 400, 4
def ring():
return {(min(i, (i + j) % N), max(i, (i + j) % N)) for i in range(N) for j in range(1, K + 1)}
def shuffled(edges, swaps=20000):
e = list(edges)
s = set(e)
for _ in range(swaps):
i, j = random.randrange(len(e)), random.randrange(len(e))
(a, b), (c, d) = e[i], e[j]
if len({a, b, c, d}) < 4:
continue
n1, n2 = (min(a, d), max(a, d)), (min(c, b), max(c, b))
if n1 in s or n2 in s:
continue
s -= {e[i], e[j]}
s |= {n1, n2}
e[i], e[j] = n1, n2
return s
def spread(edges, threshold):
nb = {i: set() for i in range(N)}
for a, b in edges:
nb[a].add(b)
nb[b].add(a)
adopted = {0} | nb[0] # one person and their contacts start
steps = 0
while True:
new = {i for i in range(N) if i not in adopted and len(nb[i] & adopted) >= threshold}
if not new:
return len(adopted) / N, steps
adopted |= new
steps += 1
lattice = ring()
print("threshold clustered network random networks (20): mean reach, networks reaching > 90 %")
for threshold in (1, 2, 3):
f_lat, s_lat = spread(lattice, threshold)
runs = [spread(shuffled(lattice), threshold) for _ in range(20)]
mean = sum(r[0] for r in runs) / len(runs)
full = [r[1] for r in runs if r[0] > 0.9]
speed = f" (in {sum(full) / len(full):4.1f} rounds)" if full else ""
print(f"{threshold:5d} {100 * f_lat:5.1f} % in {s_lat:3d} rounds {100 * mean:5.1f} %, {len(full):2d} of 20{speed}")
# threshold clustered network random networks (20): mean reach, networks reaching > 90 %
# 1 100.0 % in 49 rounds 100.0 %, 20 of 20 (in 3.9 rounds)
# 2 100.0 % in 65 rounds 71.1 %, 14 of 20 (in 11.9 rounds)
# 3 100.0 % in 98 rounds 2.3 %, 0 of 20The result reproduces the main point of the theory. Simple contagion is fastest on random networks, covering everyone in under 4 rounds. Complex contagion needing 3 reinforcing contacts took off in none of the 20 random networks, reaching about 2 % on average, while on the clustered network it spread ring by ring to everyone. With a threshold of 2 the result lies in between and depends on the particular network. For behaviours that need reinforcement, tight small circles spread them better than broad weak ties.
The “teach two to unlock” rule: an arithmetic problem
The original idea was that requiring every learner to help 2 classmates pass before unlocking the next stage would act both as a ratchet against sliding back into the old well and as an engine of exponential spread. On checking, the idea needs substantial correction.
Calculation
A 30-day course in 4 stages, 120 learners per arm. Arm A studies alone; in arm B, each learner who passes a stage must help 2 classmates before the next stage opens (if no classmate is left on that stage, it opens automatically). Compare three ways of counting “help 2”, and the assumption that teaching lowers the daily chance of quitting by 0 %, 30 % or 60 %. All numbers are assumptions, used only to show the mechanics.
# A 30-day course in 4 stages, 120 learners per arm. Arm A: study alone. Arm B "teach to unlock":
# after passing a stage you must help 2 classmates before the next stage opens (if no classmate is
# left on that stage, it opens anyway). Three ways of counting "help 2":
# B1 2 classmates must PASS while you are their tutor; one tutor per classmate
# B2 the same, but a classmate may have two tutors at once (a learning trio)
# B3 2 logged tutoring sessions with different classmates, whether or not they have passed yet
# Simplified model; every number is an assumption, chosen only to show the mechanics.
import random
random.seed(2)
DAYS, STAGES, COHORT, REPS = 30, 4, 120, 40
P_ALONE, P_HELPED = 0.22, 0.30 # daily chance of passing the current stage: alone / with a tutor
QUIT = 0.02 # daily chance of quitting, arm A
def run(rule, quit_cut):
q = QUIT * (1 - quit_cut) if rule != "A" else QUIT
max_tutors = 2 if rule == "B2" else 1
passed, teaching, credit = [0] * COHORT, [False] * COHORT, [set() for _ in range(COHORT)]
out = [False] * COHORT
for _ in range(DAYS):
live = [i for i in range(COHORT) if not out[i] and passed[i] < STAGES]
for i in live:
if random.random() < q:
out[i] = True
live = [i for i in live if not out[i]]
studying = [i for i in live if not teaching[i]]
tutors = {s: [] for s in studying}
if rule != "A":
for t in (i for i in live if teaching[i]):
pool = [s for s in studying if passed[s] == passed[t] - 1
and len(tutors[s]) < max_tutors and s not in credit[t]]
if pool:
s = random.choice(pool)
tutors[s].append(t)
if rule == "B3":
credit[t].add(s) # a session counts as help
for s in studying:
if random.random() < (P_HELPED if tutors[s] else P_ALONE):
passed[s] += 1
if rule in ("B1", "B2"):
for t in tutors[s]:
credit[t].add(s) # only a pass counts as help
if rule != "A" and passed[s] < STAGES:
teaching[s], credit[s] = True, set()
if rule != "A":
for t in live:
if teaching[t]:
left = [s for s in live if not teaching[s] and passed[s] == passed[t] - 1]
if len(credit[t]) >= 2 or not left:
teaching[t] = False
return sum(1 for p in passed if p >= STAGES) / COHORT
def mean(rule, cut=0.0):
return sum(run(rule, cut) for _ in range(REPS)) / REPS
a = mean("A")
print(f"A study alone: {100 * a:4.1f} % complete by day 30")
print("rule quitting reduced by: 0 % 30 % 60 %")
for rule in ("B1", "B2", "B3"):
row = " ".join(f"{100 * mean(rule, c):6.1f} %" for c in (0.0, 0.3, 0.6))
print(f"{rule} {row}")
print(f"why B1 jams: on each stage, {COHORT} learners need 2 x {COHORT} = {2 * COHORT} credited passes,")
print(f"but at most {COHORT - 1} classmates can pass after someone else - so most tutors wait for the slowest")
# A study alone: 65.6 % complete by day 30
# rule quitting reduced by: 0 % 30 % 60 %
# B1 5.6 % 6.4 % 6.7 %
# B2 10.9 % 11.2 % 12.8 %
# B3 56.4 % 62.8 % 70.8 %
# why B1 jams: on each stage, 120 learners need 2 x 120 = 240 credited passes,
# but at most 119 classmates can pass after someone else - so most tutors wait for the slowestThe key is in the last two lines. If “help” is counted as a tutored classmate passing, with each pass credited to one tutor only (B1), the rule cannot be satisfied for everyone in a closed class, as a matter of arithmetic: on each stage 120 learners need 240 credited passes, but at most 119 classmates can pass after someone else. Most learners can only wait until the slowest classmate on that stage passes and the rule lets them through; the course jams, and completion falls from about 66 % for solo study to about 6 %. Letting two tutors share one classmate (B2) does not solve it: the slowest learner still holds everyone up. Only when “help” is defined as two logged tutoring sessions, whether or not the classmate has passed yet (B3), does the rule stop jamming; whether it then beats solo study depends on how much teaching lowers quitting — under these assumptions, a 30 % reduction still leaves it slightly below solo study, and only a 60 % reduction makes it clearly better.
Note
On “exponential spread”: in a class of fixed size, no tutoring rule increases the number of people; exponential growth appears only if each generation of learners must bring in new learners. If that recruitment is tied to payment, the structure becomes a referral chain, whose ethical and legal risks are another matter. This book neither tests nor recommends that; the Chapter 8 trial arranges tutoring only among learners already enrolled and asks no one to recruit anyone.
A ratchet needs energy
A ratchet is a device that turns only one way. In his Lectures on Physics, Feynman used the “ratchet and pawl” to show that random thermal motion alone cannot make a ratchet turn steadily one way and do work: at the same temperature, the pawl itself is jostled open by thermal motion (Feynman et al. 1963). To work, a ratchet needs a steady supply of energy from outside or a temperature difference. This physical fact is a useful reminder for the analogy of this chapter: peer tutoring can serve as a ratchet against sliding back, but it needs organisation, time and effort to keep it going; left unmaintained, it fails just like the outside pull of Chapter 3.
Hypothesis · not established
Not established. In a 30-day course, learners under the rule “complete two logged peer-tutoring sessions to unlock the next stage” have a 30-day completion rate at least 10 percentage points higher, and a blind-marked final test score at least 0.25 standard deviations higher, than learners who study alone. If the randomised trial of Chapter 8 shows neither outcome reaching these sizes, or either outcome shows harm from the rule, the hypothesis is refuted.
Summary
Learning in order to teach has empirical support, and real, interactive teaching works better, but “the best way to learn” and the “learning pyramid” have no reliable basis. Behaviours that need reinforcement spread better in tight small circles. When the two are combined into a course rule, the details decide the outcome: “teach two to unlock” counted by classmates’ passes must jam a closed class; counted by tutoring sessions it is workable, but its effect depends on whether it really lowers quitting — which is exactly the question the trial in Chapter 8 is designed to answer.
References
Fan, Y. (2026). Classical and Statistical Mechanics of Human Action: Psychological Inertia, Static Friction Thresholds, Kramers Escape Rate in Double-Well Potentials and Habit Phase Transitions, Read Beside East Asian Philosophy of Practice [行动的经典与统计力学] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23738774 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).