Semester: winter 2021/22
Lectures: Monday, 14:00 - 17:10, S3 (Tomáš Bureš, Václav Pech)
Page in SIS: NPRG014
Grading: Credit

The course shows interesting and advanced concepts of modern programming languages and demonstrates their application together with real practical exercises.

The course will show advanced concepts of OO languages with dynamic typing (demonstrated on Groovy), OO languages with static typing (demonstrated on Scala) and OO languages without classes (demonstrated on IO and briefly on JavaScript/TypeScript to show the implications).

The course is intended for master student programs, already having experience with software development (Java/C++/C#). It is however open to other students with deep interest in programming. The course is taught in English.

The course is organized in an interactive and hands-on manner. To be able to fully participate, please make sure that you have the respective language SDK and optionally an IDE installed on your computer and that you have checked out the GIT repository with the code (

Due to the COVID-19 situation, the course will be conducted in a hybrid way (in-person and also on Teams). You should be automatically assigned to the respective Teams group once you register to the course.


To successfully complete the course, students have submit 8 completed homeworks (out of 10 assigned). The submission of homeworks will be through Teams (as Teams Assignments).

Slides and code

Materials for the course can be found at: