Programming Languages: History, Concepts & Design
Unit 3
Welcome to Week 3 where we will spend some time investigating
programming languages – looking at the
history,
concepts and
design that led to the languages we have today.
Programming languages are a fundamental concept in computer science – they are the
primary tool used by computer scientists and developers to
design,
define,
create and
implement the tools we use today.
This session will describe in some detail the history and concepts of programming languages.
We will start by looking a basic definition and discussing where programming languages came from,
the impact of the work of Alan Turing and Alonzo Church and reviewing the basic paradigms that define the different types of programming languages available today.
We will also review the development of programming languages, from the early machine code language of the Small Scale Experimental Machine (SSEM),
through the first assembly language code of the Cambridge EDSAC (which in turn led to the first business machine – the Lyons Electronic Office (LEO)),
to the giddy days of the nineteen fifties and the birth of languages such as Cobol, Fortran and Lisp, ultimately leading to the design of ALGOL.
This section will help students understand the origins of programming languages and how those roots have influenced language design today.
We will spend some time looking at key language concepts such as inheritance, polymorphism and abstraction, why we need and use these techniques and how they are implemented,
using Python as an example. We will also review some common security challenges and look at best practice recommendations to mitigate them.
Finally, we will look at design patterns and how they can help developers design and build better and more secure software applications