I'll not engage in the discussion on Heading, Track etc as this seems to have been done to death here with mostly the right answers.
For those who are interested in how GPS derives Course over Ground (COG, track or whatever you want to call it) and speed over ground (SOG, speed) here is a (over) simple explanation.
As far as I know all aviation units use position based information to derive COG and SOG. Every second for hand-held units and five times per second for IFR certified units, the GPS unit works out a best
estimate of where it is. The problem is that this position is just that, an
estimate. Even if you are not moving the GPS position will be constantly moving (even if it’s just by a small amount) due to a range of erorr sources. This
noise in the position data is very variable and requires complex filtration to derive COG and SOG. If there was no filter, the COG and SOG output would be very noisy (giving a jumpy display). Simply using a moving-average type filter does not work well in this type of application.
Using a very clever piece of mathematics called a
Kalman Filter the unit then works out in what direction and how fast it has moved over a recent time period.
More by way of interest, some survey-grade GPS units as used by civil engineers surveyors etc. give centimetre accuracy using phase shift measurements of the carrier phase transmitted by the GPS satellites. Similarly, there are
commercially available GPS units that very accurately measure speed using Doppler shift measurements of the carrier phase.