I see people using the terms Coding and Programming interchangeably.
Coding is the act of converting something in one form to another.
Think of it as coding and decoding. Typically you take a design and convert (code) it into source code. Which is a very waterfallish thought process. (I’m not saying its good or bad.)
Programming is “the action or process of writing computer programs”.
Programming by definition encompasses analysis, design , coding, testing, debugging, profiling and a whole lot of other activities. Depending on which school of thought you belong to, you will define the relationship and boundaries between these various activities.
For this very reason Pair Coding is not econmical. A lot of times teams try to introduce Pair Programming in a waterfall culture (analysis followed by design followed by coding) and it does not work.