Modelling and Analysis are crucial steps in the development of software systems, and become almost mandatory when the system to be developed features concurrency and distribution. Maude is a meta-programming language to specify and model a wide range of systems, both from the syntactical and from the semantical viewpoint. Maude is based on Rewriting Logic, a logic of concurrent change and action. Hence, Maude represents a suitable tool to express the dynamics of concurrent and distributed systems and to cope with issues related to nondeterminism. Maude is also used to specify both the syntax and the operational semantics of programming languages. This seminar explores the basic features of the Maude language, providing some examples of how it can be used to model and analyse concurrent and distributed systems; (ii) to express the operational semantic of programming languages; (iii) to realise different models of computation.