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

12 years supporting Software Architecture teach...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

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.

Avatar for Laura M Castro

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