Upgrade to Pro — share decks privately, control downloads, hide ads and more …

12 years supporting Software Architecture teach...

12 years supporting Software Architecture teaching with BEAMs

This presentation shares 12 years of experience integrating the Erlang/Elixir ecosystem (BEAM) into a university-level Software Architecture course. We'll explore how the unique combination of Functional Programming (FP) principles, coupled with Erlang/Elixir's robust concurrency and distribution model, fosters a hands-on, experiential understanding of key architectural concepts. We'll explain how using the BEAM has been key in empowering students to grasp and implement architectural styles like microservices, leader-worker or peer-to-peer architectures with greater ease and confidence. The presentation will also emphasize the importance of industry-academia collaboration in nurturing a thriving ecosystem for FP technologies and inspiring future generations of software professionals.

Laura M Castro

January 27, 2025
Tweet

More Decks by Laura M Castro

Other Decks in Technology

Transcript

  1. About me 2 Who am I? • Software Engineer (2003)

    • PhD in Computer Science (2010) • Professor: Software Architecture, Software Testing • Researcher: industrial applications of FP, testing automation • Advocate for women, gender-perspective in tech, and free software!
  2. Spoiler alert 7 An experiment using Erlang for teaching a

    course in Software Architecture... that was a success
  3. Erlang 9 • Born in 1986, released ’98 • Functional,

    concurrency-oriented – Lightweight, isolated processes, message-passing communication • Multiplatform VM – Garbage collection – Hot code swapping – Transparent distribution
  4. Erlang 10 • Born in 1986, released ’98 • Functional,

    concurrency-oriented – Lightweight, isolated processes, message-passing communication • Multiplatform VM (.beam files) – Garbage collection – Hot code swapping – Transparent distribution
  5. Spoiler alert 11 An experiment using Erlang for teaching a

    course in Software Architecture that was a success (full talk: https://www.youtube.com/watch?v=t19aHilv1VI)
  6. Context 20 • Public university • Created in 1989 •

    In the early 00’s, over 25k students • Faculty of Informatics, 2k students
  7. Computing studies at UDC 21 All 5 sub-disciplines of ACM

    computing curricula Software Engineering Computer Science Information Systems Information Technology Computer Engineering
  8. Software Architecture at UDC (Spain) 22 • First taught in

    2012/2013 • 1 semester, 6 ETCS credits – 15 weeks, 3h/week lecture+lab (45h) – 150-180 hours effort p/student (7-9h/week) • Between 60-80 students per year – compulsory for software engineers – eligible for computer scientists
  9. Software Architecture at UDC (Spain) 23 Learning objectives: • Concept

    of software architecture • Reference architectures • Components design & integration • Traceability & testing
  10. Software Architecture at UDC (Spain) 27 • 3-4 weeks of

    getting-to-know the language • 8 weeks large-group (5-6 people) custom project – choose problem – motivate architecture – prototype demo in class!
  11. Software Architecture at UDC (Spain) 28 • 3-4 weeks of

    getting-to-know the language • 8 weeks large-group (5-6 people) custom project – choose problem – motivate architecture – prototype demo in class!
  12. Elixir 39 • Runs on the Erlang VM • First

    release 2012 • Modern syntax (allegedly) • Very welcoming community – Lots of learning resources – Large set of libraries (+ can use Erlang’s, too!)
  13. So... what changed? 42 • Easier learning curve – Still

    having to force themselves beyond OO • More approachable sources of information • More newbie-friendly development
  14. So... what changed? 43 • Easier learning curve – Still

    having to force themselves “beyond OO” • More approachable sources of information • More newbie-friendly development
  15. And... what stayed the same? 45 Still the best ecosystem

    I know for rapid prototyping of architectural choices
  16. And... what stayed the same? 46 • Forces them to

    think asynchronously • Encourages them to supervise failure • Eases the implementation and deployment of their choices, at large scale, in distributed manner
  17. And... what stayed the same? 47 • Forces them to

    think asynchronously • Encourages them to supervise failure • Eases the implementation and deployment of their choices, at large scale, in distributed manner (How the BEAM will change your mind, CODE BEAM 2020: https://www.youtube.com/watch?v=fpMAT_qlbcY)
  18. To take home 56 Functional programming is a paradigm with

    benefits that expand beyond programming
  19. To take home 57 The BEAM ecosystem, FP with a

    focus on concurrency and distribution, is a great tool for learning/teaching architectural concepts