As with all posts, I must insert the caveat that I'm no philosopher and my opinions on matters like this amount to a hill of beans. Or maybe one bean. I'll let the counters decide. Just realize that you're reading something written by the uneducated. I'll try to generalize enough to get to the point.
The problem of universals, as I understand it, is one of articulation. There are a few different questions asked under this umbrella. One is whether or not words have an objective meaning, or if meaning is only in the mind of the speaker and listener. In other words, is there something inherently "green" about Kermit the Frog, certain types of apples, and grass, or is "green" a conventionally accepted word that could just as well be replaced with "black" or "spammy"?
When we talk about colors, the problem is almost trite; but when we talk of morals, it suddenly becomes quite sticky. The Christian appeals to a Universal moral standard when he convicts himself of breaking the rules. The atheist (and others, of course), appeal to what is societally advantageous: morality is a human construct designed to make society work, and what is "wrong" is not really wrong in a universal sense—it merely is wrong for setting back society. There is therefore no moral guilt associated with any particular crime.
The history of the problem
may be found at Wikipedia; the Internet Encyclopedia of Philosophy
also has an introduction.
My education is obviously not in theology or in philosophy; they are merely subjects with which I wish to be better acquainted.
However, Computer Science intersects with these disciplines often, since we often find ourselves trying to simulate intellect (through artificial intelligence) and create and design systems. CS is a modelling science, and should probably be considered a branch of applied mathematics.
We run up against the problem of universals as soon as we start to model objects in a system. In computer science parlance, a
class is the definition of an object (an object is basically any noun you can think of). When I taught an introductory programming course, I would tell my students that they could think of a class as the definition we read in a dictionary.
However, that definition is not the object itself; no one points to "tree" in the dictionary and says, "How pretty those leaves are!" The same is true in computer science: we use the definition to produce an
instance of the object we have defined. I would tell my students they could think of the instance as an example of the object they had previously defined.
This corresponds nicely with the problem of universals. The universal is the class, or definition, and the particular is the instance.
As it happens, most programming languages also incorporate a feature called polymorphism ("many-formed-ness"), which allows us to refer to objects as general classes (e.g., "tree") yet have varieties of instances (e.g., "oak tree") with different properties and characteristics—even though they all share the same root definition.
1It is interesting to me that while many reject Universals by and large today, the very things we use to model the world and solve extremely complex problems depend on them to work.
[1] An amusing thought occurs here—does this mean that java.lang.Object is like God?