This document provides an overview of the topics that will be covered in the book. It discusses different programming paradigms that will be examined, including imperative, functional, object-oriented, dataflow, concurrent, declarative, and aggregate languages. For each paradigm, examples of relevant languages are given and the chapters where those languages will be discussed are indicated. The goal is to study principles and innovations across a wide range of modern programming languages. Formal semantic models that provide precise definitions of language meaning will also be presented.