(MVC) A way of partitioning the design of interactive software.
The "model" is the internal workings of the program (the algorithms), the "view" is how the user sees the state of the model and the "controller" is how the user changes the state or provides input.