A decidable problem is a decision problem (one that has a yes/no answer) where an algorithm can be written to produce a correct output for all inputs.
If an algorithm can't be written that's always capable of providing a correct yes or no answer, it's an undecidable problem. An undecidable problem might be able to be solved in some cases, but not in all of them.
The classic example of an undecidable problem is the halting problem, created by Alan Turing in 1936. The halting problem asks that if a computer is given a random program, can an algorithm ever be written that will answer the question, will this program ever stop running?, for all programs? By proving that there wasn't, Turing demonstrated that some problems can't be completely solved with an algorithm.
There's a crash course in programming, AP CSP style! In our next guide, we'll be discussing the Internet.
Was this guide helpful?
Join us on Discord
Thousands of students are studying with us for the AP Computer Science Principles exam.