A computation model is a formal system that defines how computations are done. A programming model is the programming techniques and design principles made possible by the computation model.