What's the difference between alpha over and add?
The alpha over node chooses between two colour values, the mixRGB node mixes two colours together.

The Fac value is a scale between the two output options, 0.0 being 100% input one and 1.0 being 100% of the calculated output value.

The output of the alpha over node will be between the two input values, while the output of the mixRGB node will be between the first input and the combination of the two inputs. The different blend types in the mixRGB node choose how the two inputs are combined.

So if you had one input with 0.2 red and a second with 0.4 red, then the alpha over node will output a red between 0.2 and 0.4 - the two different input values - while a mixRGB set to add will output a value between 0.2 and 0.6 - 0.6 being the two red values added together.

The math node is meant to be used with single numeric values, like the Fac input. If you do use a math node with colour inputs, the input value will be calculated as the average of the three colour channels. So if the input colour was R:0.1 G:0.0 B:0.0 the input value used in its calculation would be 0.333. If you connect a math output node to a colour input, you will get the same result value for each channel. Similar to the mixRGB node, the operation chosen will decide how the output value is calculated.

Notice the colour of each socket on a node, while most will attempt to work with each other, you should connect matching socket types.