Student Glossary: CS9 – Programming by Design
This glossary defines key terms from across the course. These are words we use with precision and purpose. You don’t have to memorize them—you have to understand them.
🔧 Programming + Logic
Function – A named rule that takes input and produces output.
Contract – A line that tells us the input type and output type of a function.
Example – A test case: shows what the function should do with specific inputs.
Definition – The body of the function: how it actually works.
Condition – A question or check in code that evaluates to true or false.
Boolean – A value that’s either true or false. Nothing in between.
Loop – A structure that repeats a block of code until a condition is met.
State – Information the program remembers and updates over time.
Accumulator – A variable that builds or changes across a loop.
Recursion – When a function calls itself to solve a smaller version of a problem.
📊 Data + Representation
Data – Structured information a program can read, analyze, or display.
Record – A row of data (e.g., one museum object, one person, one event).
Field – A column of data (e.g., artist name, date, location).
Filter – A rule that selects rows based on a condition.
Map – A rule that transforms each row or value in a consistent way.
Visualization – A graph, chart, or image that makes data visible.
Category – A label or group used to sort or compare data.
Metadata – Data about data (e.g., when it was collected, who tagged it).
🌐 Systems + Communication
Protocol – An agreed set of rules for communication between machines.
Request – A message sent by a browser to a server asking for information.
Response – The message sent back by the server (e.g., webpage, data).
API – A system that lets programs talk to each other to share data.
Interface – The part of a system a user sees and interacts with.
HTML – A language for structuring content on the web.
CSS – A language for styling that content (fonts, layout, colors).
🧠 Thinking + Reflection
Decomposition – Breaking a big problem into smaller, manageable parts.
Abstraction – Hiding unnecessary detail to focus on what matters.
Debugging – Finding and fixing mistakes in your code.
Testing – Checking that your code works the way it’s supposed to.
Documentation – Explaining what your code does and why it works.
Iteration – Trying, testing, revising. Building something better each time.
Communication – Making your thinking clear to others, not just machines.