This is a hobby project to learn more about GPS technology.
I will answer this question from a "technology of radio" perspective, because half of the question is very much related to the technology of radio. The other half is related to the decoding of a data stream from multiple GPS satellites, and that is beyond the scope of this site.
In order to receive the data from the GPS satellites, your best bet would be to have an outdoor antenna at a good height (to be able to see as much of the horizon as possible), tuned to the frequencies on which the GPS satellites transmit.
According to the Wikipedia page on GPS signals, there are two frequencies: the so-called L1 frequency is 1575.42MHz, and the L2 frequency is 1227.60MHz. Your antenna would need to be able to receive both of these frequencies. Either a discount antenna designed for use up to 1.6GHz, or an actual GPS external antenna, would do nicely for this.
Actually decoding and turning the received radio signals into data is something that is beyond the scope of this site (being specifically for "amateur radio" in the strictest sense), but in order to turn the received signals at radio frequencies (RF) into data that you can work on on your computer, your best bet would probably be an SDR receiver (these can be found very cheaply - search for RTL SDR for plenty of information) and some SDR software (perhaps GNU Radio or similar). Once you have turned the RF into a data stream, you can then work on decoding it in software.
Start with a GPS receiver that outputs NMEA data. This data will be made available through a serial connection such as RS-232, USB, or Bluetooth. Pick a serial connection that you can use with your MAC.
On the MAC you will need a serial terminal emulation program (not to be confused with the MAC terminal program). A program such as Serial would do the job.
Configure the Serial program to access the port to which the GPS receiver is connected. You will then begin to see the raw NMEA data from the GPS receiver in your Serial program. All sentences begin with a "$" sign and all fields are comma separated. Here is an example from the above link:
This information in this string can be broken down as follows (again taken from the earlier link):
GP represent that it is a GPS position (GL would denote GLONASS).
181908.00 is the time stamp: UTC time in hours, minutes and seconds.
3404.7041778 is the latitude in the DDMM.MMMMM format. Decimal places are variable.
N denotes north latitude.
07044.3966270 is the longitude in the DDDMM.MMMMM format. Decimal places are variable.
W denotes west longitude.
4 denotes the Quality Indicator:
13 denotes number of satellites used in the coordinate.
1.0 denotes the HDOP (horizontal dilution of precision).
495.144 denotes altitude of the antenna.
M denotes units of altitude (eg. Meters or Feet)
29.200 denotes the geoidal separation (subtract this from the altitude of the antenna to arrive at the Height Above Ellipsoid (HAE).
M denotes the units used by the geoidal separation.
1.0 denotes the age of the correction (if any).
0000 denotes the correction station ID (if any).
*40 denotes the checksum.