Lesson map
Lesson 11. Map, example, EX057.
flowchart TD
A["firmware_age_days = 540"] --> B{"540 <= 180?"}
B -->|No| F["FIX firmware updated within 180 days"]
F --> V["No version string is stored"]
The script compares two integers. It does not name a release.
Logical drawing
age in the dictionary 540
threshold in the check 180
comparison 540 <= 180 is false
chapter 4 gloss about eighteen months
version string absent
Learning outcomes
After this chapter, you should be able to:
- Evaluate the firmware predicate from the two integers.
- Keep chapter 4's "about eighteen months" as a gloss of 540 days.
- Refuse a version, a date, or a vulnerability identifier.
11.1 Age is a number in a dictionary. A release name would be a different fact.
The firmware check is the comparison firmware_age_days <= 180. The dictionary sets the age to 540. Five hundred and forty is greater than one hundred and eighty, so the predicate is false and the line prints FIX. That is the whole computation. It does not identify the product, the release, or a particular weakness. Chapter 4 glosses the same integer as "about eighteen months." The gloss is a reading of 540 days, not a calendar date and not a second measurement. A note may say 540 days, or it may repeat chapter 4's gloss. It may not replace 540 with a version string that was never stored.
The narrative says Leo used the router's built-in update after closing, then checked that the tills, the card reader, and the office computer still connected and that a test payment worked. Those are change-control facts. They do not write a new integer into this script, and they do not name the release that arrived. The three-month habit is a future check for updates. A habit on a pinned list is not evidence that a later age was measured. The saved after-checklist is said to carry a date. The date is not printed. Supplying one would falsify the record by filling a blank.
This limit is also why the course does not list vulnerabilities. A known weakness in old firmware is the reason the checklist cares about age. Naming an identifier, a version, or an exploit would invent an incident and would leave the defensive boundary. The decision Ellen can defend from this file is narrower: the before age fails a 180-day rule, the update is described and not re-measured here, and the next check is a habit.
11.2 Worked example
Lesson table; scroll horizontally to read all columns →
| Added text | Status | Decision |
|---|---|---|
| "The dictionary age is 540, and 540 is not within 180." | The comparison | May stay |
| "Chapter 4 calls that about eighteen months." | The gloss | May stay |
| "The release is named in the script." | No such field | Refuse |
| "The update story replaced 540." | The script is unchanged | Refuse |
Synthetic case. No vulnerability identifier is attached to the bakery router.
Errors and limits
An update story can be operationally real and still leave the embedded age at 540.
Apply
- EX057 — What integer do you quote? The firmware line fails. Chapter 4 says the age is about eighteen months and that an update was run later. Which integer is in the dictionary, and what version do you print?
Show marking criteria
Rubric: 3 = 540 stays; the threshold stays 180; the eighteen-month phrase stays a gloss; no version, date, or vulnerability identifier is added; the update stays prose;; 2 = 540 stays and no version is invented;; 1 = the story only;; 0 = none.