Seminar: History of Programming Languages and Paradigms

Administrative information

Seminar course for Bachelor students (IN0014) and Master students (IN2107).

  • Organizers: David Frank, Tobias Lasser
  • Sessions: 8 sessions during the lecture period from Oct. 21, 2022 to Dec. 16, 2022
    • Fridays, 10:15 - 11:45, in MIBE 1.211 (Boltzmannstr. 11)
  • Course language: English

Registration

The seminar is open to all students of Informatics and related fields.
The number of participants is limited to 14.

Registration is now closed.

Course overview

Today's programming languages are a mix of ideas developed over the course of many years. In this course, we will study several historically influential and interesting programming languages and their paradigms.

Programming languages like Fortran, Algol, ML, Smalltalk, LISP, Erlang, APL, Prolog, or Ada pushed boundaries, influence today's languages and have other interesting properties and stories worth studying. Many of the mentioned programming languages have introduced new paradigms, which enabled programming techniques that were not possible before. Some paradigms are in contrast to each other, while others are orthogonal. Today, however, most new programming languages are "just" a new mix of paradigms invented in the 1950s to 1970s. Hence, in this seminar course we will take a closer look at their origins.

Course modalities

The seminar course will take place in 8 sessions during the lecture period. The sessions will start with the beginning of the lecture period and will be finished before the end of the year.

Students will work in pairs. Each pair of students will focus on one historically relevant programming language, and prepare a 60 minute interactive lesson for their fellow students. The lesson should be a practical introduction into the programming language, its important paradigms and emphasize its strengths and weaknesses. The focus of a lesson is the historical context, the limitations of a programming language, the novelty of the paradigms, and a practical understanding for which kind of problems the language is well suited for.

Aims of the course

First, the language should be introduced such that simple and suitable coding interview style questions can be implemented in an idiomatic fashion. The participants should understand suitable areas of applications and the historic context of the language and its paradigms.

Second, the students should learn to prepare an engaging, interactive and practical lesson. This implies the inclusion of the participants through different means, such as questions, supplementary material and hands-on exercises. Furthermore, students should practice creating a learning environment in which active engagement is encouraged.

Prerequisites

Programming experience in any language is required, as well as motivation for teaching and an interest in the topic of the course.