Declarative is when code describes what it does and the outcome but doesn't care about control flow.
Used frequently with functional programming
Declarative code also describes that a UI is a changed based on it's input data.
Data binding is a common strategy for declarative programming.
Inside out.
Imperative is when code describes how it produces the outcome.
Generally associated with procedural languages
Imperative code also describes that a UI is being mutated directly from code.
Outside In.