Matlab è solo una lingua. OOP è il concetto.
Prova a spiegare i concetti usando una spiegazione meno guidata dall'esempio. Gli ingegneri certamente comprendono diversi domini e unità (ad es .: l'aggiunta di temperatura alla distanza sarebbe dispari), quindi dovrebbero comprendere intuitivamente l'incapsulamento e il polimorfismo senza bisogno di esempi concreti in Matlab. Dovresti essere in grado di spiegare l'astrazione abbastanza facilmente. Eredità e composizione sarebbero più difficili da spiegare senza esempi, ma spiegare chiaramente il concetto e dovrebbero capire.
I generici contro la specificità del tipo dovrebbero essere motivati attraverso esempi tratti dal loro background matematico. La programmazione funzionale, le funzioni di passaggio e le lambda non sono OOP di per sé, ed è più difficile da spiegare senza un background matematico più astratto che tipicamente presentato agli ingegneri (avendo studiato sia ingegneria, software e matematica, ho alcune informazioni sulle loro diverse specializzazioni).
Potresti non essere in grado di fornire esempi usando Matlab direttamente, ma potresti certamente spiegare l'astrazione e l'incapsulamento usando esempi che includono strutture. Anche nelle lingue in cui non puoi incapsulare le tue funzioni (metodi) con i tuoi dati, puoi comunque spiegare in che modo determinate funzioni sono definite solo per determinati domini.
Considerando che molti sviluppatori apprezzano la composizione sull'ereditarietà, puoi spiegare l'ereditarietà, la composizione e i relativi meriti dei due.
Potresti motivare il polimorfismo in modo naturale esaminando la differenza tra numeri interi, razionali, reali e complessi, e poi spiegare come gli operatori aritmetici "normali" sono funzioni (metodi), ma anche se l'operatore (ex ' + ') ha lo stesso aspetto, è una funzione diversa se utilizzata con domini diversi.
Buona fortuna!