{
  "id": "programming.variables.names-meaningful-to-machine",
  "uri": "https://open-misconceptions.github.io/miscon-data/m/programming.variables.names-meaningful-to-machine",
  "uuid": "b34639bb-e7b4-400a-bd2a-ced15052078b",
  "version": "0.1.1",
  "status": "draft",
  "trust": "low",
  "title": "The computer understands variable names",
  "statement": "The name of a variable tells the computer what it is for, so a variable called total will add things up and one called largest will hold the biggest value.",
  "kind": "misapplied-analogy",
  "domain": "programming.variables",
  "about": [
    {
      "scheme": "Miscon",
      "uri": "https://open-misconceptions.github.io/miscon-data/c/programming.variables.naming"
    }
  ],
  "level_band": [
    "secondary",
    "undergraduate"
  ],
  "locale": "en",
  "evidence_patterns": [
    {
      "item_shape": "predict the value of a descriptively named variable that is never updated",
      "signature": "predicts the value the name suggests rather than the value assigned",
      "example": {
        "item": "largest = 0\nfor n in [4, 9, 2]:\n    pass\nprint(largest)",
        "expected": "0",
        "response": "9"
      }
    }
  ],
  "discriminators": {
    "vs_slip": "The prediction follows the name on every item, and renaming the variable to x changes the learner's answer. A slip does not depend on the name."
  },
  "relations": {
    "conflicts_with": [
      {
        "external": "https://open-misconceptions.github.io/miscon-data/c/programming.variables.naming",
        "label": "Identifiers are labels with no meaning to the machine"
      }
    ],
    "resolved_by": [
      {
        "external": "https://open-misconceptions.github.io/miscon-data/c/programming.variables.naming",
        "label": "Identifiers are labels with no meaning to the machine"
      },
      {
        "external": "https://open-misconceptions.github.io/miscon-data/c/programming.execution.literal-interpretation",
        "label": "The machine does exactly what the code says"
      }
    ],
    "specializes": [
      "programming.execution.computer-infers-intent"
    ]
  },
  "provenance": {
    "sources": [
      {
        "type": "paper",
        "citation": "Pea, R. D. (1986). Language-independent conceptual \"bugs\" in novice programming. Journal of Educational Computing Research, 2(1), 25-36.",
        "doi": "10.2190/689T-1R2A-X4W4-29J2",
        "note": "Egocentrism bug: attributing interpretive intelligence to the machine."
      },
      {
        "type": "book",
        "citation": "Sorva, J. (2012). Visual Program Simulation in Introductory Programming Education (Doctoral dissertation, Aalto University). Appendix A catalogues introductory programming misconceptions from the literature.",
        "url": "https://aaltodoc.aalto.fi/handle/123456789/3534"
      },
      {
        "type": "paper",
        "citation": "Kaczmarczyk, L. C., Petrick, E. R., East, J. P., & Herman, G. L. (2010). Identifying student misconceptions of programming. In Proceedings of the 41st ACM Technical Symposium on Computer Science Education (SIGCSE '10), 107-111.",
        "doi": "10.1145/1734263.1734299"
      }
    ],
    "origin": "llm-drafted",
    "notes": "Drafted from the cited literature for the Open Misconceptions seed pack; statement, examples and discriminators are original text. Awaiting maintainer review."
  },
  "history": {
    "changelog": [
      {
        "version": "0.1.1",
        "date": "2026-09-05",
        "change": "Schema 0.2 migration: about/alignments carry a free-string scheme (corestandards.org URLs relabelled CCSS where present); trust computed from reviews[] (none yet, so low); no change to the statement or evidence."
      }
    ]
  },
  "license": "CC-BY-4.0"
}
