Glossary

90-9-1 rule
90% of people will watch, 9% will speak up, and 1% will actually do things.
benchmark
A program (or set of programs) used to measure or compare the performance of a piece of software.
benevolent dictator
A person who has final say on all aspects of a project's operation and direction.
uild manage
A program that keeps track of how files depend on one another and runs commands to update any files that are out of date.
casual threat
A low-effort threat from a relatively unskilled attacker.
CC-0
A shorthand for putting something in the public domain, i.e., imposing no restriction of any kind on its use.
CC-BY
The Creative Commons - Attribution License, which allows copying, derived works, and for-profit sale so long as the original source is acknowledged.
CC-BY-NC
The Creative Commons - Attribution - NonCommercial License, which allows everything CC-BY does except commercial use without the license holder's permission.
chief programmer
A person responsible for most of the new code in a project, similar to a chief surgeon in a hospital.
chunking
The act of grouping related concepts together so that they can be stored and processed as a single unit.
ognitive loa
The amount of working memory needed to accomplish a set of simultaneous tasks.
community of practice
A group of people working together on something who assist and mentor each other.
competent practitioner
Someone who can do normal tasks in some domain with normal effort under normal circumstances.
concept map
A box-and-connector diagram of the major elements in someone's mental model of something.
continuous integration
A system that merges and tests changes automatically as soon as they become available, typically in a temporary copy of the project.
Creative Commons
A non-profit organization that helps overcome barriers to sharing knowledge, principally by publishing and defending a widely-used set of licenses.
decorator
A function that takes some other function as input and replaces it with a modified version.
esign by contrac
A style of designing software in which functions specify the pre-conditions that must be true in order for them to run and the post-conditions they guarantee will be true when they return.
esign patter
A recurring pattern in software design that is specific enough to be worth naming, but not so specific that a single best implementation can be provided by a library.
DevOps
A set of software development, deployment, and management practices intended to shorten the development cycle and make it more reliable.
Digital Object Identifier (DOI)
A multi-part string that uniquely identifies a published document.
ynamic loadin
To import a module into memory while a program is already running. Most interpreted languages use dynamic loading, and provide tools so that programs can find and load modules dynamically to configure themselves.
entity-relationship diagram
A diagram showing the tables in a database, the fields in each, and the relationships between those tables' keys.
expert
Someone who can diagnose and handle unusual situations, knows when the usual rules do not apply, and tends to recognize solutions rather than reasoning to them.
expert blind spot
The inability of experts to empathize with novices who are encountering concepts or practices for the first time because they have forgotten what it's like to not know something.
FAIR Principles
Guidelines for making data findable, accessible interoperable, and reusable.
false beginner
Someone who doesn't yet know much about this domain in specific, but who can transfer a lot of understanding from another domain.
ixtur
The thing on which a test is run, such as the parameters to the function being tested or the file being processed.
lowchar
A block-and-arrow diagram showing the orders in which statements in a function can execute.
GNU Public License (GPL)
An open software license that requires people to share the source code of changes or extensions they make.
hero project
A project in which one person or a small number of people are responsible for almost all interactions.
Hippocratic License
A software license that allows people to use and share software so long as they do not violate human rights.
information hiding
Keeping the implementation details of a class or module internal to that class or module, which allows those details to be changed without affecting other classes or modules.
insider threat
A threat in which the attacker already has access to privileged information or critical systems because of their job or other role.
intimate threat
A threat in which the attacker has access to privileged information or critical systems because of their personal relationship with the target.
JavaScript Object Notation (JSON)
A way to represent data by combining basic values like numbers and character strings in lists and dictionaries. The acronym stands for "JavaScript Object Notation"; unlike better-defined standards like XML, it is unencumbered by a syntax for comments or ways to define a schema.
lazy evaluation
Delaying a computation until the value is actually needed.
legacy code
Software that is either no longer supported or very difficult to support because of the accumulation of features and changes.
egitimate peripheral participatio
Doing small tasks that a community of practice regards as valuable in order to gradually become a member of that community.
logging
Recording information about the execution of a program in a structured way for later analysis.
long-term memory
The part of memory that stores information for long periods of time. Long-term memory is large, but slow, and cannot be accessed directly.
oose couplin
Components in a software system are said to be loosely coupled if they are relatively independent of one another, i.e., if any one of them can be changed or replaced without others having to be altered as well.
arkdow
A markup language with a simple syntax intended as an alternative to HTML.
Martha's Rules
A simple set of rules for making decisions in small groups.
mental model
A simplified representation of the key elements and relationships of some problem domain that is good enough to support problem solving.
meritocracy
A system in which advancement is theoretically based on individual ability. In practice, they reward those who are well-connected enough to know what the unwritten rules are and/or affluent enough to have free time.
MIT License
An open software license that requires people to acknowledge the source of the software, but does not require derived work to be open.
novice
Someone who has not yet built a usable mental model of a domain and therefore struggles with even basic tasks.
Open Researcher and Contributor ID (ORCID)
An alphanumeric code that uniquely identifies someone publishing research results.
passphrase
A password made up of several words. Passphrases are usually more secure than human-generated passwords.
password manager
A program that manages passwords used by multiple sites or applications.
paywall
A feature that prevents people from accessing content unless they have paid to do so. Many researchers use Sci-Hub to circumvent paywalls.
persona
A brief description of an fictional persona that captures key features of something's intended audience.
phishing
An attack in which someone pretends to represent a legitimate organization, e.g., by sending an email that appears to come from an actual bank or university.
pipe
To use the output of one computation as the input for the next, or the connection between the two computations responsible for the data transfer. Pipes were popularized by the Unix shell, and are now used in many different programming languages and systems.
ost-conditio
Something that is guaranteed to be true after a function runs successfully. Post-conditions are often expressed as assertions that are guaranteed to be be true of a function's results.
power mapping
The process of figuring out who actually has the power to change something.
pre-conditio
Something that must be true before a function runs in order for it to work correctly. Pre-conditions are often expressed as as assertions that must be true of a function's inputs in order for it to run successfully.
Principle of Least Privilege
Restricting access rights for people and programs to the absolute minimum required to perform a task.
product manager
The person responsible for defining what features a product should have.
profiler
A tool that builds a performance profile showing how much time is spent on each line (or in each function) of a program.
project manager
The person responsible for ensuring that a project moves forward.
refactoring
Reorganizing software without changing its behavior.
reproducible example (reprex)
A small, self-contained example of a problem.
Robert's Rules
A set of rules for managing large meetings and organizations.
security fatigue
A reluctance to deal effectively with security threats caused by long periods of heightened vigilance.
security theater
Doing things that give the impression they are making a system more secure but which don't actually have any impact.
seed
A value used to (re-)start a pseudorandom number generator (PRNG). A PRNG will generate exactly the same sequence of values when given the seed again.
emantic versionin
A standard for identifying software releases. In the version identifier major.minor.patch, major changes when a new version of software is incompatible with old versions, minor changes when new features are added to an existing version, and patch changes when small bugs are fixed.
sense vote
A preliminary vote used to determine whether further discussion is needed in a meeting.
short-term memory
The part of memory that briefly stores small amounts of information that can be directly accessed by consciousness.
situational awareness
Understanding and paying attention to what's happening in one's immediate environment.
static site generator (SSG)
A program that compiles source files to create HTML pages for a website rather than generating HTML on the fly.
test-driven development (TDD)
A programming practice in which tests are written before a new feature is added or a bug is fixed in order to clarify the goal.
two-factor authentication
A means of proving identity (e.g., to log into a computer) using something the person has and something they know.
Unified Modeling Language (UML)
A set of graphical notations for modeling object-oriented systems.
nit tes
A test that exercises one function or feature of a piece of software and produces pass, fail, or error.
YAML
Short for "YAML Ain't Markup Language", a way to represent nested data using indentation rather than the parentheses and commas of JSON. YAML is often used in configuration files and to define parameters for various flavors of Markdown documents.