Abstractions are things that are inherent part of processes that we don’t consider for simplicity.

Prof Najm talked about this in ECE212 — Circuit Analysis. For example, resistors have many material properties, don’t perfectly keep the same resistance over time, and are not perfectly linear. Instead we make assumptions on ideal behaviour and choose relations that don’t necessarily represent real life.

In programming, we may think about things that have a set behaviour but we don’t think about how they’re implemented, i.e., strings in C++ versus in C (where we do care about it). Our field is based on successive abstractions where necessary, from computer hardware, to systems software, to higher level work.