I find that almost nothing, especially not math, is taught from "first" "principles". To gain true understanding of a thing, you must do three things:
First, reduce it to a set of definitions and/or instruction steps; a program.
Second, explain what this program relevantly achieves.
Third, elaborate the relevant consequences of all mutations on the set that a person might be tempted to make, and compare those with the consequences of the original. A mutation can consist of edits, deletions, or additions of steps of instructions or definitions.
Teaching to the level of *understanding* through monologue is impossible for three reasons.
Firstly, the language of your program has to match the language that the audience already knows, and they also need to know that the language isn't being used differently.
Secondly, you don't know for sure what types of consequences are relevant, try as you might to construct a divine plan with or without intrinsic values written into it.
Thirdly, you can't tell what mutations other people might be tempted to make to your set of steps; your program. The mutations to consider could be one or more. One mutation might make things worse on its own but make things way better in combination with another mutation.
Through dialogue and debate, the teacher can:
It seems to me that the first two points should be reversed. If you still do not understand "why", and someone is trying to explain "how" - you often get bored.
My related shortform, which isn't appearing anywhere besides my profile apparently (and intercom isn't responding to my message that "I can't publish my shortforms"):