from a math pov, programming DOES (generally) make sense. by generally, i mean with the exception of floating point. operations in math are defined over a thing. that thing might be a group, a field or a ring. so there is such a thing as division on Z (integers), and there is such a thing as division on R (real numbers), but Z is not a division ring. programming typically operates on Zn, where n = 2^m, m is typically one of 8,16,32,64 for unsigned numbers. signed numbers are similar. note that the fact that Zn is not a division ring (i.e. there's a n satisfying n = a/b for all a, b in Zn) does *not* make this strange to mathematicians.
floating point is problematic. it's not a ring. not abelian. and has all sorts of other ... rather unexpected properties.