This presentation talks about model view controller, model view presenter and model view viewmodel patterns. These are architectural design patterns for implementing user interfaces. They divide a given software application into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user. Also, they promote separation of concerns. As examples, some frameworks are reported, such as: - Spring MVC - BackboneJS - AngularJS The presentation is took from the Software Engineering course I run in the bachelor-level informatics curriculum at the University of Padova.