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:
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