Classi e strutture sono due cose differenti.
La struttura (volgarmente, record) è solo una collezione di tipi di dati diversi, i quali possono essere riferiti tramite un nome univoco.

Una classe è qualcosa di più: è una struttura dati che racchiude e protegge tipi di dati differenti e che mette a disposizione del programmatore metodi specifici per leggere e scrivere questi dati (anche astraendo sul concetto di dato), una struttura dati che può modificarsi (tramite ereditarietà, overload e override) e che si conserva (con questo intendo dire che un oggetto di una classe B che deriva da A è esso stesso un oggetto della classe A, concetto di polimorfismo).

L'unica somiglianza fra classi e strutture sta solo nel raggruppare tipi di dati differenti (cosa che il povero array non fa [anche se questo mi può facilmente essere obiettato]).

Quando usare l'una o l'altra struttura dati, dipende da cosa si deve fare con i dati e qual'è il livello di protezione che si vuole dare a questi dati.

Per la storia dell'ingegneria: non credo che sia ESSENZIALE saper programmare (certo è preferibile), ma i corsi in cui è richiesta la conoscenza della programmazione, di solito, te la insegnano. All'università non si dà niente per scontato (se non le cose ovvie come 2+2=4)!



Ciao.