Software Design in Python Glossary
Your lesson plan will give me a vague idea of what you’re planning to teach; your glossary will tell me more. In that spirit, here’s the glossary for the upcoming Python version of Software Design by Example. (The glossary for the JavaScript version is also online.)
absolute error | abstract class | abstract method |
abstract syntax tree (AST) | accidental complexity | actual result (of test) |
affordance | alias | ANSI character encoding |
Application Binary Interface (ABI) | Application Programming Interface (API) | argument |
ASCII character encoding | assembler | assembly code |
assertion | associative array | atomic operation |
atomic value | attribute | automatic variable |
backward-compatible | base class | batch processing |
benchmark | big endian | binary mode |
bit mask | bit shifting | bitwise operation |
body (of HTTP request or response) | Boolean | boxed value |
breakpoint | build manager | build recipe |
build rule | bytecode | cache |
call stack | catch (an exception) | Chain of Responsibility pattern |
child (in a tree) | child class | class |
class method | clear a breakpoint | client |
code point | cognitive load | collision (in hashing) |
column-wise storage | comma-separated values (CSV) | compile |
compiled language | compiler | concrete class |
conditional breakpoint | conditional jump | confirmation bias |
constructor | context manager | control code |
control flow | Coordinated Universal Time (UTC) | cryptographic hash function |
data engineer | data migration | dataframe |
decorator | defensive programming | dependency (in build) |
derived class | design by contract | design pattern |
dictionary | dictionary comprehension | directed acyclic graph (DAG) |
directed graph | disassemble | disassembler |
dispatch | docstring | Document Object Model (DOM) |
Domain Name System (DNS) | dry run | duck typing |
dynamic dispatch | dynamic scoping | eager evaluation |
eager matching | easy mode | edge |
element | enumeration | environment |
error (result of test) | error handling | escape sequence |
exception | exception handler | exclusive or |
expected result (of test) | exponent | extensibility |
failure (result of test) | false negative | false positive |
falsy | field | finite state machine (FSM) |
fixture | garbage collection | generator function |
generic function | graph (data structure) | greedy algorithm |
hash code | hash function | hash table |
header (of HTTP request or response) | helper class | heterogeneous |
hexadecimal | homogeneous | hostname |
HTTP method | HTTP protocol version | HTTP request |
HTTP response | HTTP status code | HyperText Markup Language (HTML) |
HypterText Transfer Protocol (HTTP) | immutable | index (a database) |
instance | instruction pointer | instruction set |
Internet Protocol (IP) | interpreted language | interpreter |
intrinsic complexity | introspection | IP address (IP) |
ISO date format | Iterator pattern | JavaScript Object Notation (JSON) |
join (tables) | key | label (address in memory) |
layout engine | lazy evaluation | lazy matching |
lexical scoping | library | link (a program) |
linter | Liskov Substitution Principle | list |
list comprehension | literal | little endian |
manifest | mantissa | Markdown |
markup language | metadata | method |
method injection | minimum testable class | mixin |
mock object | module | multiple inheritance |
named tuple | node | object |
object-oriented programming (OOP) | off-by-one error | online analytical processing (OLAP) |
online transaction processing (OLTP) | op code | Open-Closed Principle |
overlay configuration | package | parameter |
parameter sweeping | parent (in a tree) | parent class |
parser | pass (result of test) | path resolution |
pattern rule (in build) | persistence | phony target |
pipe (in the Unix shell) | placeholder file | polymorphism |
port | post-condition | pre-condition |
precedence | prerequisite | protocol |
provenance | Pythonic | query parameter |
race condition | raise (an exception) | record |
recursion | refactor | reflection |
register | regression | regular expression |
relational database | relative error | reverse lookup |
root (in a tree) | row-wise storage | runtime |
schema | scope | server |
SHA-256 hash code | sign and magnitude | signature |
singleton | Singleton pattern | socket |
spread | SQL | stack frame |
stale (in build) | standard error | standard input |
standard output | static method | static site generator |
streaming API | string | table |
target (in build) | Template Method pattern | test fidelity |
text mode | throw exception | time of check - time of use |
timestamp | token | topological order |
Transmission Control Protocol (TCP/IP) | tree | truthy |
tuple | Turing Machine | two hard problems in computer science |
two's complement | Unicode | unit test |
Universal Resource Locator (URL) | unparsing | upcall |
UTF-32 | UTF-8 | variable-length encoding |
vector | version control system | virtual machine |
Visitor pattern | watchpoint | well-formed |
word (of memory) | XML | Yet Another Markup Language (YAML) |
z-buffering |