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.
Erlang as a supporting technology for teaching Software Architecture
1. Erlang
as supporting technology for teaching
Software Architecture
Laura M. Castro
Department of Computer Science
Universidade da Coruña (Spain)
Stockholm, June 9-10th, 2014
Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 1 / 43
33. Individual work + Team work
Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 30 / 43
34. “We dared to do things far more complex that
we usually do”
Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 31 / 43
35. “I was a bit lost at the beginning, the
exercises were easy but being unfamiliar with
FP made me progress very slowly. But then,
during the team project, we found ourselves
building things very quickly.”
Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 32 / 43
36. “I thought working with so many processes
was going to be a nightmare”
Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 33 / 43
37. “I wish we had a few more weeks, we all could
have made our projects even more awesome”
Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 34 / 43
38. Student’s projects
Games (poker, trivia,. . . )
IM systems
Web crawlers
Text analyzers
Ship-to-shore crane control
Smart-city sensor information
Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 35 / 43
39. Student’s evaluation
Almost 0 drop-outs
All students passed
Most students got B scores
Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 36 / 43
40. “Loved the iterations, you know exactly what
you have to do”
“It forces you not to give up on the course”
Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 37 / 43
45. Thanks for your attention
I hope this has been interesting!
time_for(Questions) ->
[ speaker ! Q || Q <- Questions ].
@lauramcastro
lcastro@udc.es
Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 42 / 43
46. Credits
Image authoring attribution (in order of appearance)
Rusty tools, Wikimedia Commons.
Octopus shell, Wikipedia.
Claw hammer, Wikipedia.
Nail art, SAYANEcw on Deviant Art.
Ericsson DBH 1001 1939, Wikipedia.
James Webb space telescope, Wikipedia.
Rappelling success, Laity Lodge Family Camp on Flickr.
Map of users, Erlang Central.
Cidade da Coruña nun mar de brétema, Wikimedia Commons.
View of A Coruña from lighthouse, Wikimedia Commons.
Facultad de Informática, Wikipedia.
Bologna seen from Asinelli tower, Wikipedia.
Charla contra Bolonia, Wikimedia.
Bologna Centrale AV, Wikimedia.
Estudiantes contra Bolonia, Wikimedia.
Nevada Test Site Control Point, Wikipedia.
Flag of Europe, Wikimedia Commons.
Greek wrap, Flickr user ‘waferboard’.
Thor’s hammer, Flickr user Carlos Pacheco.
Back door, Flickr user Chad Hunter.
Red heart symbol, OpenClips on Pixabay.
Erlang User Conference (2014) Conference Talk Software Architecture & Erlang 43 / 43