Computer Science › Foundations of Computer Science
Noticing something puzzling is not the same as having a question you can actually investigate — the first, often-skipped step of turning a vague "huh, that's odd" into something precise enough to act on.
A question is well-formed when it names what would count as an answer — the difference between "why is this slow?" and "which of these three operations dominates the running time?"
Hamming's famous challenge — if the answer to your question wouldn't matter to anyone, why work on it? — and how to weigh a question's importance against how tractable it actually is right now.
Almost no worthwhile question is being asked for the first time — knowing what's already been tried, and why it did or didn't work, is what separates a fresh angle from wasted repetition.
Computational thinking (already covered) is about solving a problem once it's posed — this is about posing one in the first place, specifically the kind a program, an experiment, or a measurement can answer.
A question ("why is this slow?") isn't yet something you can test — a hypothesis ("the slowdown is caused by repeated re-allocation") is a specific, checkable guess at an answer.
Popper's criterion: a claim counts as scientific only if some conceivable observation could prove it wrong — a hypothesis that can't fail any possible test isn't explaining anything.
The smallest test that could actually distinguish your hypothesis from its alternative — cutting every measurement that wouldn't change your conclusion either way.
Not all evidence counts equally — how much a single result should shift your confidence in a hypothesis depends on how surprising that result would be if the hypothesis were false.
A falsified hypothesis is a real result, not a failure — the honest, and genuinely harder, move is changing the hypothesis instead of quietly explaining away the evidence that broke it.
Every real result — confirming or falsifying — sharpens or redirects the next question, which is why scientific inquiry is a cycle, never a single pass from question to final answer.
A result nobody can understand or verify might as well not exist — stating the question, why it matters, and what was actually found, clearly enough for someone else to check it.
Tying every piece of this discipline into one loop — question, hypothesis, experiment, evidence, iteration, communication — the same cycle this curriculum's own Research module will ask you to run for real, at length, later on.
Kuhn's picture of how scientific understanding actually changes — long stretches of refining an accepted framework, punctuated by rare shifts when that framework itself is replaced.
Holding everything constant except the one thing you're actually testing — without a control, a measured difference could be caused by the thing you changed, or by something else entirely.
Two things moving together doesn't mean one causes the other — Judea Pearl's "ladder of causation" separates merely seeing a pattern from actively intervening on it, the real test of a causal claim.
A hidden third factor that influences both things you're comparing, creating a correlation neither one actually causes — the single most common way a causal claim goes wrong.
An assumption is something taken for granted to make a hypothesis testable at all — confusing the two means "testing" a hypothesis while quietly never questioning the assumption doing the real work.
Part of the Computer Science curriculum.
Noticing something puzzling is not the same as having a question you can actually investigate — the first, often-skipped step of turning a vague "huh, that's odd" into something precise enough to act on.
A question is well-formed when it names what would count as an answer — the difference between "why is this slow?" and "which of these three operations dominates the running time?"
Hamming's famous challenge — if the answer to your question wouldn't matter to anyone, why work on it? — and how to weigh a question's importance against how tractable it actually is right now.
Almost no worthwhile question is being asked for the first time — knowing what's already been tried, and why it did or didn't work, is what separates a fresh angle from wasted repetition.
Computational thinking (already covered) is about solving a problem once it's posed — this is about posing one in the first place, specifically the kind a program, an experiment, or a measurement can answer.
A question ("why is this slow?") isn't yet something you can test — a hypothesis ("the slowdown is caused by repeated re-allocation") is a specific, checkable guess at an answer.
Popper's criterion: a claim counts as scientific only if some conceivable observation could prove it wrong — a hypothesis that can't fail any possible test isn't explaining anything.
The smallest test that could actually distinguish your hypothesis from its alternative — cutting every measurement that wouldn't change your conclusion either way.
Not all evidence counts equally — how much a single result should shift your confidence in a hypothesis depends on how surprising that result would be if the hypothesis were false.
A falsified hypothesis is a real result, not a failure — the honest, and genuinely harder, move is changing the hypothesis instead of quietly explaining away the evidence that broke it.
Every real result — confirming or falsifying — sharpens or redirects the next question, which is why scientific inquiry is a cycle, never a single pass from question to final answer.
A result nobody can understand or verify might as well not exist — stating the question, why it matters, and what was actually found, clearly enough for someone else to check it.
Tying every piece of this discipline into one loop — question, hypothesis, experiment, evidence, iteration, communication — the same cycle this curriculum's own Research module will ask you to run for real, at length, later on.
Kuhn's picture of how scientific understanding actually changes — long stretches of refining an accepted framework, punctuated by rare shifts when that framework itself is replaced.
Holding everything constant except the one thing you're actually testing — without a control, a measured difference could be caused by the thing you changed, or by something else entirely.
Two things moving together doesn't mean one causes the other — Judea Pearl's "ladder of causation" separates merely seeing a pattern from actively intervening on it, the real test of a causal claim.
A hidden third factor that influences both things you're comparing, creating a correlation neither one actually causes — the single most common way a causal claim goes wrong.
An assumption is something taken for granted to make a hypothesis testable at all — confusing the two means "testing" a hypothesis while quietly never questioning the assumption doing the real work.