EUC 2014 – Laura M. Castro – Erlang as Supporting Technology for teaching Software Architecture

By Erlang Central | Published: August 25, 2014

At university, it is usually the case that students are introduced to programming languages to the extent in which they serve a teaching purpose usually related to acquiring some paradigm-bounded programming skills. Thus, they (we) learn to code our first source lines using PASCAL, are introduced to C programming to handle memory and threads, enter the Java world hand-in-hand with UML and object-orientation. However, Erlang is seldom the choice for learning about the declarative paradigm, for which ML or Haskell are often preferred candidates.

Two years ago, the University of A Coruña (UDC) stepped out of this box and decided to use Erlang as supporting technology for teaching Software Architecture. In this subject, we go beyond programming and, in helping students build up a more abstract, system-wide design competence, we make them face the strengths and weaknesses of different architectures (client-server, multi-layered, repository, pipe & filter, master-slave, peer-to-peer) in terms of non-functional requirements (availability, flexibility, performance, security). In this setting, Erlang has worked as an excellent tool in order to quickly prototype and compare systems of different architectural nature, as we will illustrate in more detail during this talk.

Talk objectives: This talk is an experience-based argument in favour of using Erlang as a vehicle for higher-level learning processes. Avoid the ‘learning yet another language’ feeling by focusing on software architecture and design rather than in system implementation, but take the most out of Erlang’s features to translate theory into practice.

Target audience: Erlangers interested in an Erlang-based teaching experience beyond programming.