Skip to main content
Post Made Community Wiki
Source Link
Dan Piponi
  • 8.3k
  • 5
  • 64
  • 92

There is a substantial set of people who understand the notion of an interface in computer science, but don't understand abstraction in mathematics. For those people, it's worth pointing out that these are in fact the same thing (eg. if this is a linear algebra course for CS students).

Many programming languages (eg. the commonly taught Java) support the notion of an interface that is separate from an implementation. An example at wikipedia is that of a Predator interface shared by many different types of predator. CS students generally get the idea (or at least they should) that if they write for the Predator interface then their code can be reused with any predator, but that if they use implementation specific details of a particular predator then their code cannot be reused.

The situation is identical in mathematics. If you write mathematics for the "vector space interface" then your theorems can be reused for any vector space. But if you use specific knowledge of an underlying implementation (eg. about the specific set $\mathbb{R}^n$) then you lose the ability to reuse those theorems.

In fact, even if the class isn't being taught to CS students it's worth a brief mention as any large enough class of mathematics students is bound to contain a few who are computer savvy.