Declarative and imperative knowledge

There’re two types of knowledge which have clear distinct: declarative and imperative.

Declarative knowledge tells you what but doesn’t tell you how.

For instance, let’s talk about square root.

I can tell that square root of x is that y such that y squared equals x, where y is positive.

It tells you the statement of fact, but it doesn’t help to find a square root of some particularly number.

What is square root of 2?

Here comes an imperative knowledge. It tells how to find the answer.

- let G is a guess what is square root of 2.

- if G*G is close to x, stop, and return G

- else, let’s take a new guess: G ← (G + x/G) / 2

- repeat the step 2

This sequence of steps deduces the answer, it’s an algorithm for computing the square root of x.

Origin is MIT 6.00 course: “Introduction to Computer Science and Programming”, Fall 2008