OpenCyber Academy
Rapid course · Lesson 7 · English
Course code: OCA-018Lesson 07: OCA-018-A007

Sam is a substring, not a directory

Open, free learning for anyone who wants to protect people and technology. No account is required to read this text or its worked answers.

Lesson map

Lesson 07. Map, example, EX053.

flowchart TD
  K["Key text form owner Sam"] --> T{"Is the character sequence Sam inside it?"}
  T -->|Yes| F["Failure label"]
  T --> Q{"Did the script open a staff list?"}
  Q -->|No| R["The test is text only"]

The letters decide. A person record is not consulted.

Logical drawing

tested string
  form owner Sam
sought sequence
  Sam
case
  capital S
not consulted
  a staff list
  a deputy named later

Learning outcomes

After this chapter, you should be able to:

  1. Point at the characters the test searches.
  2. Separate that search from a staff lookup.
  3. Refuse a deputy's name that the script never stored.

7.1 The operator looks for characters. It does not know who Sam is.

"Sam" in d is true when the key contains the capital letters S, a, m in that order. The key form owner Sam contains them, so the test is true. The same test on coordinator inbox is false, which is why that line depends on the length test instead. The comparison is case-sensitive. A key written form owner sam would not satisfy this particular search. This file does not contain that lowercase key.

The script has no list of staff, no holiday calendar, and no field for a deputy. Sam Okafor is the volunteer in the case notes. The letters in the key happen to spell his given name. That coincidence is not a query. When the notes later say a second person should own the form, those notes do not edit d, and they do not remove the failure label from the embedded print. The lab still shows the single owner it was given.

A key such as a word that merely contained those three letters would also trip the test. This run has no such extra key, and this chapter does not add one. The limit stands: the flag is a text test, not an identity check.

Lesson table; scroll horizontally to read all columns →

Object Role
form owner Sam The key that contains the sequence
"Sam" in d A case-sensitive character test
A deputy Prose, not a variable
A staff directory Absent from the file

7.2 Worked example

Lesson table; scroll horizontally to read all columns →

Offered sentence What the file supports Decision
"The form line trips because the key contains Sam." The substring test Keep
"The inbox key does not contain that sequence." Length is its reason Keep
"The script looked Sam up and found he is on holiday." No directory and no date Refuse
"Naming a deputy clears the printed flag." The print is unchanged Refuse

Synthetic case. The key is a string in a classroom list.

Errors and limits

Do not promote a character test into a personnel decision.

Apply

  • EX053 — Substring. What makes form owner Sam a failure when it has only one source, and does the script store a deputy?
    Show marking criteria
    Rubric: 3 = the key contains the capital sequence Sam; the length test is false for that one name; no staff list and no deputy are stored;; 2 = the flag is a character test and the deputy is absent;; 1 = the name only;; 0 = none.
Worked answers

EX053. The key contains the capital sequence Sam, and the length test is false for that single name. The script stores no staff list and no deputy.