Timeless computer science literature classic SICP is full of wonderful knowledge gems, one of which uncovered very early into the lecture during the discussion on the Newtown's square root approximation methods right in the first chapter. A wonderfully clear and concise explanation of the general differences between the concepts of declarative and imperative knowledge emerges so naturally it feels almost unintentional.

The square root definition serves as a perfect declarative knowledge example;

√x = the y such that y ≥ 0 and y^2 = x

Notice how it does not give away any clues on the possible methods of establishing the square root values? It's sole purpose is a (declarative) description of the square roots properties. On it's own it lacks certain real-world usefulness - when it comes to the square root calculation it leaves us rather empty handed. Newtown's trial-and-error guess-and-improve square root approximation method supplements the 'bare' definition with an imperative square root calculation procedure.

Apparently the computer science is mainly concerned with the imperative 'how-to' procedures while the declarative 'what-is' descriptions are common in the domain of mathematics.

On a final note, consider the following two statements:

The required level of theoretical understanding is relative to practical implementation.

The key to understanding complex systems is knowing where *not* to look.

.. and the exsistence of an imperative capitalist plot against the declarative faction is apparent.

P.S. Forming thoughts into clear and concise sentences is no easy feat, please excuse the inconvenience.