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. Applying FP 12 years supporting Software Architecture teaching with BEAMs

    FUNCTIONAL CONF 2025 Dr. Laura M. Castro lcastro@udc.gal
  2. 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!
  3. Spoiler alert 7 An experiment using Erlang for teaching a

    course in Software Architecture... that was a success
  4. 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
  5. 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
  6. 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)
  7. Context 20 • Public university • Created in 1989 •

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

    computing curricula Software Engineering Computer Science Information Systems Information Technology Computer Engineering
  9. 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
  10. Software Architecture at UDC (Spain) 23 Learning objectives: • Concept

    of software architecture • Reference architectures • Components design & integration • Traceability & testing
  11. 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!
  12. 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!
  13. 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!)
  14. So... what changed? 42 • Easier learning curve – Still

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

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

    I know for rapid prototyping of architectural choices
  17. 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
  18. 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)
  19. To take home 56 Functional programming is a paradigm with

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

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