The world of software development is rapidly changing. The focus is shifting from code to models. The advantage of using models over code is the development of software artefacts at a higher level of abstraction. Given these models code can be generated and properties can be checked, e.g. with respect performance or behaviour. The development of languages for these models is not trivial. It not only involves defining syntax and semantics, but also the methodology of identifying language concepts. This course covers the definition of syntax and semantics of domain specific languages and the methodology of language concepts of the application domain.