The written assignment for APL involves choosing a programming-language topic from a short list, researching the feature or language described, trying it out yourself, and then writing a short report about this. In Thursday’s lecture I gave a short description for each of the topics on the list and outlined the process for completing the assignment.

Monday’s lecture gave examples of parameterized types in different programming languages: families of data types with a common structure, built by applying type constructors to one or more type parameters. Examples include in Java or C# generics as well as the algebraic datatypes of Haskell and OCaml. To work with parameterized types we use polymorphic functions — code that can work with more than one type, either in a uniform way (parametric polymorphism) or with type-specific variations (ad-hoc polymorphism).

Today’s lecture introduced the first topic for the course, on types in programming languages: some of the ways they are used, and their relation to the mathematical models of lambda-calculus and type theory.

This opening lecture covered some background context for the course, with ideas about what makes existing programming languages distinctive and what inspires new ones. You can read some of this in the slides for the lecture or listen to the recording on Media Hopper Create.

This is the course website for Advances in Programming Languages (APL). Thanks for visiting.

If you are interested in joining the course then please come along to the first lecture, at 1610 on Monday 17 September in Lecture Theatre LG.11 of the David Hume Tower. There’s no need to enrol beforehand, just turn up on the day.