We
figure out most algorithms on our own, abstracting from specific cases
Also
we abstract parts of an algorithm or program to understand them
*Thinking of how the program works and reasoning about properties that it has allows us to know why it works … and then we can let
the computer do it