Taster MSc Course on Domain Specific Languages

A Special Course on Domain-Specific Programming Languages (at UTU, 5 ECTS)

Note: this offering is a one-time-only opportunity, not part of any regular course schedule.  The course is a good fit for a student interested in cutting-edge software development technologies. Taught in Turku, Finland, this is also available through a live link and local assistance at our Windhoek campus in Namibia.

A Domain-Specific Language (DSL) is a programming language specifically designed for a particular (narrow) domain. DSLs can increase the productivity of programming in many ways: by offering concise programming notations, reducing the number of defects, improving communication between developers and business experts, and so on.

DSLs as part of software development pipelines are slowly becoming more and more popular.  One reason for the increased popularity is tooling: modern language workbenches make developing new languages cost-effective (and fun).

During this course, the student is familiarised with the latest topics on domain-specific languages and state-of-the-art techniques and approaches on how to implement DSLs in practice. A major part of the course (9 lectures out of 14) is hands-on tutorials on language workbenches (Eclipse Xtext and JetBrains MPS).

After completing the course, the student will be able to design and implement custom domain-specific languages and industry-level IDEs for them.

The course is given by Mikhail Barash, a leading expert in language workbench technologies. Materials of the course are available at [ http://dsl-course.org ] and used in both academia and industry.


List of topics covered in the course:

  • overview of domain-specific languages (DSL), both text-based and graphical
  • fluent APIs (method chaining, etc.)
  • overview of language-oriented programming and language workbenches
  • hands-on tutorial on Xtext, a tool that facilitates creating a fully functional Eclipse-based IDE for a language https://www.eclipse.org/Xtext/ ] 
  • overview of Spoofax, Eclipse Modelling Framework, Language Server Protocol, cloud IDEs
  • overview of code generation and program transformation techniques
  • hands-on tutorial on Meta Programming System MPS, a tool developed by JetBrains to implement projectional languages [ https://www.jetbrains.com/mps/ ]
  • design guidelines and design patterns for DSLs


Level: Advanced level, 5 ECTS

Language of instruction: English

Study methods: lectures, hands-on tutorials, project / exam

Registration is done via:


Moodle page of the course:



The course is intended for a wide audience, but requires basic programming skills in Java or another object-oriented programming language. Students are expected to bring laptops to follow the tutorials.

Dates and times:

   Mon 2.3 @10:15 - 12:00 @Agora, 110C

   Wed 4.3 @10:15 - 12:00 @Agora, 110C

   Mon 9.3 @10:15 - 12:00 @Agora, 110C

   Wed 11.3 @10:15 - 12:00 @Agora, 110C

   Mon 16.3 @10:15 - 12:00 @Agora, 110A

   Wed 18.3 @10:15 - 12:00 @Agora, 110A

   Mon 23.3 @10:15 - 12:00 @Agora, 110A

   Wed 25.3 @10:15 - 12:00 @Agora, 110A

   Mon 30.3 @10:15 - 12:00 @Agora, 110A

   Wed 1.4 @10:15 - 12:00 @Agora, 110A

   Mon 6.4 @10:15 - 12:00 @Agora, 110A

   Wed 8.4 @10:15 - 12:00 @Agora, 110A

   Wed 15.4 @10:15 - 12:00 @Agora, 110A

   Mon 20.4 @10:15 - 12:00 @Agora, 110A


Head of Windhoek Campus