Ready to begin
Choose Next step to follow the actual course records.

Repeatedly searching backwards for Swaminathan seems wasteful. Keep a variable LastName. Start it as empty. Read forwards; when a recognized person name appears, update LastName. At a relevant pronoun, use the remembered name as a candidate. This replaces repeated scans with remembered information.
Trace the records, compare the methods and watch what changes. Back and Reset let you try again.
Ready
Choose Next step to follow the actual course records.
Start with Next step. Predict what changes before reading the explanation.
LastName = empty
for each word card X in paragraph order:
if X is a recognized person name:
LastName = X.Word
if X is a relevant personal pronoun:
if LastName is empty:
report "Unresolved"
else:
report LastName as a candidate, not guaranteed meaningFor “his eyes” at position 9 and “He shuddered” at position 40, the candidate is Swaminathan. A single forward pass can generate these candidates without repeated backward scans. The rule must still be checked against what the sentence means.
The lecture discusses keeping more than one remembered person or object. That may help, but categories alone cannot resolve every sentence. Do not infer a person’s identity or pronoun use from a name. We use explicit passage context, and we leave the opening “It” and impersonal “it” outside this person-name demonstration.
Should seeing Monday overwrite LastName?
No. Monday is a noun but not a person name. Updating on every noun would break even these simple examples.
What does LastName contain immediately before the first person name?
Empty or unresolved. It must be initialized; there is no earlier recognized person to remember.
Why can remembering a value make an algorithm faster?
Later steps can reuse information from earlier visits instead of rescanning the same records. But the remembered value must still contain enough information for the actual task.