Semester: winter 2020/21
Lectures: Monday 12:20, online via Teams (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 (

COVID-19 announcements

Due to the COVID-19 situation, the course will be conducted on-line via Teams in the academic year 2020/2021.

The code to access the course in Teams was distributed via the email from the SIS to the subscribed students (as of Oct 1, 2020). In case you have not received it, send an email to Tomáš Bureš


To successfully complete the course, students have submit 8 completed homeworks (out of 10 assigned). The submission of homeworks has to be done via lecture’s Grupik in SIS where the results will be also provided.

Slides and code

Materials for the course can be found at: