Programming Paradigms and Languages
"A programming language is like a natural, human language in that it favors certain metaphors, images, and ways of thinking."
- Mindstorms: Children, Computers, and Powerful Ideas, Seymour Papert (1980)
- In this course, we will closely follow the book "Concepts, Techniques, and Models of Computer Programming (2004)" (links below in Literature).
- Goal of the book: to teach programming as a unified discipline with a scientific foundation that is useful to programmers in practice.
- Instead of treating each paradigm as separate, and focusing on specific languages, we will learn the underlying programming concepts. Those concepts are then used to define all the existing paradigms as genes define each animal species.
- Each programming paradigm ("computation model" in the book) is based on a core language ("kernel language").
- Those core languages will be introduced by adding concepts one by one.
- To focus on the mechanisms that make every language, and not the syntax of multiple languages, we will use the programming language Oz (used in the book) to explore programming concepts and paradigms.
- Oz will be used to show general programming concepts (acquire intuition for programming concepts/techniques/paradigms), but other (more popular) languages will be used for student projects, etc.
- Oz is a multiparadigm programming language (supports many different paradigms).
Overview of the course: Contents.
Start with the instructions for Oz installation: Software.
After the software setup, continue with 1. Introduction to Programming Concepts.