Computer science (source code)

= Computer science
{wiki}

Computer science studies how information can be represented and transformed by <algorithms>, and what those transformations can achieve. Its central questions connect <mathematics> to practical design: what answer should a procedure produce, why is it correct, and how much work does it require as its <input> grows? <Computability theory> asks which tasks can be solved at all; <computational complexity theory> asks what resources a solution needs.

The beauty is that choosing a representation can change what is feasible. Finding a name among a million entries sounds like a million checks. Store the entries in a <sorted array>, and <binary search> needs at most twenty middle-entry comparisons. The order makes each unsuccessful comparison eliminate a whole region of possibilities. A <data structure> supplies useful organization; an <algorithm> exploits it; <time complexity> explains the resulting savings.

<Algorithm correctness> covers every permitted <input>, including absent names and empty collections. <Time complexity> predicts scaling; <statistical program profiling> investigates a particular implementation.