Covered topics include but are not limited to:
Basic terminology, the tree of paradigms, and the three tribes of programmers
Procedural programming
Object-oriented programming
Functional programming
Logical programming
Symbolic/mathematical programming
Weird programming languages (a bonus topic about truly bizarre languages)
Introductory courses for programming, also the one at our department, covers Python and thus procedural and possibly object-oriented programming. However, there are many other programming paradigms, i.e. approaches to writing a program, and a plethora of languages that are more or less suited for these paradigms.
The class discusses these paradigms and presents a bare minimum for these languages in order to familiarize the students with the many ways of programming. It covers at least the following approaches: object-oriented programming, logical programming and functional programming.