Objectives

The student learns to:
- discuss the context and history of language theory and technologies
- identify and analyze the strengths and domains of different programming paradigms and languages, e.g. in the cloud context
- develop basic grammars and language tools with language frameworks
- set up and interface with different language runtime environments
- categorize languages based on their core linguistic features
- analyze advanced topics of object oriented programming (e.g. inheritance, variance, dispatch methods)
- develop using functional programming principles in both purely functional and multi-paradigm languages
- discuss the operating principles of other forms of declarative programming (logic, data flow, reactive, deterministic concurrency)
- identify, locate and obtain information about programming languages and paradigms