Charles Explorer logo
🇬🇧

Concepts of Modern Programming Languages

Class at Faculty of Mathematics and Physics |
NPRG014

Syllabus

The course covers the following concepts:

- class-based languages (statically typed and dynamically typed)

- typing, covariance, contravariance

- functional programming within an object-oriented procedural language

- meta-programming in dynamic languages

- domain specific languages

- compile-time code transformations, static meta-programming

- concurrent programming

- object-oriented languages without classes (i.e. prototype-based languages)

The concepts will be demonstated using the following languages:

- Groovy

- Scala

- TypeScript/JavaScript, Io

Annotation

The goal of the course is to show interesting and advanced concepts of modern object-oriented programming languages and demonstrate their application together with practical exercises. The course is intended for students that already have experience with software development in Java/C++/C#. The concepts will be illustrated in

Scala, Groovy, IO, JavaScript and TypeScript programming languages. Prior knowledge of these languages is not necessary. The course will provide adequate introduction to each of them.