Incomplete draft: do not cite!

In programming, we use the world “object” as a deliberately neutral word to mean any piece of data the program might work with.  In practice, objects come in different flavors that get referred to as “types”, “classes”, or even “flavors”.  One typically works with a standard library of types that come packaged with one's language: arrays, lists, stacks, queues, and so on.  It's not that one couldn't build these oneself, but there's a distinct advantage to using a shared implementation that's well debugged.

Mathematics is similar in many ways.  An “object” in mathematics is anything we want to reason about using the methods of mathematics.  Numbers and functions, certainly, but also people, places, and things, or whatever else about which you might find yourself wanting to use the style of reasoning found in mathematics.

Math also has a kind of “standard library” of types of objects.  It actually has several of them, but in most cases we start from sets, tuples, relations and functions, and build everything else up in terms of them, in more or less the way programmers build up more complicated data types in terms arrays and such.

The study of these things are collectively referred to as set theory because they define everything in terms of sets, in much the same way that computer science builds everything up from arrays of bytes.