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:
https://link.webropolsurveys.com/S/E0F4715281A3DE69
Moodle page of the course: https://moodle.utu.fi/course/view.php?id=18254
Study Period: Mon, 03/02/2020 – 10:15 – Mon, 04/20/2020 – 12:00
Qualification: Master of Science (Technology)
Cost: No cost
Topics: Domain Specific Languages
Requirements
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