In a couple weeks I plan to teach a classroom segment wherein we mentally orient ourselves on planet Earth and to some extent in the Milky Way.
First, I'll be projecting Google Earth, starting from the default planetary view and zooming in on our city. This requires an internet connection, which I'll have. A zoom is basically a request for data, i.e. airplane and satellite photographs, stitched together fairly seamlessly within an OpenGL- or DirectX-based application. We'll zoom in to within a few hundred feet out from our school (the resolution limit -- enough to see cars, but not license plates).
Second, I'll turn on the lat/long grid, and talk about degrees, minutes and seconds. West and South halves of the grid get a negative sign. The equator and prime meridian determine the halves. We'll see that a second corresponds to less than the school yard (about five bus lengths).
The two other software apps I plan to showcase are Celestia and Stellarium. Celestia lets us zoom out from a rotating/orbiting Earth to see the solar system. Further out, we see our system encompassed by an imaginary sphere divided, jigsaw-puzzle fashion (no gaps), by the various constellations. The demo lets us look around from a perch on one of Saturn's moons. Stellarium lets us look out from the Earth's surface in a time dependent way. By making time go fast, we see the celestial bodies whipping around us (because we're on a spinning ball).
All three programs together, projected, with teacher patter, provide some good orienting experiences in a well-equipped 21st century classroom (much better than what I had as a kid). I'll also have the class stand and all point north, east, south, west.
All of this is a lead-in to later work in Python (what this class is actually about -- it's a computer language class for 8th graders at a public school). A place to start with Python, or just about any language, is understanding about primitive built-in types (e.g. integers, floats, characters) and then collection types (lists, strings, dictionaries). Collection types contain primitive types, and may also contain one another. Getting at the contained elements requires an indexing syntax of some kind. For example:
Like, to get at the 45 seconds in the latitude of Atlanta, we'd write: cities['Atlanta, Ga.'] i.e. we want that first tuple (latitude), and the 2nd element within it -- however in this language game the indexing scheme is zero-based (not atypical).
Without getting too heavily into spherical trig (preview mode only), we can still chat up converting from degrees/minutes/seconds to decimal degrees i.e.
def decdeg(d,m,s): return d + (m/60) + (s/360)
or (algebraically the same):
def decdeg(d,m,s): return d + (m + s/60)/60
The distance forumla wants radians. We might mention that briefly. Instead of 360 units around a circle, we have about 6.283185307 units, and so need to convert (like between Fahrenheit and Celcius scales). This is a good segue to a discussion of library functions, and the library in general.
In many computer languages, you need to say something like 'import' or 'using' or 'require' to pull in larger vocabularies of pre-defined tools. Not everything gets loaded up by default. Interactively speaking:
>>> from math import radians # import a conversion tool >>> radians(360) 6.2831853071795862 >>> radians(90) 1.5707963267948966
Pulling this all together, if you want the distance between Portland and Seattle, you could write something like:
Of course the returned float is pseudo-precise i.e. not all those digits are significant. That'll supply grist for another good discussion.
Although I won't be calling on individuals by name if they haven't volunteered (earlier thread), I will be asking a lot of questions, encouraging participation. In part, I need to assess the current level these kids are at, e.g. "what do we call the horizontal lines going around the globe?" "How about the lines going from pole to pole?" And like that.
 note that seconds of longitude cover less and less distance as we approach a pole, as the 360 degrees mark off smaller and smaller circles (see ESRI link below).